18deb7999e03a3aa3f44fd432a1774ae3c6f5521
[MicroTrace.git] / Scene.hxx
1 #ifndef SCENE_HXX
2 #define SCENE_HXX
3
4 #include <vector>
5
6 #include "Ray.hxx"
7 #include "Camera.hxx"
8 #include "Primitive.hxx"
9
10 class Scene
11 {
12 public:
13 Scene();
14 virtual ~Scene();
15
16 // add another primitive to the scene
17 void Add(Primitive* p);
18
19 // intersect the ray with all objects in the scene
20 virtual bool Intersect(Ray& ray);
21 // find occluder
22 virtual bool Occluded(Ray& ray);
23
24 // trace the given ray and shade it, returnt the color of the shaded ray
25 Vec3f RayTrace(Ray& ray);
26
27 const Camera* camera() const;
28 private:
29 Scene(const Scene& );
30 Scene& operator=(const Scene& );
31
32 Camera* m_camera;
33 // background color
34 Vec3f m_bgColor;
35
36 // primitives
37 std::vector<Primitive*> m_primitives;
38 };
39 #endif
This page took 0.049249 seconds and 3 git commands to generate.