VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDynamicTerrainElementProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
13 
14 #include <vrvCore/DtUniqueID.h>
15 
17 
18 #include <boost/unordered_map.hpp>
19 #include <vrvUtil/signalslib.h>
20 
21 #if 0
22 // temporary definitions to make intellisense work
23 //#define DT_PROTOCOL_NAMESPACE vrvDIS
24 //#define DtDIS 1
25 #define DT_PROTOCOL_NAMESPACE vrvHla13
26 #define DtHLA 1
27 #define DL_DLL_IGCONVRLINK __declspec ( dllexport )
28 #endif
29 
30 #include <vl/globalObjectDesignator.h>
31 
32 #ifndef DT_PROTOCOL_NAMESPACE
33 #error Namespace Protocol Macro DT_PROTOCOL_NAMESPACE not defined.
34 #endif
35 
36 namespace makVrv
37 {
38  namespace DT_PROTOCOL_NAMESPACE
39  {
40  class DtDynamicTerrainElement;
41  class DtDynamicTerrainExistenceListener;
42  class DtVrlinkConnection;
43  class DtDynamicTerrainStateListener;
44 
53  {
54  private:
55  // No default constructor
57 
58  //Not copyable
60 
61  //Not assignable
63 
64  public:
67 
70  static void registerInstance(DtVrlinkConnection& conn,
72 
74  static DtDynamicTerrainElementProcessor* findInstance(DtVrlinkConnection& conn);
75 
78 
80  DtDynamicTerrainElement* findElement( const DtElementID& elementId );
81 
83  DtDynamicTerrainElement* findElement( const DtGlobalObjectDesignator& id );
84 
85  public:
87  boost::signalslib::signal<void (DtDynamicTerrainElement*)> signal_elementCreated;
88 
90  boost::signalslib::signal<void (DtDynamicTerrainElement*)> signal_elementAboutToBeDestroyed;
91 
92  protected:
93 
95  virtual void onDynamicTerrainElementDiscovered(DtDynamicTerrainStateListener& listener);
96 
98  virtual void onDynamicTerrainElementToBeDestroyed(DtDynamicTerrainStateListener& listener);
99 
102  virtual void createElement(DtDynamicTerrainStateListener&);
103 
104  protected:
105 
106  typedef boost::unordered_map<DtElementID, DtDynamicTerrainElement*>
108  typedef boost::unordered_map<std::string, DtDynamicTerrainElement*>
110 
113 
115  };
116  }
117 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtVrlinkConnection & myConnection
Definition: DtDynamicTerrainElementProcessor.h:114
The DtDynamicTerrainElementProcessor will create and connect to the DtDynamicTerrainExistenceListener...
Definition: DtDynamicTerrainElementProcessor.h:52
boost::unordered_map< DtElementID, DtDynamicTerrainElement * > DynamicTerrainElementMap
Definition: DtDynamicTerrainElementProcessor.h:107
boost::unordered_map< std::string, DtDynamicTerrainElement * > GlobalIdToDynamicTerrainElementMap
Definition: DtDynamicTerrainElementProcessor.h:109
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
DynamicTerrainElementMap myElements
Definition: DtDynamicTerrainElementProcessor.h:111
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Contains makVrv::DtVirtualBaseClass class.
boost::signalslib::signal< void(DtDynamicTerrainElement *)> signal_elementCreated
Signal raised when a DtDynamicTerrainElement is created.
Definition: DtDynamicTerrainElementProcessor.h:87
A single dynamic terrain element. For each VR-Link Dynamic Terrain Reflected Object, a DtDynamicTerrainElement is created. It has a reference to the state listener which will raise signals when changes to dynamic terrain reflected object occur. The element creates and manages a distributed DtDynamicTerrainObject, through which those changes are marshalled to the rendering engine(s).
Definition: DtDynamicTerrainElement.h:56
boost::signalslib::signal< void(DtDynamicTerrainElement *)> signal_elementAboutToBeDestroyed
Signal raised when a DtDynamicTerrainElement is about to be destroyed.
Definition: DtDynamicTerrainElementProcessor.h:90
GlobalIdToDynamicTerrainElementMap myElementsByGlobalId
Definition: DtDynamicTerrainElementProcessor.h:112
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
DynamicTerrain state listener.
Definition: DtDynamicTerrainStateListener.h:49

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)