VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtCellIndirectGeo Class Reference

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. More...

Public Member Functions

 DtCellIndirectGeo (DtDe &de, DtIndirectGeometryRegistrar *registrar, DtIndirectGeometryCreator &indirectGeomCreator, DtIndirectGeoComputeBoundCallbackCreator< DtCellIndirectGeo > &indirectGeoComputeBoundCallbackCreator, DtIndirectGeoIntersectionGroupCreator &indirectGeoIntersectGroupCreator)
 CTOR.
virtual ~DtCellIndirectGeo ()
 DTOR.
virtual void addInstance (const osg::Matrixd &instanceXForm, int modelId, osg::Node *modelNode)
virtual void setParent (const osg::Group *parent)
 Sets up the parent of the indirect geometry which this manages.
virtual const osg::BoundingBoxd & boundingBox (void) const
 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.

Protected Member Functions

virtual void expandBoundingBox (osg::Node *modelNode, const osg::Matrixd &instanceXForm)
 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 Attributes

DtIndirectGeometryRegistrarmyIndirectGeometryRegistrar
osg::ref_ptr< DtIndirectGeometrymyIndirectGeometry
osg::ref_ptr< osg::Group > myIndirectGeoIntersectionGroup
osg::BoundingBoxd myBoundingBox
 bounding box computation management
Threading::Mutex myMutableBoundingBoxMutex
DtDemyDe

Private Member Functions

 DtCellIndirectGeo ()
 CTOR (unimplemented default CTOR)

Detailed Description

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.

Constructor & Destructor Documentation

makVrv::DtCellIndirectGeo::DtCellIndirectGeo ( DtDe de,
DtIndirectGeometryRegistrar registrar,
DtIndirectGeometryCreator indirectGeomCreator,
DtIndirectGeoComputeBoundCallbackCreator< DtCellIndirectGeo > &  indirectGeoComputeBoundCallbackCreator,
DtIndirectGeoIntersectionGroupCreator indirectGeoIntersectGroupCreator 
)

CTOR.

virtual makVrv::DtCellIndirectGeo::~DtCellIndirectGeo ( )
virtual

DTOR.

makVrv::DtCellIndirectGeo::DtCellIndirectGeo ( )
private

CTOR (unimplemented default CTOR)

Member Function Documentation

virtual void makVrv::DtCellIndirectGeo::addInstance ( const osg::Matrixd &  instanceXForm,
int  modelId,
osg::Node *  modelNode 
)
virtual
Parameters
instanceXFormis the 'absolute' 64 bit transformation
modelIdper the registrar
modelNodethe top level osg node corresponding to the model geometry
virtual void makVrv::DtCellIndirectGeo::setParent ( const osg::Group *  parent)
virtual

Sets up the parent of the indirect geometry which this manages.

virtual const osg::BoundingBoxd& makVrv::DtCellIndirectGeo::boundingBox ( void  ) const
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 void makVrv::DtCellIndirectGeo::expandBoundingBox ( osg::Node *  modelNode,
const osg::Matrixd &  instanceXForm 
)
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)

Member Data Documentation

DtIndirectGeometryRegistrar* makVrv::DtCellIndirectGeo::myIndirectGeometryRegistrar
protected
osg::ref_ptr<DtIndirectGeometry> makVrv::DtCellIndirectGeo::myIndirectGeometry
protected
osg::ref_ptr<osg::Group> makVrv::DtCellIndirectGeo::myIndirectGeoIntersectionGroup
protected
osg::BoundingBoxd makVrv::DtCellIndirectGeo::myBoundingBox
protected

bounding box computation management

Threading::Mutex makVrv::DtCellIndirectGeo::myMutableBoundingBoxMutex
mutableprotected
DtDe& makVrv::DtCellIndirectGeo::myDe
protected

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

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)