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

DtSpeedTreeForest is the SpeedTree implementation of a distributed DtForestObject. More...

Inheritance diagram for makVrv::DtSpeedTreeForest:
Inheritance graph
[legend]

Classes

struct  ModelDefParams

Public Member Functions

virtual ~DtSpeedTreeForest ()
virtual void addUniqueTree (DtTreeRecord &record)
 Add a tree to the forest.
virtual void removeTree (DtUniqueID record)
 Remove a tree from the forest.
virtual void removeAllTrees ()
 Remove all trees.
virtual DtUniqueID addUniqueTreesToUniqueCell (DtVectorTreeRecords &records)
virtual void removeAllUniqueTreesAndUniqueCell (DtUniqueID cellID)
virtual void setTreeClippingPlane (float fFar)
 Set the distance that trees are clipped.
virtual void getTreeClippingPlane (float &fFar)
 Get the clipping planes.
virtual void setTree3DLodDistances (float fNear, float fFar)
 Set the distances for tree LOD's.
virtual void getTree3DLodDistances (float &fNear, float &fFar)
 Set the distances for tree LOD's.
virtual void setTreeBillboardDistances (float fStart, float fEnd)
 Set the distances for tree billboard LOD's.
virtual void getTreeBillboardDistances (float &fStart, float &fEnd)
 Get the distances for tree billboard LOD's.
virtual void enableBillboardRendering (bool enable)
virtual bool isBillboardRenderingEnabled () const
virtual void enable3DTreeRendering (bool enable)
virtual bool is3DTreeRenderingEnabled () const
virtual void enableReceiveShadows (bool enable)
virtual bool isReceiveShadowsEnabled () const
void setBoundingBox (const osg::BoundingBox &box)
const osg::BoundingBox & getBoundingBox (void) const
osg::ref_ptr< osg::Node > getRootNode (void)
 gets the root node for this forest which contains the stateset for the forest
void programBoundCallback (osg::ref_ptr< makOsgSpeedTree::Forest > pForest, const makOsgSpeedTree::TreeType *pTreeType, uint32 programID)
 callback from when a shader is loaded in speedtree so VRV can bind its own uniforms
virtual void slot_reloadShaders ()
 Indicate to the SpeedTreeForest that it should recompile the SpeedTree (and related) shaders (done in the preUpdateCallback)
virtual void slot_useGlobalAmbientChanged (bool enabled)
 Runs when the user checks the Use Global Ambient Checkbox.
virtual void slot_useGlobalDiffuseChanged (bool enabled)
 Runs when the user checks the Use Global Diffuse Checkbox.
virtual void slot_perPixelLightingEnabledChanged (bool enabled)
 Runs when the user checks the Display Light Rendering Settings Enable Lighting checkbox.
virtual void slot_planarReflectionsShowSpeedTreesChanged (bool enabled)
 handles the flag that sets whether trees should be rendered in the planar reflections.
- Public Member Functions inherited from makVrv::DtForestObject
virtual ~DtForestObject ()
 Destructor.
virtual DtDede ()
 IG accessor.
void addTree (DtTreeRecord &record)
 Add a tree to the forest.

Protected Types

typedef std::map< std::string,
ModelDefParams
MapModelDefToSTFileName
typedef boost::unordered_map
< DtUniqueID,
makOsgSpeedTree::TreeInstanceCollection > 
MapCellsToTrees
typedef boost::unordered_map
< DtUniqueID,
makOsgSpeedTree::TreeInstance * > 
MapTreeIDToTree

Protected Member Functions

 DtSpeedTreeForest (DtDe &de, DtUniqueID id)
 Constructor is protected because this class is created via the creator pattern.
 DtSpeedTreeForest (DtDe &de, DtUniqueID id, const std::string &strVisManagerType)
