Assignments
Assignments
|
#include <shapeList.h>
Public Member Functions | |
TriangleList (void) | |
std::string | name (void) const |
void | init (const class LocalSceneData &data) |
void | initOpenGL (void) |
bool | processFirstIntersection (const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const |
int | processAllIntersections (const Util::Ray3D &ray, const Util::BoundingBox1D &range, const RayIntersectionFilter &rFilter, const RayIntersectionKernel &rKernel, ShapeProcessingInfo spInfo, unsigned int tIdx) const |
void | processOverlapping (const Filter &filter, const Kernel &kernel, ShapeProcessingInfo tInfo) const |
void | drawOpenGL (GLSLProgram *glslProgram) const |
Public Member Functions inherited from Ray::ShapeList | |
void | updateBoundingBox (void) |
bool | isInside (Util::Point3D p) const |
void | addTrianglesOpenGL (std::vector< class TriangleIndex > &triangles) |
Public Member Functions inherited from Ray::Shape | |
virtual | ~Shape (void) |
ShapeBoundingBox | boundingBox (void) const |
size_t | primitiveNum (void) const |
Static Public Member Functions | |
static std::string | Directive (void) |
Static Public Member Functions inherited from Ray::ShapeList | |
static std::string | Directive (void) |
Static Public Member Functions inherited from Ray::Shape | |
static void | WriteInset (std::ostream &stream) |
Private Member Functions | |
void | _write (std::ostream &stream) const |
void | _read (std::istream &stream) |
Private Attributes | |
GLuint | _vertexBufferID = 0 |
GLuint | _elementBufferID = 0 |
unsigned int | _tNum |
unsigned int | _vNum |
const class Vertex * | _vertices |
int | _materialIndex |
const class Material * | _material |
Additional Inherited Members | |
Public Types inherited from Ray::Shape | |
typedef std::function< ShapeProcessingInfo::ProcessingType(const ShapeProcessingInfo &, const Shape &) > | Filter |
typedef std::function< void(const ShapeProcessingInfo &, const Shape &) > | Kernel |
typedef std::function< bool(double) > | RayIntersectionFilter |
typedef std::function< void(const ShapeProcessingInfo &, const class RayShapeIntersectionInfo &) > | RayIntersectionKernel |
Public Attributes inherited from Ray::ShapeList | |
std::vector< Shape * > | shapes |
Static Public Attributes inherited from Ray::ShapeList | |
static std::unordered_map< std::string, Util::BaseFactory< Shape > * > | ShapeFactories |
Static Public Attributes inherited from Ray::Shape | |
static unsigned int | OpenGLTessellationComplexity |
static unsigned int | WriteInsetSize = 0 |
Protected Attributes inherited from Ray::Shape | |
ShapeBoundingBox | _bBox |
size_t | _primitiveNum |
This class represents a node which stores a triangle list. It's children can only be Triangles or TrivialShapeLists.
TriangleList::TriangleList | ( | void | ) |
The default constructor
|
privatevirtual |
This method reads the Shape from the stream (excluding the starting directive)
Reimplemented from Ray::ShapeList.
|
privatevirtual |
This method writes the Shape into the stream (including the starting directive)
Reimplemented from Ray::ShapeList.
|
inlinestatic |
This static method returns the directive header describing the shape.
|
virtual |
This method calls the necessary OpenGL commands to render the primitive.
Reimplemented from Ray::ShapeList.
|
virtual |
This method should be called (once) immediately after setting up the scene graph
Reimplemented from Ray::ShapeList.
|
virtual |
This method should be called (once) after an OpenGL context has been created
Reimplemented from Ray::ShapeList.
|
inlinevirtual |
This method returns the name of the shape
Reimplemented from Ray::ShapeList.
|
virtual |
This method processes all shapes which intersect the ray within the prescribed range and passing the rFilter test, invoking the rKernel kernel with the intersection information. The processing terminates early if the kernel returns false. The function returns the number of valid intersections.
Reimplemented from Ray::ShapeList.
|
virtual |
This method processes the first shape which intersect the ray within the prescribed range and passing the rFilter test, invoking the rKernel kernel with the intersection information. The function returns true if there was an intersection.
Reimplemented from Ray::ShapeList.
|
virtual |
This method process Shapes by calling the "kernel" function on every shape whose bounding box passes the "filter" test. The tInfo parameter stores the accumulation of transformations encountered when traversing the scene-graph. Note that the bounding box is in the coordinate frame of the node.
Reimplemented from Ray::ShapeList.
|
private |
The OpenGL element buffer identifier
|
private |
The material associated to all triangles within the list
|
private |
The index of the material associated with the box
|
private |
The number of triangles in the list
|
private |
The OpenGL vertex buffer identifier
|
private |
The list of vertices
|
private |
The number of vertices in the list