![]() |
VR-Forces Developer's Guide
|
Helper for managing indirect geometry, its intersection group and registrar corresponding to a 'tile node' (gs cell or gt cell) DtCellToIndirectGeoMap in turn manages a map of feature tile nodes (for a layer) to a corresponding instance of DtCellIndirectGeo.

Public Member Functions | |
| DtCellIndirectGeo (DtDe &de, const DtCullShaderConfig &cullShaderConfig, bool includeIntersectionGeoInNodePath, const DtIndirectGeometrySubType &geometrySubType, const DtIndirectFadeParameters &fadeParameters) | |
| virtual | ~DtCellIndirectGeo () |
| virtual void | setModelsContainer (DtIndirectModelsContainer *modelsContainer, bool ownsModelsContainer) |
| virtual void | setParent (const osg::Group *parent) |
| virtual const osg::BoundingBoxd & | boundingBox (void) const |
| virtual const DtIndirectGeometry * | indirectGeometry (void) const |
| virtual DtIndirectGeometry * | indirectGeometry (void) |
| virtual osg::Group * | indirectIntersectionGroup () |
| virtual int | addInstance (const DtCellIndirectGeoInstance &cellIndirectGeoInstance) |
| virtual const std::unordered_map< int, int > & | modelIdToNumInstances (void) const |
Protected Member Functions | |
| virtual void | expandBoundingBox (const osg::Node *modelNode, const osg::Matrixd &instanceXForm) |
Protected Attributes | |
| DtIndirectModelsContainer * | myModelsContainer |
| bool | myOwnsModelsContainer |
| osg::ref_ptr< DtIndirectGeometry > | myIndirectGeometry |
| osg::ref_ptr< osg::Group > | myIndirectGeoIntersectionGroup |
| osg::BoundingBoxd | myBoundingBox |
| Threading::Mutex | myMutableBoundingBoxMutex |
| DtDe & | myDe |
| bool | myFirstInstance |
| bool | myIncludeIntersectionGeoInNodePath |
| std::unordered_map< int, int > | myModelIdToNumInstances |
Private Member Functions | |
| DtCellIndirectGeo ()=delete | |
| DtCellIndirectGeo (const DtCellIndirectGeo &other)=delete | |
| DtCellIndirectGeo & | operator= (const DtCellIndirectGeo &other)=delete |
| makVrv::DtCellIndirectGeo::DtCellIndirectGeo | ( | DtDe & | de, |
| const DtCullShaderConfig & | cullShaderConfig, | ||
| bool | includeIntersectionGeoInNodePath, | ||
| const DtIndirectGeometrySubType & | geometrySubType, | ||
| const DtIndirectFadeParameters & | fadeParameters | ||
| ) |
CTOR.
|
virtual |
DTOR.
|
privatedelete |
default constructor not implemented
|
privatedelete |
Copy Constructor not implemented – Copy Not Allowed.
|
privatedelete |
Assignment Operator Not implemented – Assignment Not Allowed.
|
virtual |
set/get the models container.
| ownsModelsContainer | whether cell owns the container (and hence should delete on its own destruction. Essentially a value of true transfers ownership to the cell |
|
virtual |
Sets up the parent of the indirect geometry which this manages.
|
virtual |
An indirect geometry doesn't know how to calculate bounding box since this is related to the instances as well as the osg models (that indirect geometry knows nothing about This class computes it for it, and sets itself up as the compute bound call back for the indirect geometry.
|
virtual |
internal. Access the internally held indirect geometry
|
virtual |
internal. Access the internally held indirect geometry
|
virtual |
get the intersection group for this cell
|
virtual |
internal method to add intersection geometry for an instance of the modelNode, with transform as instanceXForm. returns the instance id in the indirect geometry for the added instance.
|
virtual |
get the map of model ids to num of instances
|
protectedvirtual |
internal method to actually expand the bounding box based on the instance xform as well as the model node (and hence the model bbox in question)
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
bounding box computation management
|
mutableprotected |
|
protected |
|
protected |
|
protected |