#processing
Вопрос:
Как мне получить и установить текущую матрицу проекции в Processing (бета-версия 4, P3D renderer)? Обработка обеспечивает printProjection()
; но не предоставляет способ получения данных. Текущую матрицу преобразования можно сохранить, получить и задать с помощью pushMatrix()
, getMatrix()
, и setMatrix()
. Существует ли эквивалент (или надежное решение) для проекционных матриц?
Я искал версию документации javadoc и ничего не мог найти.
Я попытался посмотреть, что printProjection()
происходит в исходном коде. PApplet.g -> PGraphicsOpenGL.projection -> PMatrix3D и PGraphicsOpenGL.pushProjection. Оба объекта g
и projection
являются общедоступными членами.
Происхождение этого вопроса: у меня есть класс, который настраивает камеру (он вызывает camera()
и perspective()
). У меня есть другой класс, которому необходимо временно сбросить матрицу преобразования и проекции, чтобы она могла накладываться text()
на экран. Матрицу преобразования можно легко push
редактировать и pop
редактировать. Существует ли эквивалент для матрицы проекции.
Я не хочу вручную отслеживать вызовы, для perspective()
которых устанавливается матрица проекции. Одна из причин заключается в том, что это станет бременем для конечного пользователя, а другая причина заключается в том, что мне нужна исходная матрица проекции, установленная size()
функцией, для правильного размещения text()
на экране.