void init (const std::string &strVisManagerType)
void connectSignals (void)
osg::Vec3f computeWindDirection (float fDirection)
void setWindStrength (float fStrength)
void setWindDirection (float fDirection)
bool preUpdateCallback (osg::ref_ptr< makOsgSpeedTree::Forest > forest, osg::RenderInfo &renderInfo)
bool preRenderCallback (osg::ref_ptr< makOsgSpeedTree::Forest > forest, osg::RenderInfo &renderInfo)
void postUpdateCallback (osg::ref_ptr< makOsgSpeedTree::Forest > forest, osg::RenderInfo &renderInfo)
void postRenderCallback (osg::ref_ptr< makOsgSpeedTree::Forest > forest, osg::RenderInfo &renderInfo)
void provideTimeCallback (osg::ref_ptr< makOsgSpeedTree::Forest > forest, double &fTime)
void pushGraphicsState (osg::RenderInfo &renderInfo)
void popGraphicsState (osg::RenderInfo &renderInfo)
virtual DtModelDefinitionfindModelDefinition (const std::string &modelDef)
 Find a DtModelDefinition* from the model definition name.
bool createTree (DtTreeRecord &record)
 No-op. Always returns true.
void initTreeDesc (makOsgSpeedTree::TreeInstanceDescriptor &desc, DtTreeRecord &record, const DtVector &up)
void initTreeDesc (makOsgSpeedTree::TreeInstanceDescriptor &desc, DtTreeRecord &record, bool setupTopoFrame=true)
void applyModelDefParameters (makOsgSpeedTree::TreeInstanceDescriptor &desc, DtTreeRecord &record)
- Protected Member Functions inherited from makVrv::DtForestObject
 DtForestObject (DtDe &de, DtUniqueID id)
 Constructor is protected because this class is created via the creator pattern.

Static Protected Member Functions

static DtOsgCullVisitorParametersgetCullParameters (osg::RenderInfo &renderInfo)
static bool isCameraOrthographic (DtOsgCullVisitorParameters *params)
static bool isReflectionCamera (osg::Camera *camera)
 is the current camera in the render info a reflection camera
static float getZoomFactor (DtOsgCullVisitorParameters *params, DtDe &de)

Protected Attributes

makOsgSpeedTree::TreeInstanceDescriptor myScratchTreeInstanceDesc
makOsgSpeedTree::TreeInstanceDescriptorCollection myScratchTreeInstanceDescCollection
makOsgSpeedTree::TreeInstanceCollection myScratchInstanceCollection
MapModelDefToSTFileName myMapModelDefToSTFileName
int myPreviousTU
osg::Camera * myCamera
DtSignalConnectionManager myConnections
boost::unordered_map< int, boolmyShaderBoundMap
boost::unordered_map< int, intmyAlphaThresholdBlockLoc
float myFarPlane
osg::ref_ptr< osg::Group > myRoot
 The forest is a collection of trees under a group node.
osg::ref_ptr
< osg::PositionAttitudeTransform > 
myPat
osg::ref_ptr
< makOsgSpeedTree::Forest
myForest
osg::BoundingBox myBoundingBox
DtSpeedTreeCoremyCore
DtEnvironmentInfomyEnvInfo
MapCellsToTrees myMapCellsToTrees
MapTreeIDToTree myMapTreeIDtoTree
unsigned int myLastShaderHash
 shader hash for the last shaders passed down to SpeedTree
bool myReloadShaders
 Should we reload the SpeedTree shaders.
const std::string mySpeedTreeDefaultUserFuncsVertexShader
const std::string mySpeedTreeDefaultUserFuncsPixelShader
osg::ref_ptr< osg::Uniform > myProjectionMatrixInverseUniform
osg::ref_ptr< osg::Uniform > myNormalMatrixUniform
DtCVSpanmyRenderSpan
DtCVMarkerSeriesmyMarkerSeries
osg::GLExtensions * myExt
bool myReceiveShadows
- Protected Attributes inherited from makVrv::DtForestObject
DtDemyDe

Static Protected Attributes

static const float myCellSize

Friends

class DtSpeedTreeForestClassesCreator
class DtSpeedTreeForestCreator

Additional Inherited Members

