Overview     Modules     Class Hierarchy     Classes     Members  
tlp::GlCPULODCalculator Class Reference

Class used to compute LOD of GlEntities with OpenMP parallelization. More...

#include <GlCPULODCalculator.h>

Inheritance diagram for tlp::GlCPULODCalculator:

List of all members.

Public Member Functions

 GlCPULODCalculator ()
virtual ~GlCPULODCalculator ()
virtual GlLODCalculator * clone ()
virtual void beginNewCamera (Camera *camera)
virtual void addSimpleEntityBoundingBox (GlSimpleEntity *entity, const BoundingBox &bb)
virtual void addNodeBoundingBox (unsigned int id, const BoundingBox &bb)
virtual void addEdgeBoundingBox (unsigned int id, const BoundingBox &bb)
virtual void reserveMemoryForNodes (unsigned int numberOfNodes)
virtual void reserveMemoryForEdges (unsigned int numberOfEdges)
virtual void compute (const Vector< int, 4 > &globalViewport, const Vector< int, 4 > &currentViewport)
virtual BoundingBox getSceneBoundingBox ()
void setComputeEdgesLOD (bool state)
void setComputeOutScreenLOD (bool state)

Protected Member Functions

virtual void computeFor3DCamera (LayerLODUnit *layerLODUnit, const Coord &eye, const Matrix< float, 4 > transformMatrix, const Vector< int, 4 > &globalViewport, const Vector< int, 4 > &currentViewport)
virtual void computeFor2DCamera (LayerLODUnit *layerLODUnit, const Vector< int, 4 > &globalViewport, const Vector< int, 4 > &currentViewport)

Protected Attributes

bool computeEdgesLOD
bool computeOutScreenLOD
BoundingBox sceneBoundingBox
LayerLODUnit * currentLayerLODUnit

Detailed Description

Class used to compute LOD of GlEntities with OpenMP parallelization.

This class perform LOD computation of GlEntities based on screen projection of entities bounding boxes

Warning:
By default this class don't compute LOD for edges (for optimisation) and return a lod of 10. to these edges, if you want to compute edges' LOD call setComputeEdgesLOD(true)

Constructor & Destructor Documentation

tlp::GlCPULODCalculator::GlCPULODCalculator ( )
virtual tlp::GlCPULODCalculator::~GlCPULODCalculator ( )
virtual

Member Function Documentation

virtual void tlp::GlCPULODCalculator::addEdgeBoundingBox ( unsigned int  id,
const BoundingBox &  bb 
)
virtual

This function is call by GlLODSceneVisitor when an edge is found

Reimplemented in tlp::GlQuadTreeLODCalculator.

virtual void tlp::GlCPULODCalculator::addNodeBoundingBox ( unsigned int  id,
const BoundingBox &  bb 
)
virtual

This function is call by GlLODSceneVisitor when a node is found

Reimplemented in tlp::GlQuadTreeLODCalculator.

virtual void tlp::GlCPULODCalculator::addSimpleEntityBoundingBox ( GlSimpleEntity entity,
const BoundingBox &  bb 
)
virtual

This function is call by GlLODSceneVisitor when a simple entitie is found

Reimplemented in tlp::GlQuadTreeLODCalculator.

virtual void tlp::GlCPULODCalculator::beginNewCamera ( Camera camera)
virtual

Begin a new camera (use to render next entities)

virtual GlLODCalculator* tlp::GlCPULODCalculator::clone ( )
inlinevirtual

Reimplemented in tlp::GlQuadTreeLODCalculator.

virtual void tlp::GlCPULODCalculator::compute ( const Vector< int, 4 > &  globalViewport,
const Vector< int, 4 > &  currentViewport 
)
virtual

Compute all bounding boxes If you want to compute LOD for a simple scene, you just have to call this function with same value on globalViewport and currentViewport But if you want to perform a sub screen part selection you have to call this function with : globalViewport the viewport of the visualisation and currentViewport the viewport of the selection

Parameters:
globalViewportis used to compute LOD
currentViewport: return -1 for all entities outside this viewport

Reimplemented in tlp::GlQuadTreeLODCalculator.

virtual void tlp::GlCPULODCalculator::computeFor2DCamera ( LayerLODUnit *  layerLODUnit,
const Vector< int, 4 > &  globalViewport,
const Vector< int, 4 > &  currentViewport 
)
protectedvirtual
virtual void tlp::GlCPULODCalculator::computeFor3DCamera ( LayerLODUnit *  layerLODUnit,
const Coord &  eye,
const Matrix< float, 4 >  transformMatrix,
const Vector< int, 4 > &  globalViewport,
const Vector< int, 4 > &  currentViewport 
)
protectedvirtual

Reimplemented in tlp::GlQuadTreeLODCalculator.

virtual BoundingBox tlp::GlCPULODCalculator::getSceneBoundingBox ( )
inlinevirtual

This function return the scene bounding box

virtual void tlp::GlCPULODCalculator::reserveMemoryForEdges ( unsigned int  numberOfEdges)
virtual

Reserve memory to store edges LOD, this function is an optimisation function

virtual void tlp::GlCPULODCalculator::reserveMemoryForNodes ( unsigned int  numberOfNodes)
virtual

Reserve memory to store nodes LOD, this function is an optimisation function

void tlp::GlCPULODCalculator::setComputeEdgesLOD ( bool  state)
inline

Set if the edge LOD must be calculated at default the edge LOD is not calculated and return 10.

void tlp::GlCPULODCalculator::setComputeOutScreenLOD ( bool  state)
inline

Set if the LOD is computed for out screen entities


Member Data Documentation

bool tlp::GlCPULODCalculator::computeEdgesLOD
protected
bool tlp::GlCPULODCalculator::computeOutScreenLOD
protected
LayerLODUnit* tlp::GlCPULODCalculator::currentLayerLODUnit
protected
BoundingBox tlp::GlCPULODCalculator::sceneBoundingBox
protected


Tulip Software by LaBRI Visualization Team    2001 - 2012