aboutsummaryrefslogtreecommitdiff
path: root/viewpoint.h
diff options
context:
space:
mode:
Diffstat (limited to 'viewpoint.h')
-rw-r--r--viewpoint.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/viewpoint.h b/viewpoint.h
new file mode 100644
index 0000000..0aae5db
--- /dev/null
+++ b/viewpoint.h
@@ -0,0 +1,28 @@
+#ifndef VIEWPOINT_H
+#define VIEWPOINT_H
+
+#include "vector.h"
+
+// 90 degrees
+#define FOV 3.1415/2
+
+typedef struct {
+ // Viewpoint dimensions
+ unsigned int width;
+ unsigned int height;
+
+ // Position and orientation
+ vector_t position, target;
+
+ // Viewpoint shift vectors
+ // Calculated at initialisation
+ vector_t qx, qy;
+ // Left button center pixel location
+ vector_t blc;
+} viewpoint_t;
+
+// Todo handle initial setup
+void viewpoint_init(viewpoint_t *view);
+
+void viewpoint_ray(viewpoint_t *view, vector_t *r, unsigned x, unsigned y);
+#endif