InVoxel() for all Primitives, including fix for Triangle::CalcBounds()
[MicroTrace.git] / Primitive.hxx
1 #ifndef PRIMITIVE_HXX
2 #define PRIMITIVE_HXX
3
4 #include "Ray.hxx"
5 #include "Shader.hxx"
6 #include "Box.hxx"
7
8 class Primitive
9 {
10 public:
11 Primitive(Shader* shader = 0);
12 virtual ~Primitive();
13
14 virtual bool Intersect(Ray &ray) = 0;
15 virtual bool Occluded(Ray& ray);
16 virtual Vec3f GetNormal(Ray& ray) = 0;
17 virtual Box CalcBounds() = 0;
18 virtual bool InVoxel(const Box& box) = 0;
19 Shader* shader();
20
21 protected:
22 Shader* m_shader;
23 };
24
25 #endif
This page took 0.041892 seconds and 5 git commands to generate.