summaryrefslogtreecommitdiff
path: root/scene.cuh
diff options
context:
space:
mode:
Diffstat (limited to 'scene.cuh')
-rw-r--r--scene.cuh32
1 files changed, 32 insertions, 0 deletions
diff --git a/scene.cuh b/scene.cuh
new file mode 100644
index 0000000..31bb99f
--- /dev/null
+++ b/scene.cuh
@@ -0,0 +1,32 @@
+#ifndef SCENE_H
+#define SCENE_H
+
+#include "common.cuh"
+#include "sphere.cuh"
+#include "render_object.cuh"
+#include "include/helper_math.h"
+
+template <class T> class camera;
+
+//when we get animations with multiple scenes, we'll make this a virtual function
+//with array of DE objects and cam
+template <class T>
+class scene {
+ using T3 = typename vect_t3<T>::vect_t;
+ public:
+ //__device__ void render(uint8_t *image) { cam.render(); };
+ __device__ render_object<T> **get_objs() { return objs; }
+ __device__ render_object<T> **get_image() { return image; }
+ private:
+ camera<T> cam = camera<T>();
+ sphere<T> sp1 = sphere<T>(vect_create<T3>(0,0.4,-5));
+ sphere<T> sp2 = sphere<T>(vect_create<T3>(0,-0.4,-5));
+ protected:
+ //idk why I need to specify the size... why can't the compiler figure that out?
+ render_object<T> *objs[3] = {&sp1, &sp2, NULL};
+ uint8_t *image;
+};
+
+#include "camera.cuh"
+
+#endif