- Public Types inherited from makVrv::DtForestObject
typedef boost::unordered_map
< DtUniqueID, DtTreeRecord
TreeRecordMap

Detailed Description

DtSpeedTreeForest is the SpeedTree implementation of a distributed DtForestObject.

Member Typedef Documentation

typedef std::map<std::string, ModelDefParams> makVrv::DtSpeedTreeForest::MapModelDefToSTFileName
protected
typedef boost::unordered_map<DtUniqueID, makOsgSpeedTree::TreeInstanceCollection> makVrv::DtSpeedTreeForest::MapCellsToTrees
protected
typedef boost::unordered_map<DtUniqueID, makOsgSpeedTree::TreeInstance*> makVrv::DtSpeedTreeForest::MapTreeIDToTree
protected

Constructor & Destructor Documentation

virtual makVrv::DtSpeedTreeForest::~DtSpeedTreeForest ( )
virtual
makVrv::DtSpeedTreeForest::DtSpeedTreeForest ( DtDe de,
DtUniqueID  id 
)
protected

Constructor is protected because this class is created via the creator pattern.

makVrv::DtSpeedTreeForest::DtSpeedTreeForest ( DtDe de,
DtUniqueID  id,
const std::string &  strVisManagerType 
)
protected

Member Function Documentation

virtual void makVrv::DtSpeedTreeForest::addUniqueTree ( DtTreeRecord record)
virtual

Add a tree to the forest.

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::removeTree ( DtUniqueID  treeId)
virtual

Remove a tree from the forest.

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::removeAllTrees ( )
virtual

Remove all trees.

Implements makVrv::DtForestObject.

virtual DtUniqueID makVrv::DtSpeedTreeForest::addUniqueTreesToUniqueCell ( DtVectorTreeRecords records)
virtual
virtual void makVrv::DtSpeedTreeForest::removeAllUniqueTreesAndUniqueCell ( DtUniqueID  cellID)
virtual
virtual void makVrv::DtSpeedTreeForest::setTreeClippingPlane ( float  fFar)
virtual

Set the distance that trees are clipped.

Not implemented in DtOsgForest (only DtSpeedTreeForest).

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::getTreeClippingPlane ( float &  fFar)
virtual

Get the clipping planes.

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::setTree3DLodDistances ( float  fNear,
float  fFar 
)
virtual

Set the distances for tree LOD's.

Not implemented in DtOsgForest (only DtSpeedTreeForest).

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::getTree3DLodDistances ( float &  fNear,
float &  fFar 
)
virtual

Set the distances for tree LOD's.

Not implemented in DtOsgForest (only DtSpeedTreeForest).

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::setTreeBillboardDistances ( float  fStart,
float  fEnd 
)
virtual

Set the distances for tree billboard LOD's.

Not implemented in DtOsgForest (only DtSpeedTreeForest).

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::getTreeBillboardDistances ( float &  fStart,
float &  fEnd 
)
virtual

Get the distances for tree billboard LOD's.

Not implemented in DtOsgForest (only DtSpeedTreeForest).

Implements makVrv::DtForestObject.

virtual void makVrv::DtSpeedTreeForest::enableBillboardRendering ( bool  enable)
virtual
virtual bool makVrv::DtSpeedTreeForest::isBillboardRenderingEnabled ( ) const
virtual
virtual void makVrv::DtSpeedTreeForest::enable3DTreeRendering ( bool  enable)
virtual
virtual bool makVrv::DtSpeedTreeForest::is3DTreeRenderingEnabled ( ) const
virtual
virtual void makVrv::DtSpeedTreeForest::enableReceiveShadows ( bool  enable)
virtual
virtual bool makVrv::DtSpeedTreeForest::isReceiveShadowsEnabled ( ) const
inlinevirtual
void makVrv::DtSpeedTreeForest::setBoundingBox ( const osg::BoundingBox &  box)
const osg::BoundingBox& makVrv::DtSpeedTreeForest::getBoundingBox ( void  ) const
osg::ref_ptr<osg::Node> makVrv::DtSpeedTreeForest::getRootNode ( void  )

