VR-Forces 5.0.2 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 
10 
11 #pragma once
12 
16 #include <tbb/spin_mutex.h>
17 #include <map>
18 #include <boost/signals2.hpp>
19 
21 class DtVrfCallbackQueue;
22 
23 namespace makVrf
24 {
25  class DtFrameStateInterface;
26  class DtStateComponent;
27  class DtDynamicTerrainStateComponent;
28 }
29 
30 typedef std::pair<DtEntityIdentifier, unsigned> DtDynamicTerrainItemId;
31 typedef std::map<DtString, DtString> DtDynamicTerrainDataMap;
33 {
37  unsigned priority;
38  unsigned eventNumber;
39 };
40 typedef std::map<DtDynamicTerrainItemId, DtDynamicTerrainItem> DtDynamicTerrainItemMap;
41 
46 {
47 private:
49 
51  const DtDynamicTerrainManager & operator=(const DtDynamicTerrainManager& orig);
54 
55 public:
56 
59 
61  virtual ~DtDynamicTerrainManager();
62 
64  virtual bool init();
65 
67  virtual const DtDynamicTerrainItemMap& dynamicTerrainChanges() const;
68 
70  virtual void processTerrainUnloaded();
71 
72  virtual void tick(DtVrfCallbackQueue*);
73 
74 protected:
75 
77 
78  static void checkIfTerrainLoadedCallback(void* usr);
79  virtual void checkIfTerrainLoaded();
81 
83  virtual void processTerrainLoaded();
84 
88  virtual void updateDynamicTerrainItem(const DtTerrainGeometryAndData& newData, DtDynamicTerrainItem& terrainItem,
89  bool forceUpdate);
90 
92 
93  virtual void processDynamicTerrainObjectAdded(const makVrf::DtFrameStateInterface* object);
94  virtual void processDynamicTerrainAdded(makVrf::DtStateComponent* object);
96 
98 
99  virtual void processDynamicTerrainObjectUpdated(const makVrf::DtFrameStateInterface* object);
101 
103 
104  virtual void processDynamicTerrainObjectRemoved(const makVrf::DtFrameStateInterface* object);
105  virtual void processDynamicTerrainRemoved(makVrf::DtStateComponent* object);
107 
108  virtual void dynamicTerrainObjectRemoved(const makVrf::DtDynamicTerrainStateComponent* stateRep);
109  virtual void dynamicTerrainObjectUpdated(const makVrf::DtDynamicTerrainStateComponent* stateRep, const DtTerrainGeometryAndData&, unsigned id);
110 
111 protected:
113  tbb::spin_mutex myMutex;
115 
116  boost::signals2::scoped_connection mySignalWhenStateComponentAdded;
117  boost::signals2::scoped_connection mySignalWhenStateComponentRemoved;
118 
120 
121  std::map<const makVrf::DtDynamicTerrainStateComponent*, std::map<unsigned, DtTerrainGeometryAndData> > myDynamicTerrainStatesToUpdate;
122 };
boost::signals2::scoped_connection mySignalWhenStateComponentRemoved
Definition: dynamicTerrainManager.h:117
unsigned eventNumber
Definition: dynamicTerrainManager.h:38
DtDynamicTerrainDataMap data
Definition: dynamicTerrainManager.h:35
std::pair< DtEntityIdentifier, unsigned > DtDynamicTerrainItemId
Definition: dynamicTerrainManager.h:30
Definition: terrainGeometryAndData.h:24
bool myNeedPostTickEntryAdded
Definition: dynamicTerrainManager.h:119
tbb::spin_mutex myMutex
Definition: dynamicTerrainManager.h:113
DtSimulationServices * mySimulationServices
Definition: dynamicTerrainManager.h:112
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
std::map< DtString, DtString > DtDynamicTerrainDataMap
Definition: dynamicTerrainManager.h:31
std::map< const makVrf::DtDynamicTerrainStateComponent *, std::map< unsigned, DtTerrainGeometryAndData > > myDynamicTerrainStatesToUpdate
Definition: dynamicTerrainManager.h:121
DtDynamicTerrainRequestHandle requestHandle
Definition: dynamicTerrainManager.h:36
unsigned priority
Definition: dynamicTerrainManager.h:37
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtTerrainGeometry * geometry
Definition: dynamicTerrainManager.h:34
Handles the any dynamic changes to the terrain. There is only one environmental state for the whole s...
Definition: dynamicTerrainManager.h:45
DtDynamicTerrainItemMap myDynamicTerrainChanges
Definition: dynamicTerrainManager.h:114
boost::signals2::scoped_connection mySignalWhenStateComponentAdded
Definition: dynamicTerrainManager.h:116
Definition: stateComponent.h:51
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::map< DtDynamicTerrainItemId, DtDynamicTerrainItem > DtDynamicTerrainItemMap
Definition: dynamicTerrainManager.h:40
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:71
Definition: dynamicTerrainManager.h:32
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:282
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 Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)