package engine.camera; import engine.Engine; import engine.math.Matrix4f; import engine.math.Vector3f; import engine.object.ObjectGl; public class Camera { private float dimension; private final Vector3f aspectRatio; private final Engine engine; public Camera(float dimension, Vector3f aspectRatio, Engine engine){ this.dimension = dimension; this.aspectRatio = aspectRatio; this.engine = engine; float ar = aspectRatio.y / aspectRatio.x; ObjectGl.projection = Matrix4f.orthographic(-dimension, dimension, -dimension * ar, dimension * ar, 0.1f, 1000.0f); } public void zoom(float zoomFactor){ engine.setUIElementZoomFactor(zoomFactor); this.dimension *= zoomFactor; float ar = aspectRatio.y / aspectRatio.x; ObjectGl.projection = Matrix4f.orthographic(-dimension, dimension, -dimension * ar, dimension * ar, 0.1f, 100.0f); } public float getDimension(){ return this.dimension; } public Vector3f getAspectRatio(){ return this.aspectRatio; } }