Assignments
Assignments
Ray::SceneGeometry Class Reference

#include <scene.h>

Inheritance diagram for Ray::SceneGeometry:
Ray::Shape Ray::File Ray::Scene

Public Member Functions

void init (void)
 
template<typename ParameterType >
void setKeyFrameEvaluator (void)
 
void setCurrentTime (double t, int curveFit)
 
std::string name (void) const
 
void init (const LocalSceneData &sceneData)
 
void initOpenGL (void)
 
void updateBoundingBox (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
 
bool isInside (Util::Point3D p) const
 
void drawOpenGL (GLSLProgram *glslProgram) const
 
- Public Member Functions inherited from Ray::Shape
virtual ~Shape (void)
 
ShapeBoundingBox boundingBox (void) const
 
virtual void init (const class LocalSceneData &data)=0
 
virtual void addTrianglesOpenGL (std::vector< class TriangleIndex > &triangles)
 
size_t primitiveNum (void) const
 

Private Member Functions

void _write (std::ostream &stream) const
 
void _read (std::istream &stream)
 

Private Attributes

LocalSceneData _localData
 
ShapeList _shapeList
 

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
 
- Static Public Member Functions inherited from Ray::Shape
static void WriteInset (std::ostream &stream)
 
- 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
 

Detailed Description

This class stores all of the information describing the geometry in a scene

Member Function Documentation

◆ _read()

void SceneGeometry::_read ( std::istream &  stream)
privatevirtual

This method reads the Shape from the stream (excluding the starting directive)

Implements Ray::Shape.

◆ _write()

void SceneGeometry::_write ( std::ostream &  stream) const
privatevirtual

This method writes the Shape into the stream (including the starting directive)

Implements Ray::Shape.

◆ drawOpenGL()

void SceneGeometry::drawOpenGL ( GLSLProgram glslProgram) const
virtual

This method calls the necessary OpenGL commands to render the primitive.

Implements Ray::Shape.

◆ init() [1/2]

void SceneGeometry::init ( const LocalSceneData sceneData)

◆ init() [2/2]

void SceneGeometry::init ( void  )

Initializes the scene geometry, transforming property indices to pointers

◆ initOpenGL()

void SceneGeometry::initOpenGL ( void  )
virtual

This method should be called (once) after an OpenGL context has been created

Implements Ray::Shape.

Reimplemented in Ray::Scene.

◆ isInside()

bool SceneGeometry::isInside ( Util::Point3D  p) const
virtual

This method determines if a point is inside a shape. It is assumed that if the shape is not water-tight, the method returns false.

Implements Ray::Shape.

◆ name()

std::string Ray::SceneGeometry::name ( void  ) const
inlinevirtual

This method returns the name of the shape

Implements Ray::Shape.

◆ processAllIntersections()

int SceneGeometry::processAllIntersections ( const Util::Ray3D ray,
const Util::BoundingBox1D range,
const RayIntersectionFilter rFilter,
const RayIntersectionKernel rKernel,
ShapeProcessingInfo  spInfo,
unsigned int  tIdx 
) const
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.

Implements Ray::Shape.

Reimplemented in Ray::Scene.

◆ processFirstIntersection()

bool SceneGeometry::processFirstIntersection ( const Util::Ray3D ray,
const Util::BoundingBox1D range,
const RayIntersectionFilter rFilter,
const RayIntersectionKernel rKernel,
ShapeProcessingInfo  spInfo,
unsigned int  tIdx 
) const
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.

Implements Ray::Shape.

Reimplemented in Ray::Scene.

◆ processOverlapping()

void SceneGeometry::processOverlapping ( const Filter filter,
const Kernel kernel,
ShapeProcessingInfo  spInfo 
) const
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::Shape.

◆ setCurrentTime()

void SceneGeometry::setCurrentTime ( double  t,
int  curveFit 
)

This method updates the current time, changing the parameter values as needed

◆ setKeyFrameEvaluator()

template<typename ParameterType >
void Ray::SceneGeometry::setKeyFrameEvaluator ( void  )

This templated method sets the key frame evaluator using the prescribed type of parameter

◆ updateBoundingBox()

void SceneGeometry::updateBoundingBox ( void  )
virtual

This method should be called to update the bounding boxes in the scene

Implements Ray::Shape.

Member Data Documentation

◆ _localData

LocalSceneData Ray::SceneGeometry::_localData
private

The local data

◆ _shapeList

ShapeList Ray::SceneGeometry::_shapeList
private

The root of the scene-graph


The documentation for this class was generated from the following files: