summaryrefslogtreecommitdiff
path: root/src/koopatlas/camera.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/koopatlas/camera.h')
-rw-r--r--src/koopatlas/camera.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/koopatlas/camera.h b/src/koopatlas/camera.h
new file mode 100644
index 0000000..f057374
--- /dev/null
+++ b/src/koopatlas/camera.h
@@ -0,0 +1,37 @@
+#include "koopatlas/core.h"
+
+class dWorldCamera_c : public dBase_c {
+ public:
+ int onCreate();
+ int onDelete();
+ int onExecute();
+ int onDraw();
+
+ dWorldCamera_c();
+
+ EGG::Screen screen;
+ EGG::LookAtCamera camera3d;
+
+ EGG::ProjectOrtho projection2d;
+ EGG::LookAtCamera camera2d;
+
+ Vec camPos, camTarget, camUp;
+
+
+ float currentX, currentY, zoomLevel;
+
+ void calculateScreenGeometry();
+
+
+ float zoomDivisor, screenLeft, screenTop, screenWidth, screenHeight;
+
+
+ void doStuff(float);
+ void generateCameraMatrices();
+ void updateCameras();
+
+ static dWorldCamera_c *build();
+ static dWorldCamera_c *instance;
+};
+
+