Assignments Assignments

shapeList.h
Go to the documentation of this file.
1#ifndef GROUP_INCLUDED
2#define GROUP_INCLUDED
3#include <vector>
4#include <unordered_map>
5#include <Util/geometry.h>
6#include "shape.h"
7
8 namespace Ray
9{
11 class AffineShape : public Shape
12 {
13 protected:
15 Shape *_shape;
16 public:
18 AffineShape( void );
19
21 virtual Util::Matrix4D getMatrix( void ) const = 0;
22
24 virtual Util::Matrix4D getInverseMatrix( void ) const = 0;
25
27 virtual Util::Matrix3D getNormalMatrix( void ) const = 0;
28
30 // Shape methods //
32 public:
33 void initOpenGL( void );
34 void updateBoundingBox( void );
35 bool processFirstIntersection( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
36 int processAllIntersections( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
37 void processOverlapping( const Filter &filter , const Kernel &kernel , ShapeProcessingInfo tInfo ) const;
38 virtual bool isInside( Util::Point3D p ) const;
39 virtual void drawOpenGL( GLSLProgram *glslProgram ) const;
40 };
41
42
44 class StaticAffineShape : public AffineShape
45 {
47 Util::Matrix4D _localTransform;
48
50 Util::Matrix4D _inverseTransform;
51
53 Util::Matrix3D _normalTransform;
54 public:
56 static std::string Directive( void ){ return "static_affine"; }
57
59 StaticAffineShape( void );
60
62 void set( Util::Matrix4D m );
63
65 // Shape methods //
67 private:
68 void _write( std::ostream &stream ) const;
69 void _read( std::istream &stream );
70 public:
71 std::string name( void ) const { return "static affine"; }
72 void init( const class LocalSceneData &data );
73 void initOpenGL( void );
74
76 // AffineShape methods //
78 public:
79 Util::Matrix4D getMatrix( void ) const;
80 Util::Matrix4D getInverseMatrix( void ) const;
81 Util::Matrix3D getNormalMatrix( void ) const;
82 };
83
85 class DynamicAffineShape : public AffineShape
86 {
88 std::string _paramName;
89
91 const Util::Matrix4D *_matrix;
92 public:
93
95 DynamicAffineShape( void );
96
98 static std::string Directive( void ){ return "dynamic_affine"; }
99
101 // Shape methods //
103 private:
104 void _write( std::ostream &stream ) const;
105 void _read( std::istream &stream );
106 public:
107 std::string name( void ) const { return "dynamic affine"; }
108 void init( const class LocalSceneData &data );
109
111 // AffineShape methods //
113 public:
114 Util::Matrix4D getMatrix( void ) const;
115 Util::Matrix4D getInverseMatrix( void ) const;
116 Util::Matrix3D getNormalMatrix( void ) const;
117 };
118
120 class Difference : public Shape
121 {
123 Shape *_shape0 , *_shape1;
124
125 public:
127 Difference( Shape *shape0=NULL , Shape *shape1=NULL );
128
130 static std::string Directive( void ){ return "shape_difference"; }
131
133 // Shape methods //
135 private:
136 void _write( std::ostream &stream ) const;
137 void _read( std::istream &stream );
138 public:
139 std::string name( void ) const { return "difference"; }
140 void init( const class LocalSceneData& data );
141 void initOpenGL( void );
142 void updateBoundingBox( void );
143 bool processFirstIntersection( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
144 int processAllIntersections( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
145 bool isInside( Util::Point3D p ) const;
146 void drawOpenGL( GLSLProgram *glslProgram ) const;
147 size_t primitiveNum( void ) const;
148 };
149
151 class ShapeBoundingBoxHit
152 {
153 public:
155 double t;
156
158 const Shape *shape;
159
163 static bool Compare( const ShapeBoundingBoxHit &v1 , const ShapeBoundingBoxHit &v2 );
164 };
165
167 class ShapeList : public Shape
168 {
169 friend class Union;
170 friend class Intersection;
171
173 static std::string _DirectiveHeader( void ){ return "shape_list"; }
174 public:
175
177 static std::unordered_map< std::string , Util::BaseFactory< Shape > * > ShapeFactories;
178
180 static std::string Directive( void ){ return _DirectiveHeader() + std::string( "_begin" ); }
181
183 std::vector< Shape* > shapes;
184
186 // Shape methods //
188 protected:
189 void _write( std::ostream &stream ) const;
190 void _read( std::istream &stream );
191 public:
192 std::string name( void ) const { return "shape list"; }
193 void init( const class LocalSceneData &data );
194 void initOpenGL( void );
195 void updateBoundingBox( void );
196 bool processFirstIntersection( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
197 int processAllIntersections( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
198 void processOverlapping( const Filter &filter , const Kernel &kernel , ShapeProcessingInfo tInfo ) const;
199 bool isInside( Util::Point3D p ) const;
200 void drawOpenGL( GLSLProgram * glslProgram ) const;
201 void addTrianglesOpenGL( std::vector< class TriangleIndex >& triangles );
202 };
203
205 class TriangleList : public ShapeList
206 {
207 friend class Scene;
208
210 GLuint _vertexBufferID = 0;
211
213 GLuint _elementBufferID = 0;
214
216 unsigned int _tNum;
217
219 unsigned int _vNum;
220
222 const class Vertex *_vertices;
223
225 int _materialIndex;
226
228 const class Material *_material;
229 public:
231 static std::string Directive( void ){ return "shape_triangles"; }
232
234 TriangleList( void );
235
237 // Shape methods //
239 private:
240 void _write( std::ostream &stream ) const;
241 void _read( std::istream &stream );
242 public:
243 std::string name( void ) const { return "triangles"; }
244 void init( const class LocalSceneData &data );
245 void initOpenGL( void );
246 bool processFirstIntersection( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
247 int processAllIntersections( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
248 void processOverlapping( const Filter &filter , const Kernel &kernel , ShapeProcessingInfo tInfo ) const;
249 void drawOpenGL( GLSLProgram * glslProgram ) const;
250 };
251
253 class Union : public Shape
254 {
256 ShapeList _shapeList;
257 public:
259 static std::string Directive( void ){ return "shape_union"; }
260
262 // Shape methods //
264 private:
265 void _write( std::ostream &stream ) const;
266 void _read( std::istream &stream );
267 public:
268 std::string name( void ) const { return "union"; }
269 void init( const class LocalSceneData &data );
270 void initOpenGL( void );
271 void updateBoundingBox( void );
272 bool isInside( Util::Point3D p ) const;
273 bool processFirstIntersection( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
274 int processAllIntersections( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
275 void drawOpenGL( GLSLProgram * glslProgram ) const;
276 };
277
278
280 class Intersection : public Shape
281 {
283 ShapeList _shapeList;
284
285 public:
287 static std::string Directive( void ){ return "shape_intersection"; }
288
290 // Shape methods //
292 private:
293 void _write( std::ostream &stream ) const;
294 void _read( std::istream &stream );
295 public:
296 std::string name( void ) const { return "intersection"; }
297 void init( const class LocalSceneData &data );
298 void initOpenGL( void );
299 void updateBoundingBox( void );
300 bool isInside( Util::Point3D p ) const;
301 bool processFirstIntersection( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
302 int processAllIntersections( const Util::Ray3D &ray , const Util::BoundingBox1D &range , const RayIntersectionFilter &rFilter , const RayIntersectionKernel &rKernel , ShapeProcessingInfo spInfo , unsigned int tIdx ) const;
303 void drawOpenGL( GLSLProgram * glslProgram ) const;
304 };
305}
306#endif // GROUP_INCLUDED
GLSLProgram
Definition GLSLProgram.h:33
Ray::AffineShape::_shape
Shape * _shape
Definition shapeList.h:15
Ray::AffineShape::getMatrix
virtual Util::Matrix4D getMatrix(void) const =0
Ray::AffineShape::isInside
virtual bool isInside(Util::Point3D p) const
Definition shapeList.todo.cpp:120
Ray::AffineShape::getInverseMatrix
virtual Util::Matrix4D getInverseMatrix(void) const =0
Ray::AffineShape::processOverlapping
void processOverlapping(const Filter &filter, const Kernel &kernel, ShapeProcessingInfo tInfo) const
Definition shapeList.cpp:17
Ray::AffineShape::initOpenGL
void initOpenGL(void)
Definition shapeList.cpp:15
Ray::AffineShape::AffineShape
AffineShape(void)
Definition shapeList.cpp:13
Ray::AffineShape::processAllIntersections
int processAllIntersections(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.cpp:43
Ray::AffineShape::processFirstIntersection
bool processFirstIntersection(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.cpp:32
Ray::AffineShape::drawOpenGL
virtual void drawOpenGL(GLSLProgram *glslProgram) const
Definition shapeList.todo.cpp:138
Ray::AffineShape::getNormalMatrix
virtual Util::Matrix3D getNormalMatrix(void) const =0
Ray::AffineShape::updateBoundingBox
void updateBoundingBox(void)
Definition shapeList.todo.cpp:129
Ray::Difference::Difference
Difference(Shape *shape0=NULL, Shape *shape1=NULL)
Definition shapeList.cpp:124
Ray::Difference::processFirstIntersection
bool processFirstIntersection(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:20
Ray::Difference::_shape1
Shape * _shape1
Definition shapeList.h:123
Ray::Difference::initOpenGL
void initOpenGL(void)
Definition shapeList.cpp:166
Ray::Difference::drawOpenGL
void drawOpenGL(GLSLProgram *glslProgram) const
Definition shapeList.cpp:171
Ray::Difference::primitiveNum
size_t primitiveNum(void) const
Ray::Difference::_read
void _read(std::istream &stream)
Definition shapeList.cpp:136
Ray::Difference::processAllIntersections
int processAllIntersections(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:29
Ray::Difference::isInside
bool isInside(Util::Point3D p) const
Definition shapeList.todo.cpp:37
Ray::Difference::updateBoundingBox
void updateBoundingBox(void)
Definition shapeList.todo.cpp:12
Ray::Difference::_shape0
Shape * _shape0
Definition shapeList.h:123
Ray::Difference::Directive
static std::string Directive(void)
Definition shapeList.h:130
Ray::Difference::_write
void _write(std::ostream &stream) const
Definition shapeList.cpp:126
Ray::Difference::init
void init(const class LocalSceneData &data)
Definition shapeList.cpp:160
Ray::Difference::name
std::string name(void) const
Definition shapeList.h:139
Ray::DynamicAffineShape::name
std::string name(void) const
Definition shapeList.h:107
Ray::DynamicAffineShape::getMatrix
Util::Matrix4D getMatrix(void) const
Definition shapeList.cpp:115
Ray::DynamicAffineShape::_write
void _write(std::ostream &stream) const
Definition shapeList.cpp:91
Ray::DynamicAffineShape::_paramName
std::string _paramName
Definition shapeList.h:88
Ray::DynamicAffineShape::getInverseMatrix
Util::Matrix4D getInverseMatrix(void) const
Definition shapeList.cpp:117
Ray::DynamicAffineShape::_matrix
const Util::Matrix4D * _matrix
Definition shapeList.h:91
Ray::DynamicAffineShape::DynamicAffineShape
DynamicAffineShape(void)
Definition shapeList.cpp:89
Ray::DynamicAffineShape::Directive
static std::string Directive(void)
Definition shapeList.h:98
Ray::DynamicAffineShape::init
void init(const class LocalSceneData &data)
Definition shapeList.cpp:107
Ray::DynamicAffineShape::getNormalMatrix
Util::Matrix3D getNormalMatrix(void) const
Definition shapeList.cpp:119
Ray::DynamicAffineShape::_read
void _read(std::istream &stream)
Definition shapeList.cpp:100
Ray::Intersection
Definition shapeList.h:281
Ray::Intersection::initOpenGL
void initOpenGL(void)
Definition shapeList.cpp:335
Ray::Intersection::processAllIntersections
int processAllIntersections(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:298
Ray::Intersection::isInside
bool isInside(Util::Point3D p) const
Definition shapeList.todo.cpp:325
Ray::Intersection::_shapeList
ShapeList _shapeList
Definition shapeList.h:283
Ray::Intersection::processFirstIntersection
bool processFirstIntersection(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:289
Ray::Intersection::updateBoundingBox
void updateBoundingBox(void)
Definition shapeList.todo.cpp:317
Ray::Intersection::init
void init(const class LocalSceneData &data)
Definition shapeList.todo.cpp:306
Ray::Intersection::_read
void _read(std::istream &stream)
Definition shapeList.cpp:323
Ray::Intersection::Directive
static std::string Directive(void)
Definition shapeList.h:287
Ray::Intersection::drawOpenGL
void drawOpenGL(GLSLProgram *glslProgram) const
Definition shapeList.cpp:330
Ray::Intersection::_write
void _write(std::ostream &stream) const
Definition shapeList.cpp:314
Ray::Intersection::name
std::string name(void) const
Definition shapeList.h:296
Ray::LocalSceneData
Definition scene.h:62
Ray::Material
Definition scene.h:249
Ray::ShapeBoundingBoxHit
Definition shapeList.h:152
Ray::ShapeBoundingBoxHit::Compare
static bool Compare(const ShapeBoundingBoxHit &v1, const ShapeBoundingBoxHit &v2)
Definition shapeList.cpp:179
Ray::ShapeBoundingBoxHit::t
double t
Definition shapeList.h:155
Ray::ShapeBoundingBoxHit::shape
const Shape * shape
Definition shapeList.h:158
Ray::Shape
Definition shape.h:90
Ray::Shape::Kernel
std::function< void(const ShapeProcessingInfo &, const Shape &) > Kernel
Definition shape.h:163
Ray::Shape::RayIntersectionFilter
std::function< bool(double) > RayIntersectionFilter
Definition shape.h:164
Ray::Shape::RayIntersectionKernel
std::function< bool(const ShapeProcessingInfo &, const class RayShapeIntersectionInfo &) > RayIntersectionKernel
Definition shape.h:165
Ray::Shape::Filter
std::function< ShapeProcessingInfo::ProcessingType(const ShapeProcessingInfo &, const Shape &) > Filter
Definition shape.h:162
Ray::ShapeList
Definition shapeList.h:168
Ray::ShapeList::_DirectiveHeader
static std::string _DirectiveHeader(void)
Definition shapeList.h:173
Ray::ShapeList::Intersection
friend class Intersection
Definition shapeList.h:170
Ray::ShapeList::ShapeFactories
static std::unordered_map< std::string, Util::BaseFactory< Shape > * > ShapeFactories
Definition shapeList.h:177
Ray::ShapeList::Union
friend class Union
Definition shapeList.h:169
Ray::ShapeList::addTrianglesOpenGL
void addTrianglesOpenGL(std::vector< class TriangleIndex > &triangles)
Definition shapeList.cpp:219
Ray::ShapeList::name
std::string name(void) const
Definition shapeList.h:192
Ray::ShapeList::Directive
static std::string Directive(void)
Definition shapeList.h:180
Ray::ShapeList::updateBoundingBox
void updateBoundingBox(void)
Definition shapeList.todo.cpp:86
Ray::ShapeList::_read
void _read(std::istream &stream)
Definition shapeList.cpp:186
Ray::ShapeList::processOverlapping
void processOverlapping(const Filter &filter, const Kernel &kernel, ShapeProcessingInfo tInfo) const
Definition shapeList.cpp:224
Ray::ShapeList::init
void init(const class LocalSceneData &data)
Definition shapeList.todo.cpp:73
Ray::ShapeList::processFirstIntersection
bool processFirstIntersection(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:49
Ray::ShapeList::processAllIntersections
int processAllIntersections(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:58
Ray::ShapeList::isInside
bool isInside(Util::Point3D p) const
Definition shapeList.todo.cpp:64
Ray::ShapeList::drawOpenGL
void drawOpenGL(GLSLProgram *glslProgram) const
Definition shapeList.todo.cpp:105
Ray::ShapeList::initOpenGL
void initOpenGL(void)
Definition shapeList.todo.cpp:94
Ray::ShapeList::_write
void _write(std::ostream &stream) const
Definition shapeList.cpp:208
Ray::ShapeList::shapes
std::vector< Shape * > shapes
Definition shapeList.h:183
Ray::StaticAffineShape::_normalTransform
Util::Matrix3D _normalTransform
Definition shapeList.h:53
Ray::StaticAffineShape::name
std::string name(void) const
Definition shapeList.h:71
Ray::StaticAffineShape::getNormalMatrix
Util::Matrix3D getNormalMatrix(void) const
Definition shapeList.cpp:84
Ray::StaticAffineShape::_inverseTransform
Util::Matrix4D _inverseTransform
Definition shapeList.h:50
Ray::StaticAffineShape::getMatrix
Util::Matrix4D getMatrix(void) const
Definition shapeList.cpp:80
Ray::StaticAffineShape::_write
void _write(std::ostream &stream) const
Definition shapeList.cpp:62
Ray::StaticAffineShape::StaticAffineShape
StaticAffineShape(void)
Definition shapeList.cpp:58
Ray::StaticAffineShape::getInverseMatrix
Util::Matrix4D getInverseMatrix(void) const
Definition shapeList.cpp:82
Ray::StaticAffineShape::_localTransform
Util::Matrix4D _localTransform
Definition shapeList.h:47
Ray::StaticAffineShape::init
void init(const class LocalSceneData &data)
Definition shapeList.todo.cpp:153
Ray::StaticAffineShape::_read
void _read(std::istream &stream)
Definition shapeList.cpp:71
Ray::StaticAffineShape::Directive
static std::string Directive(void)
Definition shapeList.h:56
Ray::StaticAffineShape::initOpenGL
void initOpenGL(void)
Definition shapeList.cpp:78
Ray::StaticAffineShape::set
void set(Util::Matrix4D m)
Definition shapeList.cpp:60
Ray::TriangleList::_write
void _write(std::ostream &stream) const
Definition shapeList.cpp:245
Ray::TriangleList::Scene
friend class Scene
Definition shapeList.h:207
Ray::TriangleList::_vertices
const class Vertex * _vertices
Definition shapeList.h:222
Ray::TriangleList::TriangleList
TriangleList(void)
Definition shapeList.cpp:243
Ray::TriangleList::_materialIndex
int _materialIndex
Definition shapeList.h:225
Ray::TriangleList::_vertexBufferID
GLuint _vertexBufferID
Definition shapeList.h:210
Ray::TriangleList::_vNum
unsigned int _vNum
Definition shapeList.h:219
Ray::TriangleList::name
std::string name(void) const
Definition shapeList.h:243
Ray::TriangleList::initOpenGL
void initOpenGL(void)
Definition shapeList.todo.cpp:198
Ray::TriangleList::processFirstIntersection
bool processFirstIntersection(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.cpp:268
Ray::TriangleList::_read
void _read(std::istream &stream)
Definition shapeList.cpp:254
Ray::TriangleList::Directive
static std::string Directive(void)
Definition shapeList.h:231
Ray::TriangleList::_material
const class Material * _material
Definition shapeList.h:228
Ray::TriangleList::processAllIntersections
int processAllIntersections(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.cpp:274
Ray::TriangleList::processOverlapping
void processOverlapping(const Filter &filter, const Kernel &kernel, ShapeProcessingInfo tInfo) const
Definition shapeList.cpp:262
Ray::TriangleList::_elementBufferID
GLuint _elementBufferID
Definition shapeList.h:213
Ray::TriangleList::init
void init(const class LocalSceneData &data)
Definition shapeList.todo.cpp:181
Ray::TriangleList::drawOpenGL
void drawOpenGL(GLSLProgram *glslProgram) const
Definition shapeList.todo.cpp:170
Ray::TriangleList::_tNum
unsigned int _tNum
Definition shapeList.h:216
Ray::Union
Definition shapeList.h:254
Ray::Union::_read
void _read(std::istream &stream)
Definition shapeList.cpp:293
Ray::Union::initOpenGL
void initOpenGL(void)
Definition shapeList.cpp:305
Ray::Union::name
std::string name(void) const
Definition shapeList.h:268
Ray::Union::isInside
bool isInside(Util::Point3D p) const
Definition shapeList.todo.cpp:277
Ray::Union::_write
void _write(std::ostream &stream) const
Definition shapeList.cpp:284
Ray::Union::updateBoundingBox
void updateBoundingBox(void)
Definition shapeList.todo.cpp:269
Ray::Union::_shapeList
ShapeList _shapeList
Definition shapeList.h:256
Ray::Union::processAllIntersections
int processAllIntersections(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:250
Ray::Union::init
void init(const class LocalSceneData &data)
Definition shapeList.todo.cpp:258
Ray::Union::processFirstIntersection
bool processFirstIntersection(const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const
Definition shapeList.todo.cpp:241
Ray::Union::Directive
static std::string Directive(void)
Definition shapeList.h:259
Ray::Union::drawOpenGL
void drawOpenGL(GLSLProgram *glslProgram) const
Definition shapeList.cpp:300
Ray::Vertex
Definition scene.h:203
geometry.h
GLuint
unsigned int GLuint
Definition glew.h:280
data
JSAMPIMAGE data
Definition jpeglib.h:945
Ray
Definition box.h:7
Util::Matrix3D
Matrix< 3, 3 > Matrix3D
Definition geometry.h:541
Util::Matrix4D
Matrix< 4, 4 > Matrix4D
Definition geometry.h:544
Util::Point3D
Point< 3 > Point3D
Definition geometry.h:526
Util::BoundingBox1D
BoundingBox< 1 > BoundingBox1D
Definition geometry.h:568
Util::Ray3D
Ray< 3 > Ray3D
Definition geometry.h:562
shape.h
Ray::Shape::ShapeProcessingInfo
Definition shape.h:148