VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtForestObject.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtForestObject.h,v $ $Revision: 1.20 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #ifndef DtForestObject_H_
14 #define DtForestObject_H_
15 
16 #include <vrvCore/vrvCore.h>
17 #include <vrvCore/DtTreeRecord.h>
20 #include <map>
21 #include <string>
22 #include <boost/unordered_map.hpp>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtTreeModel;
28  class DtModelInstance;
29  class DtModelDefinition;
30 
34  {
35 
36  public:
37 
39  friend class DtForestObjectClassesCreator;
40  friend class DtForestCreator;
41 
42  typedef boost::unordered_map<DtUniqueID, DtTreeRecord> TreeRecordMap;
43  typedef boost::unordered_map<std::string, DtTreeModel*> TreeModelMap;
44 
46  virtual ~DtForestObject();
47 
51 
52 
55  void addTree(const DtTreeRecord& record);
56 
58  virtual void removeTree(DtUniqueID treeId) = 0;
59 
61  virtual void removeAllTrees() = 0;
62 
65  virtual void setTreeClippingPlane(float fFar) = 0;
66 
68  virtual void getTreeClippingPlane( float& fFar) = 0;
69 
72  virtual void setTree3DLodDistances(float fNear, float fFar) = 0;
73 
76  virtual void getTree3DLodDistances(float& fNear, float& fFar) = 0;
77 
80  virtual void setTreeBillboardDistances(float fStart, float fEnd) = 0;
81 
84  virtual void getTreeBillboardDistances(float& fStart, float& fEnd) = 0;
85 
86 
88 
92 
93 
95  virtual void addUniqueTree(const DtTreeRecord& record) = 0;
96 
98  virtual DtTreeRecord* findTreeRecord(DtUniqueID id) = 0;
99 
101  virtual DtTreeModel* findTreeModel( const std::string& modelDef) = 0;
102 
104  virtual DtModelInstance* findModelInstance( const std::string& modelDef) = 0;
105 
107  virtual DtModelDefinition* findModelDefinition(const std::string& modelDef);
108 
110  virtual const TreeRecordMap& treeRecordMap() const;
111 
113 
115  virtual DtDe& de();
116 
117  protected:
118 
120  DtForestObject(DtDe& de, DtUniqueID id);
121 
123  virtual bool createTree(const DtTreeRecord& record) = 0;
124 
126  virtual void slot_treeModelInstanceToBeDestroyed(const std::string& modelDef) = 0;
127 
129  virtual void removeTreeModel( const std::string& modelDef) = 0;
130 
132  virtual void slot_treeModelInstanceCreated(const std::string& modelDef) = 0;
133 
135  virtual DtTreeModel* castUpdaterToTreeModel( DtAgentUpdateResolverInterface* updater );
136 
137  protected:
138 
142 
143  };
144 
148  {
149 
150  public:
151 
154  static DtForestCreator& instance(DtDe& de);
155 
157  static void registerInstance(DtDe& de, DtForestCreator* instance = 0);
158 
160  virtual DtForestObject* create(DtDe& de, DtUniqueID id);
161 
162  };
163 
164 }
165 
166 #endif
167 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)