VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends
ConvertToBulletVisitor Class Reference

ConvertToBulletVisitor.

Inheritance diagram for ConvertToBulletVisitor:
Inheritance graph
[legend]

Classes

struct  BtTriangle
 
class  DtCollisionObject
 
class  DtSwitchableCollisionObject
 
class  NodeId
 
class  ParentStackGuard
 
class  VrfSwitch
 

Public Types

enum  ConvertToBulletFlags {
  TreatPagedLODAsLOD = 0x00000001, CheckGeodesForSurfaces = 0x00000002, UseQuantization = 0x00000004, BuildBvhNow = 0x00000008,
  FilterTransparentPolygons = 0x00000010, DefaultConversion = UseQuantization
}
 
typedef std::multimap< long
long, BtTriangle
Fid2BttriangleMap
 
typedef std::vector< osg::Matrix > MatrixStack
 

Public Member Functions

 ConvertToBulletVisitor (DtVantageTerrainEngine *terrainEngine, osg::NodeVisitor::VisitorType visitorType=NodeVisitor::INTERSECTION_VISITOR, osg::NodeVisitor::TraversalMode traverseMode=TRAVERSE_ALL_CHILDREN)
 
virtual ~ConvertToBulletVisitor () override
 
void setLoadOnlyActiveSwitchState (bool value)
 
void setDefaultSoiltype (const std::string &defaultSoiltype)
 
bool loadOnlyActiveSwitchState () const
 
bool hasFlags (ConvertToBulletFlags flags) const
 
void setFlagsFor (ConvertToBulletFlags flags, bool val)
 
void setIgnoreSurfacesMatching (const std::vector< std::string > &ignoreSurfacesMatching)
 
void setSurfaceCharMap (makVrf::DtSurfaceCharacteristicMapConstPtr surfCharMap)
 
void setDefaultSurface (const DtSurface &surface)
 
const osg::Matrix & matrix () const
 
void setMatrix (const osg::Matrix &matrix)
 
ConvertToBulletVisitor::ConvertToBulletFlags conversionFlags () const
 
void setConversionFlags (ConvertToBulletVisitor::ConvertToBulletFlags f)
 
void processModelsEncodedInUserdata (osg::Node &node)
 
virtual DtSurface getCurrentSurfaceFromSMCFID (osg::Node &node, bool &hasValidSurface)
 
virtual void getCurrentSurface (osg::Group &node)
 
DtSurface convertFilenameToSurface (const std::string &fname, int &position, int &matchClass, bool &ignored)
 
virtual DtSurface convertImageToSurfaceType (osg::StateSet *stateSet, bool &hasValidSurface, bool &ignored)
 
bool ignoreDrawable (osg::Drawable *drawable) const
 
size_t getScaleHash (const osg::Vec3d &scale) const
 
void createMeshForDrawables (const DtSurface &surface, const DrawablesList &drawables, osg::Node &node)
 
void createMeshFromDrawables (osg::Geode &geode, DtSurface surface, bool hasValidSurface)
 
virtual bool createGeometryFromCache (osg::Node &node)
 
virtual void apply (osg::Geode &geode) override
 
virtual void apply (osg::Drawable &drawable) override
 
virtual void apply (osg::Geometry &geometry) override
 
virtual void apply (osg::LOD &node) override
 
virtual void apply (osg::PagedLOD &node) override
 
virtual void apply (osg::Group &node) override
 
virtual void apply (osg::Sequence &node) override
 
virtual void apply (osg::Transform &node) override
 
virtual void apply (osg::MatrixTransform &node) override
 
virtual void apply (osg::Node &node) override
 
virtual
makVrv::DtDynamicTerrainSwitch
createSwitch (const osg::ref_ptr< osgSim::MultiSwitch > &mswitch) override
 
virtual
makVrv::DtDynamicTerrainSwitch
createSwitch (const osg::ref_ptr< osg::Switch > &sw) override
 
virtual
makVrv::DtDynamicTerrainSwitch
createSwitch (const osg::ref_ptr< makVrv::DtDynamicTerrainSwitchNode > &sw, size_t hash) override
 
void getCollisionObjects (DtCollisionObjectList &objs)
 
- Public Member Functions inherited from makVrv::DtDynamicTerrainStateManipulatorFactory
virtual ~DtDynamicTerrainStateManipulatorFactory ()
 

Public Attributes

int myNumDrawables
 
int myNumTriangles
 
int myNumBulletShapes
 
int myNumBulletObjects
 
int myNumScaledGeometries
 

Protected Types

typedef std::list
< DtBvhTriangleMeshShape::Ptr
ShapeList
 
typedef std::map< size_t,
ShapeList
ScaledInstanceShapeMap
 
typedef std::unordered_map
< osg::Node
*, ScaledInstanceShapeMap
NodeToShapeMap
 
typedef boost::unordered_map
< size_t, NodeId * > 
HashToNodeIdMap
 
typedef boost::unordered_map
< osg::Node *, NodeId * > 
NodeToNodeIdMap
 

