summaryrefslogtreecommitdiff
path: root/src/scene.cuh
blob: e3d58964ddf1ffc4541b38c2d0c3da3485e724a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef SCENE_H
#define SCENE_H

#include "common.cuh"
#include "sphere.cuh"
#include "render_object.cuh"
#include "include/helper_math.h"
#include <stdint.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
class Scene {
  const int max_bounces = 10;
  public:
    //__device__ void render(uint8_t *image) { cam.render(); };
    __device__ Render_object **get_objs() { return objs; }
    __device__ void debug();
    __device__ Color raycast(struct Ray ray);
  private:
    //camera cam = camera();
    Sphere sp1 = Sphere(make_vect3(0, .4, -5));
    Sphere sp2 = Sphere(make_vect3(0, -0.4,-5));
  protected:
    //idk why I need to specify the size... why can't the compiler figure that out?
    Render_object *objs[3] = {&sp1, &sp2, NULL};
    uint8_t *image;
};

#endif