33 lines
930 B
Plaintext

#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