VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dynamicTerrainManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 206 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
62 
63 #pragma once
64 
68 #include <tbb/spin_mutex.h>
69 #include <map>
70 #include <boost/signals2.hpp>
71 
73 class DtVrfCallbackQueue;
74 
75 namespace makVrf
76 {
77  class DtFrameStateInterface;
78  class DtStateComponent;
79  class DtDynamicTerrainStateComponent;
80 }
81 
82 typedef std::pair<DtEntityIdentifier, unsigned> DtDynamicTerrainItemId;
83 typedef std::map<DtString, DtString> DtDynamicTerrainDataMap;
85 {
89  unsigned priority;
90  unsigned eventNumber;
91 };
92 typedef std::map<DtDynamicTerrainItemId, DtDynamicTerrainItem> DtDynamicTerrainItemMap;
93 
98 {
99 private:
101 
103  const DtDynamicTerrainManager & operator=(const DtDynamicTerrainManager& orig);
106 
107 public:
108 
111 
113  virtual ~DtDynamicTerrainManager();
114 
116  virtual bool init();
117 
119  virtual const DtDynamicTerrainItemMap& dynamicTerrainChanges() const;
120 
122  virtual void processTerrainUnloaded();
123 
124  virtual void tick(DtVrfCallbackQueue*);
125 
126 protected:
127 
129 
130  static void checkIfTerrainLoadedCallback(void* usr);
131  virtual void checkIfTerrainLoaded();
133 
135  virtual void processTerrainLoaded();
136 
140  virtual void updateDynamicTerrainItem(const DtTerrainGeometryAndData& newData, DtDynamicTerrainItem& terrainItem,
141  bool forceUpdate);
142 
144 
145  virtual void processDynamicTerrainObjectAdded(const makVrf::DtFrameStateInterface* object);
146  virtual void processDynamicTerrainAdded(makVrf::DtStateComponent* object);
148 
150 
151  virtual void processDynamicTerrainObjectUpdated(const makVrf::DtFrameStateInterface* object);
153 
155 
156  virtual void processDynamicTerrainObjectRemoved(const makVrf::DtFrameStateInterface* object);
157  virtual void processDynamicTerrainRemoved(makVrf::DtStateComponent* object);
159 
160  virtual void dynamicTerrainObjectRemoved(const makVrf::DtDynamicTerrainStateComponent* stateRep);
161  virtual void dynamicTerrainObjectUpdated(const makVrf::DtDynamicTerrainStateComponent* stateRep, const DtTerrainGeometryAndData&, unsigned id);
162 
163 protected:
165  tbb::spin_mutex myMutex;
168 
169  boost::signals2::scoped_connection mySignalWhenStateComponentAdded;
170  boost::signals2::scoped_connection mySignalWhenStateComponentRemoved;
171 
173 
174  std::map<const makVrf::DtDynamicTerrainStateComponent*, std::map<unsigned, DtTerrainGeometryAndData> > myDynamicTerrainStatesToUpdate;
175 };
boost::signals2::scoped_connection mySignalWhenStateComponentRemoved
Definition: dynamicTerrainManager.h:170
unsigned eventNumber
Definition: dynamicTerrainManager.h:90
DtDynamicTerrainDataMap data
Definition: dynamicTerrainManager.h:87
std::pair< DtEntityIdentifier, unsigned > DtDynamicTerrainItemId
Definition: dynamicTerrainManager.h:82
Definition: terrainGeometryAndData.h:24
bool myNeedPostTickEntryAdded
Definition: dynamicTerrainManager.h:172
tbb::spin_mutex myMutex
Definition: dynamicTerrainManager.h:165
DtSimulationServices * mySimulationServices
Definition: dynamicTerrainManager.h:164
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:29
std::map< DtString, DtString > DtDynamicTerrainDataMap
Definition: dynamicTerrainManager.h:83
std::map< const makVrf::DtDynamicTerrainStateComponent *, std::map< unsigned, DtTerrainGeometryAndData > > myDynamicTerrainStatesToUpdate
Definition: dynamicTerrainManager.h:174
DtDynamicTerrainRequestHandle requestHandle
Definition: dynamicTerrainManager.h:88
unsigned priority
Definition: dynamicTerrainManager.h:89
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtTerrainGeometry * geometry
Definition: dynamicTerrainManager.h:86
Handles the any dynamic changes to the terrain. There is only one environmental state for the whole s...
Definition: dynamicTerrainManager.h:97
DtDynamicTerrainItemMap myDynamicTerrainChanges
Definition: dynamicTerrainManager.h:167
boost::signals2::scoped_connection mySignalWhenStateComponentAdded
Definition: dynamicTerrainManager.h:169
Definition: stateComponent.h:52
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::map< DtDynamicTerrainItemId, DtDynamicTerrainItem > DtDynamicTerrainItemMap
Definition: dynamicTerrainManager.h:92
Resource handle for a dynamic terrain change request which has been added to the system. Returned from DtTerrainImplementation::addDynamicTerrainChangeRequest(). Allows caller to manage request.
Definition: terrainImplementation.h:145
Definition: dynamicTerrainManager.h:84
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
Definition: terrainGeometry.h:33
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: dynamicTerrainStateComponent.h:45

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)