VR-Forces 4.1.1 Class Documentation
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 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtTreeModel;
27  class DtModelInstance;
28  class DtModelDefinition;
29 
33  {
34 
35  public:
36 
38  friend class DtForestObjectClassesCreator;
39  friend class DtForestCreator;
40 
41  typedef std::map<DtUniqueID, DtTreeRecord> TreeRecordMap;
42  typedef std::map<std::string, DtTreeModel*> TreeModelMap;
43 
45  virtual ~DtForestObject();
46 
50 
51 
54  void addTree(const DtTreeRecord& record);
55 
57  virtual void removeTree(DtUniqueID treeId) = 0;
58 
60  virtual void removeAllTrees() = 0;
61 
64  virtual void setTreeClippingPlane(float fFar) = 0;
65 
67  virtual void getTreeClippingPlane( float& fFar) = 0;
68 
71  virtual void setTreeLodDistances(float fNear, float fFar) = 0;
72 
75  virtual void getTreeLodDistances(float& fNear, float& fFar) = 0;
76 
78  virtual void setPerformanceProfile(int profile) = 0;
79 
81 
85 
86 
88  virtual void addUniqueTree(const DtTreeRecord& record) = 0;
89 
91  virtual DtTreeRecord* findTreeRecord(DtUniqueID id) = 0;
92 
94  virtual DtTreeModel* findTreeModel( const std::string& modelDef) = 0;
95 
97  virtual DtModelInstance* findModelInstance( const std::string& modelDef) = 0;
98 
100  virtual DtModelDefinition* findModelDefinition(const std::string& modelDef);
101 
103  virtual const TreeRecordMap& treeRecordMap() const;
104 
106 
108  virtual DtDe& de();
109 
110  protected:
111 
113  DtForestObject(DtDe& de, DtUniqueID id);
114 
116  virtual bool createTree(const DtTreeRecord& record) = 0;
117 
119  virtual void slot_treeModelInstanceToBeDestroyed(const std::string& modelDef) = 0;
120 
122  virtual void removeTreeModel( const std::string& modelDef) = 0;
123 
125  virtual void slot_treeModelInstanceCreated(const std::string& modelDef) = 0;
126 
128  virtual DtTreeModel* castUpdaterToTreeModel( DtAgentUpdateResolverInterface* updater );
129 
130  protected:
131 
135 
136  };
137 
141  {
142 
143  public:
144 
147  static DtForestCreator& instance(DtDe& de);
148 
150  static void registerInstance(DtDe& de, DtForestCreator* instance = 0);
151 
153  virtual DtForestObject* create(DtDe& de, DtUniqueID id);
154 
155  };
156 
157 }
158 
159 #endif
160 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)