Protected Member Functions

void createCollisionObjectFromMesh (std::unique_ptr< DtTriangleMeshWithSoil > &mesh, osg::Node &node, long long fid)
 
void collectInstanceTriangles (osgEarth::DrawInstanced::InstanceGeometry *instancedGeometry, Fid2BttriangleMap &geometryMap)
 
void pushMatrix (osg::Matrix &matrix)
 
void popMatrix ()
 

Protected Attributes

DtVantageTerrainEnginemyTerrainEngine
 
NodeToShapeMap myNodeToShapeMap
 
DtSurface myCurrentSurface
 
makVrf::DtSurfaceCharacteristicMapConstPtr mySurfaceCharacteristicMap
 
osg::Matrix myMatrix
 
MatrixStack myMatrixStack
 
std::vector< boost::regex > myIgnoreRegexSurfacesMatching
 
ConvertToBulletFlags myFlags
 
unsigned myNumGeodeParents
 
bool myLoadOnlyActiveSwitchState
 
std::string myDefaultSoiltype
 
NodeId myRootNodeId
 
NodeIdmyCurrentParentNodeId
 
HashToNodeIdMap myHashToNodeIdMap
 
NodeToNodeIdMap myNodeToNodeIdMap
 
osgEarth::MetadataNode * myMetadataNode
 
osg::observer_ptr
< osg::TextureBuffer > 
myTbo
 

Friends

class ParentStackGuard
 

Additional Inherited Members

- Static Public Member Functions inherited from makVrv::DtDynamicTerrainStateManipulatorFactory
static
DtDynamicTerrainStateManipulatorFactory
Create ()
 

Member Typedef Documentation

typedef std::vector<osg::Matrix> ConvertToBulletVisitor::MatrixStack
typedef std::map<size_t, ShapeList> ConvertToBulletVisitor::ScaledInstanceShapeMap
protected
typedef std::unordered_map<osg::Node*, ScaledInstanceShapeMap> ConvertToBulletVisitor::NodeToShapeMap
protected
typedef boost::unordered_map<size_t, NodeId*> ConvertToBulletVisitor::HashToNodeIdMap
protected
typedef boost::unordered_map<osg::Node*, NodeId*> ConvertToBulletVisitor::NodeToNodeIdMap
protected

Member Enumeration Documentation

Enumerator
TreatPagedLODAsLOD 
CheckGeodesForSurfaces 
UseQuantization 
BuildBvhNow 
FilterTransparentPolygons 
DefaultConversion 

Constructor & Destructor Documentation

ConvertToBulletVisitor::ConvertToBulletVisitor ( DtVantageTerrainEngine terrainEngine,
osg::NodeVisitor::VisitorType  visitorType = NodeVisitor::INTERSECTION_VISITOR,
osg::NodeVisitor::TraversalMode  traverseMode = TRAVERSE_ALL_CHILDREN 
)
virtual ConvertToBulletVisitor::~ConvertToBulletVisitor ( )
overridevirtual

Member Function Documentation

void ConvertToBulletVisitor::setLoadOnlyActiveSwitchState ( bool  value)
void ConvertToBulletVisitor::setDefaultSoiltype ( const std::string &  defaultSoiltype)
bool ConvertToBulletVisitor::loadOnlyActiveSwitchState ( ) const
bool ConvertToBulletVisitor::hasFlags ( ConvertToBulletFlags  flags) const
void ConvertToBulletVisitor::setFlagsFor ( ConvertToBulletFlags  flags,
bool  val 
)
void ConvertToBulletVisitor::setIgnoreSurfacesMatching ( const std::vector< std::string > &  ignoreSurfacesMatching)
void ConvertToBulletVisitor::setSurfaceCharMap ( makVrf::DtSurfaceCharacteristicMapConstPtr  surfCharMap)
void ConvertToBulletVisitor::setDefaultSurface ( const DtSurface surface)
const osg::Matrix& ConvertToBulletVisitor::matrix ( ) const
void ConvertToBulletVisitor::setMatrix ( const osg::Matrix &  matrix)
ConvertToBulletVisitor::ConvertToBulletFlags ConvertToBulletVisitor::conversionFlags ( ) const
void ConvertToBulletVisitor::setConversionFlags ( ConvertToBulletVisitor::ConvertToBulletFlags  f)
void ConvertToBulletVisitor::processModelsEncodedInUserdata ( osg::Node &  node)
virtual DtSurface ConvertToBulletVisitor::getCurrentSurfaceFromSMCFID ( osg::Node &  node,
bool hasValidSurface 
)
virtual
virtual void ConvertToBulletVisitor::getCurrentSurface ( osg::Group &  node)
virtual
DtSurface ConvertToBulletVisitor::convertFilenameToSurface ( const std::string &  fname,
int position,
int matchClass,
bool ignored 
)
virtual DtSurface ConvertToBulletVisitor::convertImageToSurfaceType ( osg::StateSet *  stateSet,
bool hasValidSurface,
bool ignored 
)
virtual
bool ConvertToBulletVisitor::ignoreDrawable ( osg::Drawable *  drawable) const
size_t ConvertToBulletVisitor::getScaleHash ( const osg::Vec3d &  scale) const
void ConvertToBulletVisitor::createMeshForDrawables ( const DtSurface surface,
const DrawablesList drawables,
osg::Node &  node 
)
void ConvertToBulletVisitor::createMeshFromDrawables ( osg::Geode &  geode,
DtSurface  surface,
bool  hasValidSurface 
)
virtual bool ConvertToBulletVisitor::createGeometryFromCache ( osg::Node &  node)
virtual
virtual void ConvertToBulletVisitor::apply ( osg::Geode &  geode)
overridevirtual