gets the root node for this forest which contains the stateset for the forest

void makVrv::DtSpeedTreeForest::programBoundCallback ( osg::ref_ptr< makOsgSpeedTree::Forest pForest,
const makOsgSpeedTree::TreeType *  pTreeType,
uint32  programID 
)

callback from when a shader is loaded in speedtree so VRV can bind its own uniforms

virtual void makVrv::DtSpeedTreeForest::slot_reloadShaders ( )
virtual

Indicate to the SpeedTreeForest that it should recompile the SpeedTree (and related) shaders (done in the preUpdateCallback)

virtual void makVrv::DtSpeedTreeForest::slot_useGlobalAmbientChanged ( bool  enabled)
virtual

Runs when the user checks the Use Global Ambient Checkbox.

virtual void makVrv::DtSpeedTreeForest::slot_useGlobalDiffuseChanged ( bool  enabled)
virtual

Runs when the user checks the Use Global Diffuse Checkbox.

virtual void makVrv::DtSpeedTreeForest::slot_perPixelLightingEnabledChanged ( bool  enabled)
virtual

Runs when the user checks the Display Light Rendering Settings Enable Lighting checkbox.

virtual void makVrv::DtSpeedTreeForest::slot_planarReflectionsShowSpeedTreesChanged ( bool  enabled)
virtual

handles the flag that sets whether trees should be rendered in the planar reflections.

void makVrv::DtSpeedTreeForest::init ( const std::string &  strVisManagerType)
protected
void makVrv::DtSpeedTreeForest::connectSignals ( void  )
protected
osg::Vec3f makVrv::DtSpeedTreeForest::computeWindDirection ( float  fDirection)
protected
void makVrv::DtSpeedTreeForest::setWindStrength ( float  fStrength)
protected
void makVrv::DtSpeedTreeForest::setWindDirection ( float  fDirection)
protected
bool makVrv::DtSpeedTreeForest::preUpdateCallback ( osg::ref_ptr< makOsgSpeedTree::Forest forest,
osg::RenderInfo &  renderInfo 
)
protected
bool makVrv::DtSpeedTreeForest::preRenderCallback ( osg::ref_ptr< makOsgSpeedTree::Forest forest,
osg::RenderInfo &  renderInfo 
)
protected
void makVrv::DtSpeedTreeForest::postUpdateCallback ( osg::ref_ptr< makOsgSpeedTree::Forest forest,
osg::RenderInfo &  renderInfo 
)
protected
void makVrv::DtSpeedTreeForest::postRenderCallback ( osg::ref_ptr< makOsgSpeedTree::Forest forest,
osg::RenderInfo &  renderInfo 
)
protected
void makVrv::DtSpeedTreeForest::provideTimeCallback ( osg::ref_ptr< makOsgSpeedTree::Forest forest,
double fTime 
)
protected
void makVrv::DtSpeedTreeForest::pushGraphicsState ( osg::RenderInfo &  renderInfo)
protected
void makVrv::DtSpeedTreeForest::popGraphicsState ( osg::RenderInfo &  renderInfo)
protected
virtual DtModelDefinition* makVrv::DtSpeedTreeForest::findModelDefinition ( const std::string &  modelDef)
protectedvirtual

Find a DtModelDefinition* from the model definition name.

bool makVrv::DtSpeedTreeForest::createTree ( DtTreeRecord record)
protected

No-op. Always returns true.

void makVrv::DtSpeedTreeForest::initTreeDesc ( makOsgSpeedTree::TreeInstanceDescriptor &  desc,
DtTreeRecord record,
const DtVector up 
)
protected
void makVrv::DtSpeedTreeForest::initTreeDesc ( makOsgSpeedTree::TreeInstanceDescriptor &  desc,
DtTreeRecord record,
bool  setupTopoFrame = true 
)
protected
void makVrv::DtSpeedTreeForest::applyModelDefParameters ( makOsgSpeedTree::TreeInstanceDescriptor &  desc,
DtTreeRecord record 
)
protected
static DtOsgCullVisitorParameters* makVrv::DtSpeedTreeForest::getCullParameters ( osg::RenderInfo &  renderInfo)
staticprotected
static bool makVrv::DtSpeedTreeForest::isCameraOrthographic ( DtOsgCullVisitorParameters params)
staticprotected
static bool makVrv::DtSpeedTreeForest::isReflectionCamera ( osg::Camera *  camera)
staticprotected

