VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDynamicTerrainElement.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/DtElement.h>
15 #include <vrvCore/DtElementEntry.h>
16 
18 #include <vrvUtil/DtUnicode.h>
19 
20 #include <vector>
21 
22 #include <boost/unordered_map.hpp>
23 
25 class DtTerrainGeometry;
26 class DtKeyValuePairList;
27 
28 #if 0
29 // temporary definitions to make intellisense work
30 #define DT_PROTOCOL_NAMESPACE vrvDIS
31 #define DtDIS 1
32 //#define DT_PROTOCOL_NAMESPACE vrvHla13
33 //#define DtHLA 1
34 #define DL_DLL_IGCONVRLINK __declspec ( dllexport )
35 #endif
36 
37 #ifndef DT_PROTOCOL_NAMESPACE
38 #error Namespace Protocol Macro DT_PROTOCOL_NAMESPACE not defined.
39 #endif
40 
41 namespace makVrv
42 {
43  class DtDynamicTerrainObjectAgent;
44 
45  namespace DT_PROTOCOL_NAMESPACE
46  {
47  class DtDynamicTerrainStateListener;
48  class DtVrlinkConnection;
49 
57  {
58  public:
59  // No default CTOR
60  DtDynamicTerrainElement() = delete;
61 
62  //Not copyable
64 
65  //Not assignable
66  DtDynamicTerrainElement& operator=(const DtDynamicTerrainElement& copy) = delete;
67 
70  DtStateListener& listener );
71 
73  virtual ~DtDynamicTerrainElement();
74 
75  public:
78  virtual void visualize(const DtSharedModelSetSettings::ModelSetVisualizedMap& sets);
79 
82  {
83  return myListener;
84  }
85 
87  inline const DtElementEntry::ElementType elementType() const override
88  {
89  return theElementType();
90  }
91 
93  {
95  }
96 
99  virtual void slot_geometryAndDataAdded( int index, const DtTerrainGeometryAndData& geomAndData );
100 
103  virtual void slot_geometryChanged( int index, double order, const DtTerrainGeometry& geometry );
104 
107  virtual void slot_dataChanged ( int index, double order, const DtKeyValuePairList& data );
108 
111  virtual void slot_dataRemoved( int index);
112 
114  virtual void setModelSetEnabled( int modelSet, bool enabled );
115 
116  protected:
118  virtual void slot_coordinateSystemChanged();
119 
120  protected:
124  DtDynamicTerrainObjectAgent* myDynamicTerrainObjectAgent;
125 
126  typedef boost::unordered_map<int, DtTerrainGeometryAndData> DynamicTerrainEntryMap;
128  };
129 
131  }
132 }
133 
const DtElementEntry::ElementType elementType() const override
return the element type
Definition: DtDynamicTerrainElement.h:87
Definition: terrainGeometryAndData.h:24
DtDynamicTerrainStateListener & listener()
Get the state listener for the dynamic terrain object this element is managing.
Definition: DtDynamicTerrainElement.h:81
Definition: DtElementEntry.h:44
Definition: keyValuePairList.h:18
DtVrlinkConnection & myVrlinkConnection
Definition: DtDynamicTerrainElement.h:121
DtDynamicTerrainStateListener & myListener
Definition: DtDynamicTerrainElement.h:122
static const DtElementEntry::ElementType theElementType()
Definition: DtDynamicTerrainElement.h:92
Definition: DtElement.h:268
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:41
DtDynamicTerrainObjectAgent * myDynamicTerrainObjectAgent
Definition: DtDynamicTerrainElement.h:124
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:39
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtElement class.
ElementType
Definition: DtElementEntry.h:26
boost::unordered_map< int, DtTerrainGeometryAndData > DynamicTerrainEntryMap
Definition: DtDynamicTerrainElement.h:126
Base class to provide boost signal/slot management.
DynamicTerrainEntryMap myDynamicTerrainEntryMap
Definition: DtDynamicTerrainElement.h:127
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
DtSignalConnectionManager mySignalConnections
Definition: DtDynamicTerrainElement.h:123
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:25
Contains DLL export macros.
DynamicTerrain state listener.
Definition: DtDynamicTerrainStateListener.h:49
Contains makVrv::DtElementEntry class.
Definition: terrainGeometry.h:33
std::map< int, bool > ModelSetVisualizedMap
Definition: DtSharedModelSetSettings.h:27

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)