Списки отображения и различные реакции на движение мыши в JOGL
Недавно я начал работать с API в нашей среде приложений Java, которая использует JOGL (делает команды OpenGL доступными в Java) для создания 3D-среды в нашем приложении (так что я довольно новичок в OpenGL).
Этот API использует списки отображения для группировки и ускорения команд для отображения геометрического компонента. До сих пор в методе отображения сначала применяются все изменения сцены, сделанные мышью (масштабирование, вращение, перемещение), затем вызывается текущий список отображения. API предоставляет множество элементов сцены (поверхности, свет, преобразования), которые помещаются в древовидную структуру. Эта структура определяет порядок, в котором эти элементы сцены будут "выполняться" позже. Это выполнение дерева сцены затем помещается в список отображения. Это работает как задумано.
Теперь я хочу добавить небольшую систему координат для представления текущей ориентации компонента. Это будет новый элемент сцены, который будет добавлен в дерево сцены. Эта система координат, очевидно, должна зависеть от поворотов, выполненных с помощью мыши, но она не должна масштабироваться или переводиться в другие места.
Моя проблема: поскольку движения мыши применяются вне выполнения дерева сцены, я не знаю, как применить только вращение только к определенному элементу сцены дерева. Я не могу просто вернуть движение мыши в соответствующей части списка отображения (в моем понимании), потому что это будет означать, что список отображения должен будет принимать параметр изменений положения мыши. Но я не могу работать с параметрами в списках отображения, так как их состояние определяется один раз, а затем выполняется только в этом состоянии (правильно?). Я не могу просто сбросить матрицу проекции, так как я бы потерял состояние вращения.
Я надеюсь, что моя проблема понятна. Есть ли способ сделать это с помощью списков отображения или мне может потребоваться заменить списки отображения в этом API на альтернативные? Они, кажется, не рекомендуются в любом случае.