is the current camera in the render info a reflection camera

static float makVrv::DtSpeedTreeForest::getZoomFactor ( DtOsgCullVisitorParameters params,
DtDe de 
)
staticprotected

Friends And Related Function Documentation

friend class DtSpeedTreeForestClassesCreator
friend
friend class DtSpeedTreeForestCreator
friend

Member Data Documentation

const float makVrv::DtSpeedTreeForest::myCellSize
staticprotected
makOsgSpeedTree::TreeInstanceDescriptor makVrv::DtSpeedTreeForest::myScratchTreeInstanceDesc
protected
makOsgSpeedTree::TreeInstanceDescriptorCollection makVrv::DtSpeedTreeForest::myScratchTreeInstanceDescCollection
protected
makOsgSpeedTree::TreeInstanceCollection makVrv::DtSpeedTreeForest::myScratchInstanceCollection
protected
MapModelDefToSTFileName makVrv::DtSpeedTreeForest::myMapModelDefToSTFileName
protected
int makVrv::DtSpeedTreeForest::myPreviousTU
protected
osg::Camera* makVrv::DtSpeedTreeForest::myCamera
protected
DtSignalConnectionManager makVrv::DtSpeedTreeForest::myConnections
protected
boost::unordered_map<int, bool> makVrv::DtSpeedTreeForest::myShaderBoundMap
protected
boost::unordered_map<int, int> makVrv::DtSpeedTreeForest::myAlphaThresholdBlockLoc
protected
float makVrv::DtSpeedTreeForest::myFarPlane
protected
osg::ref_ptr<osg::Group> makVrv::DtSpeedTreeForest::myRoot
protected

The forest is a collection of trees under a group node.

osg::ref_ptr<osg::PositionAttitudeTransform> makVrv::DtSpeedTreeForest::myPat
protected
osg::ref_ptr<makOsgSpeedTree::Forest> makVrv::DtSpeedTreeForest::myForest
protected
osg::BoundingBox makVrv::DtSpeedTreeForest::myBoundingBox
protected
DtSpeedTreeCore& makVrv::DtSpeedTreeForest::myCore
protected
DtEnvironmentInfo& makVrv::DtSpeedTreeForest::myEnvInfo
protected
MapCellsToTrees makVrv::DtSpeedTreeForest::myMapCellsToTrees
protected
MapTreeIDToTree makVrv::DtSpeedTreeForest::myMapTreeIDtoTree
protected
unsigned int makVrv::DtSpeedTreeForest::myLastShaderHash
protected

shader hash for the last shaders passed down to SpeedTree

bool makVrv::DtSpeedTreeForest::myReloadShaders
protected

Should we reload the SpeedTree shaders.

const std::string makVrv::DtSpeedTreeForest::mySpeedTreeDefaultUserFuncsVertexShader
protected
const std::string makVrv::DtSpeedTreeForest::mySpeedTreeDefaultUserFuncsPixelShader
protected
osg::ref_ptr<osg::Uniform> makVrv::DtSpeedTreeForest::myProjectionMatrixInverseUniform
protected
osg::ref_ptr<osg::Uniform> makVrv::DtSpeedTreeForest::myNormalMatrixUniform
protected
DtCVSpan* makVrv::DtSpeedTreeForest::myRenderSpan
protected
DtCVMarkerSeries* makVrv::DtSpeedTreeForest::myMarkerSeries
protected
osg::GLExtensions* makVrv::DtSpeedTreeForest::myExt
protected
bool makVrv::DtSpeedTreeForest::myReceiveShadows
protected

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

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)