Apply.

virtual void ConvertToBulletVisitor::apply ( osg::Drawable &  drawable)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::Geometry &  geometry)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::LOD &  node)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::PagedLOD &  node)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::Group &  node)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::Sequence &  node)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::Transform &  node)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::MatrixTransform &  node)
overridevirtual
virtual void ConvertToBulletVisitor::apply ( osg::Node &  node)
overridevirtual
virtual makVrv::DtDynamicTerrainSwitch* ConvertToBulletVisitor::createSwitch ( const osg::ref_ptr< osgSim::MultiSwitch > &  )
overridevirtual

Create a DtDynamicTerrainSwitch which manipulates the supplied multiswitch.

Implements makVrv::DtDynamicTerrainStateManipulatorFactory.

virtual makVrv::DtDynamicTerrainSwitch* ConvertToBulletVisitor::createSwitch ( const osg::ref_ptr< osg::Switch > &  )
overridevirtual

Create a DtDynamicTerrainSwitch which manipulates the supplied switch.

Implements makVrv::DtDynamicTerrainStateManipulatorFactory.

virtual makVrv::DtDynamicTerrainSwitch* ConvertToBulletVisitor::createSwitch ( const osg::ref_ptr< makVrv::DtDynamicTerrainSwitchNode > &  ,
size_t   
)
overridevirtual

Create a DtDynamicTerrainSwitch which manipulates the supplied DtDynamicTerrainSwitchNode.

Implements makVrv::DtDynamicTerrainStateManipulatorFactory.

void ConvertToBulletVisitor::getCollisionObjects ( DtCollisionObjectList objs)
void ConvertToBulletVisitor::createCollisionObjectFromMesh ( std::unique_ptr< DtTriangleMeshWithSoil > &  mesh,
osg::Node &  node,
long long  fid 
)
protected
void ConvertToBulletVisitor::collectInstanceTriangles ( osgEarth::DrawInstanced::InstanceGeometry *  instancedGeometry,
Fid2BttriangleMap geometryMap 
)
protected
void ConvertToBulletVisitor::pushMatrix ( osg::Matrix &  matrix)
inlineprotected

References myMatrixStack.

void ConvertToBulletVisitor::popMatrix ( )
inlineprotected

References myMatrixStack.

Friends And Related Function Documentation

friend class ParentStackGuard
friend

Member Data Documentation

DtVantageTerrainEngine* ConvertToBulletVisitor::myTerrainEngine
protected
NodeToShapeMap ConvertToBulletVisitor::myNodeToShapeMap
protected
DtSurface ConvertToBulletVisitor::myCurrentSurface
protected
makVrf::DtSurfaceCharacteristicMapConstPtr ConvertToBulletVisitor::mySurfaceCharacteristicMap
protected
osg::Matrix ConvertToBulletVisitor::myMatrix
protected
MatrixStack ConvertToBulletVisitor::myMatrixStack
protected

Referenced by popMatrix(), and pushMatrix().

std::vector<boost::regex> ConvertToBulletVisitor::myIgnoreRegexSurfacesMatching
protected
ConvertToBulletFlags ConvertToBulletVisitor::myFlags
protected
unsigned ConvertToBulletVisitor::myNumGeodeParents
protected
bool ConvertToBulletVisitor::myLoadOnlyActiveSwitchState
protected
std::string ConvertToBulletVisitor::myDefaultSoiltype
protected
NodeId ConvertToBulletVisitor::myRootNodeId
protected
NodeId* ConvertToBulletVisitor::myCurrentParentNodeId
protected
HashToNodeIdMap ConvertToBulletVisitor::myHashToNodeIdMap
protected
NodeToNodeIdMap ConvertToBulletVisitor::myNodeToNodeIdMap
protected
osgEarth::MetadataNode* ConvertToBulletVisitor::myMetadataNode
protected

Store the metadata node currently visiting.

osg::observer_ptr< osg::TextureBuffer > ConvertToBulletVisitor::myTbo
protected

TBO to look up instance ids.

int ConvertToBulletVisitor::myNumDrawables
int ConvertToBulletVisitor::myNumTriangles
int ConvertToBulletVisitor::myNumBulletShapes
int ConvertToBulletVisitor::myNumBulletObjects
int ConvertToBulletVisitor::myNumScaledGeometries

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)