14 #include <osg/ref_ptr>
15 #include <osg/PositionAttitudeTransform>
17 #include <osg/BoundingBox>
21 #include <OsgST_Forest.h>
23 #include <boost/unordered_map.hpp>
27 namespace makOsgSpeedTree
30 struct TreeInstanceDescriptor;
35 class DtAgentUpdateResolverInterface;
36 class DtSpeedTreeModelInstance;
37 class DtSpeedTreeCore;
38 class DtOsgCullVisitorParameters;
46 friend class DtSpeedTreeForestClassesCreator;
53 virtual void removeAllTrees();
57 virtual void removeAllUniqueTreesAndUniqueCell(
DtUniqueID cellID);
59 virtual void setTreeClippingPlane(
float fFar);
60 virtual void getTreeClippingPlane(
float& fFar );
62 virtual void setTree3DLodDistances(
float fNear,
float fFar);
63 virtual void getTree3DLodDistances(
float& fNear,
float& fFar );
65 virtual void setTreeBillboardDistances(
float fStart,
float fEnd);
66 virtual void getTreeBillboardDistances(
float& fStart,
float& fEnd);
68 void setBoundingBox(
const osg::BoundingBox& box);
69 const osg::BoundingBox& getBoundingBox(
void)
const;
73 osg::ref_ptr<osg::Node> getRootNode(
void);
77 void programBoundCallback(osg::ref_ptr<makOsgSpeedTree::Forest> pForest,
78 const makOsgSpeedTree::TreeType* pTreeType,
uint32 programID);
86 const std::string& strVisManagerType);
88 void init(
const std::string& strVisManagerType);
102 void connectSignals(
void);
103 void disconnectSignals(
void);
105 osg::Vec3f computeWindDirection(
float fDirection);
107 void setWindStrength(
float fStrength);
108 void setWindDirection(
float fDirection);
110 bool preUpdateCallback(osg::ref_ptr<makOsgSpeedTree::Forest> forest,
111 osg::RenderInfo& renderInfo);
112 bool preRenderCallback(osg::ref_ptr<makOsgSpeedTree::Forest> forest,
113 osg::RenderInfo& renderInfo);
114 void postUpdateCallback(osg::ref_ptr<makOsgSpeedTree::Forest> forest,
115 osg::RenderInfo& renderInfo);
116 void postRenderCallback(osg::ref_ptr<makOsgSpeedTree::Forest> forest,
117 osg::RenderInfo& renderInfo);
118 void provideTimeCallback(osg::ref_ptr<makOsgSpeedTree::Forest> forest,
121 void pushGraphicsState(osg::RenderInfo& renderInfo);
122 void popGraphicsState(osg::RenderInfo& renderInfo);
126 const std::string& modelDef);
131 void initTreeDesc(makOsgSpeedTree::TreeInstanceDescriptor& desc,
133 void initTreeDesc(makOsgSpeedTree::TreeInstanceDescriptor& desc,
135 void applyModelDefParameters(makOsgSpeedTree::TreeInstanceDescriptor& desc,
140 osg::RenderInfo& renderInfo);
153 makOsgSpeedTree::TreeInstanceDescriptorCollection
178 osg::ref_ptr<osg::PositionAttitudeTransform>
myPat;
187 typedef boost::unordered_map<DtUniqueID, makOsgSpeedTree::TreeInstance*>
230 const std::string& strVisManagerType);