VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiEntityVisualizer.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 
15 #include <vrvCore/DtUniqueID.h>
16 
19 
20 #include <matrix/vlTaitBryan.h>
21 #include <matrix/vlVector.h>
22 #include <vlpi/entityType.h>
23 
24 #include <vrvUtil/signalslib.h>
25 
26 #include <map>
27 #include <stdint.h> // for uint**_t
28 
29 #include <CigiShortArtPartCtrlV3.h>
30 
31 class CigiBaseRateCtrl;
32 class CigiShortCompCtrlV3_3;
33 
34 class CigiEntityCtrlV3_3;
35 class CigiEntityCtrlV4;
36 
37 class CigiBaseEntityCtrl;
38 class CigiBaseEntityPositionCtrl;
39 class CigiBaseAnimationCtrl;
40 class CigiAnimationCtrlV4;
41 
42 class CigiBaseArtPartCtrl;
43 class CigiBaseShortArtPartCtrl;
44 
45 class CigiBaseCompCtrl;
46 class CigiCompCtrlV3_3;
47 class CigiCompCtrlV4;
48 
49 namespace makCigiExt
50 {
51  class DtCigiDiGuyCtrl;
52  class DtCigiBaseDiGuyCtrlExt;
53  class DtCigiBaseDiGuyExecuteGesture;
54  class DtCigiBaseDiGuyEndGesture;
55 }
56 
57 namespace makVrv
58 {
59  class DtAgentManagerInterface;
60  class DtCigiBaseEntity;
61  class DtCigiConnection;
62  class DtCigiEntity;
63  class DtCigiAnimationEntity;
64  class DtCigiParticleSystemEntity;
65  class DtCigiWatercraftEntity;
66  class DtCigiCharacterEntity;
67 
72  {
73  public:
74 
76 
77  typedef std::map<int, DtCigiBaseEntity*> IdToEntityMap;
78 
80  virtual ~DtCigiEntityVisualizer();
81 
84  virtual DtUniqueID uniqueIdForCigiEntity(int cigiEntId) const;
85 
88  virtual const DtCigiBaseEntity* cigiEntity(int entityId) const;
89 
92  virtual DtCigiBaseEntity* cigiEntity(int entityId);
93 
96  virtual int findEntityWithUniqueId(DtUniqueID idToFind) const;
97 
99  virtual void restart();
100 
102  IdToEntityMap& entityList()
104  {
105  return myIdToEntityMap;
106  }
107 
108  const IdToEntityMap& entityList() const
109  {
110  return myIdToEntityMap;
111  }
113 
115  virtual void reset();
116  protected:
119  DtAgentManagerInterface& aSceneInterface);
120 
123  virtual void processEntityControl(CigiBaseEntityCtrl& packet);
124 
128  virtual void processRateControl( CigiBaseRateCtrl& packet);
129 
133  virtual void processVelocityControl( CigiBaseRateCtrl& packet );
134 
136  virtual void processArtPartControl( CigiBaseArtPartCtrl& packet);
137 
139  virtual void processShortArtPartControl( const CigiBaseShortArtPartCtrl& packet );
140 
143  virtual void slot_processComponentControl( CigiBaseCompCtrl& packet);
144 
147  virtual void slot_processShortComponentControl( CigiBaseCompCtrl& packet);
148 
150  virtual void processDiGuyControl(const makCigiExt::DtCigiDiGuyCtrl& packet);
151 
153  virtual void processDiGuyControlExt(const makCigiExt::DtCigiBaseDiGuyCtrlExt& packet);
154 
156  virtual void processDiGuyExecuteGesture(const makCigiExt::DtCigiBaseDiGuyExecuteGesture& packet);
157 
159  virtual void processDiGuyEndGesture(const makCigiExt::DtCigiBaseDiGuyEndGesture& packet);
160 
164  virtual void processEntityPositionControl(CigiBaseEntityPositionCtrl& packet);
165 
170  virtual void processAnimationControl(CigiBaseAnimationCtrl& packet);
171 
176  virtual void processEntityV4(const CigiEntityCtrlV4& packet);
177 
183  virtual void generateModelDefNameToCigiEntityTypeMap();
184 
186  virtual int lookupCigiEntityTypeFromModelDefinitionName(const std::string& modelDefName) const;
187 
190  virtual void processEntityV3(const CigiEntityCtrlV3_3& packet);
191 
196  virtual void setEntityControlTspi(
197  const CigiEntityCtrlV3_3& packet, DtCigiBaseEntity* entity);
198 
201  virtual void setEntityControlAnimationState(const CigiEntityCtrlV3_3& packet,
202  DtCigiBaseEntity* entity);
203 
205  virtual void setParticleSystemAnimationState( CigiAnimationCtrlV4 & packet,
206  DtCigiParticleSystemEntity* particleSystem );
207  virtual void setAnimationEntityAnimationState( CigiAnimationCtrlV4 & packet,
208  DtCigiAnimationEntity* animationEntity );
209  virtual void setWaterCraftEntityAnimationState( CigiAnimationCtrlV4 & packet,
210  DtCigiWatercraftEntity* watercraftEntity );
211  virtual void setEntityAnimationState( CigiAnimationCtrlV4 & packet,
212  DtCigiEntity* cigiEntity );
213 
215  virtual void performComponentControlV3( CigiCompCtrlV3_3& packet );
216 
219  virtual void performComponentControlV4( CigiCompCtrlV4& packet );
220 
221 
224  virtual DtCigiBaseEntity* createNewEntity(
225  int entityId, int entityType);
226 
230  virtual int findCigiEntityTypeFromExtendedType( const DtEntityType& extEntityType) const;
231 
233  virtual void removeEntity(int entityId);
234 
237  virtual void setArtPartWithDof(int partId, float val,
238  CigiBaseShortArtPartCtrl::DofSelectGrp selection,
239  DtCigiBaseEntity* entity);
240 
241 
244  virtual void resetSpatialAttributes();
245 
246  protected:
248  DtCigiEntityVisualizer& operator=(const DtCigiEntityVisualizer& orig);
249  protected:
250  std::map<int, DtCigiBaseEntity*> myIdToEntityMap;
251  std::map<std::string, int> myModelDefToCigiEntityTypeMap;
254 
256  };
257 
260  {
261  public:
264 
267 
269  static DtCigiEntityVisualizerCreator& instance( DtDe& de );
270 
272  static DtCigiEntityVisualizerCreator& instance( DtCigiConnection& con );
273 
275  virtual DtCigiEntityVisualizerCreator* clone();
276 
278  static void copyInstance(DtCigiConnection& con, DtDe& de);
279 
281  virtual DtCigiEntityVisualizer* create( DtCigiConnection& connection,
282  DtAgentManagerInterface& aSceneInterface ) const;
283  };
284 }
Creator class for the Entity Visualizer.
Definition: DtCigiEntityVisualizer.h:259
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
The base class for all execute gesture packets.
Definition: DtCigiBaseDiGuyExecuteGesture.h:30
This class is responsible for processing various CIGI messages that pertain to CIGI entities and sett...
Definition: DtCigiEntityVisualizer.h:71
The base class for all DiGuy Control (extended) packets.
Definition: DtCigiBaseDiGuyCtrlExt.h:30
This is the original DiGuy control packet for V3. It is maintained for backward compatibility, but is deprecated. New users should use DtCigiDiGuyCtrlExt for V3.x and DtCigiDiGuyCtrlExtV4 for V4.
Definition: DtCigiDiGuyCtrl.h:53
DtAgentManagerInterface & mySceneInterface
Definition: DtCigiEntityVisualizer.h:252
DtSignalConnectionManager myConnections
Definition: DtCigiEntityVisualizer.h:255
Contains DLL export macros.
A DtCigiWatercraftEntity is a CIGI entity that manages buoyancy and the the parenting of wake entitie...
Definition: DtCigiWaterCraftEntity.h:36
A DtCigiParticleSystemEntity is a CIGI entity that loads a particle system model. ...
Definition: DtCigiParticleSystemEntity.h:28
const IdToEntityMap & entityList() const
Get access to all the entities currently being visualized.
Definition: DtCigiEntityVisualizer.h:108
Contains makVrv::DtVirtualBaseClass class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:58
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
A DtCigiAnimationEntity is a CIGI entity that loads an animation model.
Definition: DtCigiAnimationEntity.h:22
std::map< int, DtCigiBaseEntity * > myIdToEntityMap
Definition: DtCigiEntityVisualizer.h:250
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
A DtCigiEntity is a base CIGI entity that loads an articulated model.
Definition: DtCigiEntity.h:32
This class provides an abstract base class for CIGI entities. These are created by the DtCigiEntityVi...
Definition: DtCigiBaseEntity.h:42
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
Contains makVrv::DtSharedSettingsManager class.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
std::map< std::string, int > myModelDefToCigiEntityTypeMap
Definition: DtCigiEntityVisualizer.h:251
The base end gesture class for all packets.
Definition: DtCigiBaseDiGuyEndGesture.h:30
DtCigiConnection & myConnection
Definition: DtCigiEntityVisualizer.h:253
std::map< int, DtCigiBaseEntity * > IdToEntityMap
Definition: DtCigiEntityVisualizer.h:77

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)