VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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.
void enableBillboardRendering (bool enable)
void enable3DTreeRendering (bool enable)
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.
- 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 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
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.
- 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.

void makVrv::DtSpeedTreeForest::enableBillboardRendering ( bool  enable)
void makVrv::DtSpeedTreeForest::enable3DTreeRendering ( bool  enable)
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.

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


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

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)