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) 2023 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 
23 #include <vrvUtil/signalslib.h>
24 
25 #include <map>
26 #include <stdint.h> // for uint**_t
27 
28 #include <CigiShortArtPartCtrlV3.h>
29 
30 class CigiBaseRateCtrl;
31 class CigiShortCompCtrlV3_3;
32 
33 class CigiEntityCtrlV3_3;
34 class CigiEntityCtrlV4;
35 
36 class CigiBaseEntityCtrl;
37 class CigiBaseEntityPositionCtrl;
38 class CigiBaseAnimationCtrl;
39 class CigiAnimationCtrlV4;
40 
41 class CigiBaseArtPartCtrl;
42 class CigiBaseShortArtPartCtrl;
43 
44 class CigiBaseCompCtrl;
45 class CigiCompCtrlV3_3;
46 class CigiCompCtrlV4;
47 
48 namespace makCigiExt
49 {
50  class DtCigiDiGuyCtrl;
51  class DtCigiBaseDiGuyCtrlExt;
52  class DtCigiBaseDiGuyExecuteGesture;
53  class DtCigiBaseDiGuyEndGesture;
54 }
55 
56 namespace makVrv
57 {
58  class DtAgentManagerInterface;
59  class DtCigiBaseEntity;
60  class DtCigiConnection;
61  class DtCigiEntity;
62  class DtCigiAnimationEntity;
63  class DtCigiParticleSystemEntity;
64  class DtCigiWatercraftEntity;
65  class DtCigiCharacterEntity;
66 
71  {
72  public:
73 
75 
76  typedef std::map<int, DtCigiBaseEntity*> IdToEntityMap;
77 
79  virtual ~DtCigiEntityVisualizer();
80 
83  virtual DtUniqueID uniqueIdForCigiEntity(int cigiEntId) const;
84 
87  virtual const DtCigiBaseEntity* cigiEntity(int entityId) const;
88 
91  virtual DtCigiBaseEntity* cigiEntity(int entityId);
92 
95  virtual int findEntityWithUniqueId(DtUniqueID idToFind) const;
96 
97  virtual void restart();
98 
100  IdToEntityMap& entityList()
102  {
103  return myIdToEntityMap;
104  }
105 
106  const IdToEntityMap& entityList() const
107  {
108  return myIdToEntityMap;
109  }
111 
112  protected:
115  DtAgentManagerInterface& aSceneInterface);
116 
119  virtual void processEntityControl(CigiBaseEntityCtrl& packet);
120 
124  virtual void processRateControl( CigiBaseRateCtrl& packet);
125 
129  virtual void processVelocityControl( CigiBaseRateCtrl& packet );
130 
132  virtual void processArtPartControl( CigiBaseArtPartCtrl& packet);
133 
135  virtual void processShortArtPartControl( const CigiBaseShortArtPartCtrl& packet );
136 
139  virtual void slot_processComponentControl( CigiBaseCompCtrl& packet);
140 
143  virtual void slot_processShortComponentControl( CigiBaseCompCtrl& packet);
144 
146  virtual void processDiGuyControl(const makCigiExt::DtCigiDiGuyCtrl& packet);
147 
149  virtual void processDiGuyControlExt(const makCigiExt::DtCigiBaseDiGuyCtrlExt& packet);
150 
152  virtual void processDiGuyExecuteGesture(const makCigiExt::DtCigiBaseDiGuyExecuteGesture& packet);
153 
155  virtual void processDiGuyEndGesture(const makCigiExt::DtCigiBaseDiGuyEndGesture& packet);
156 
160  virtual void processEntityPositionControl(CigiBaseEntityPositionCtrl& packet);
161 
166  virtual void processAnimationControl(CigiBaseAnimationCtrl& packet);
167 
172  virtual void processEntityV4(const CigiEntityCtrlV4& packet);
173 
176  virtual void processEntityV3(const CigiEntityCtrlV3_3& packet);
177 
182  virtual void setEntityControlTspi(
183  const CigiEntityCtrlV3_3& packet, DtCigiBaseEntity* entity);
184 
187  virtual void setEntityControlAnimationState(const CigiEntityCtrlV3_3& packet,
188  DtCigiBaseEntity* entity);
189 
191  virtual void setParticleSystemAnimationState( CigiAnimationCtrlV4 & packet,
192  DtCigiParticleSystemEntity* particleSystem );
193  virtual void setAnimationEntityAnimationState( CigiAnimationCtrlV4 & packet,
194  DtCigiAnimationEntity* animationEntity );
195  virtual void setWaterCraftEntityAnimationState( CigiAnimationCtrlV4 & packet,
196  DtCigiWatercraftEntity* watercraftEntity );
197  virtual void setEntityAnimationState( CigiAnimationCtrlV4 & packet,
198  DtCigiEntity* cigiEntity );
199 
201  virtual void performComponentControlV3( CigiCompCtrlV3_3& packet );
202 
205  virtual void performComponentControlV4( CigiCompCtrlV4& packet );
206 
207 
208 
211  virtual DtCigiBaseEntity* createNewEntity(
212  int entityId, int entityType);
213 
215  virtual void removeEntity(int entityId);
216 
219  virtual void setArtPartWithDof(int partId, float val,
220  CigiBaseShortArtPartCtrl::DofSelectGrp selection,
221  DtCigiBaseEntity* entity);
222 
223 
226  virtual void resetSpatialAttributes();
227 
228  protected:
230  DtCigiEntityVisualizer& operator=(const DtCigiEntityVisualizer& orig);
231  protected:
232  std::map<int, DtCigiBaseEntity*> myIdToEntityMap;
235 
237  };
238 
241  {
242  public:
245 
248 
250  static DtCigiEntityVisualizerCreator& instance( DtDe& de );
251 
253  static DtCigiEntityVisualizerCreator& instance( DtCigiConnection& con );
254 
256  virtual DtCigiEntityVisualizerCreator* clone();
257 
259  static void copyInstance(DtCigiConnection& con, DtDe& de);
260 
262  virtual DtCigiEntityVisualizer* create( DtCigiConnection& connection,
263  DtAgentManagerInterface& aSceneInterface ) const;
264  };
265 }
Creator class for the Entity Visualizer.
Definition: DtCigiEntityVisualizer.h:240
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:70
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:233
DtSignalConnectionManager myConnections
Definition: DtCigiEntityVisualizer.h:236
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:106
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:57
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:232
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:72
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
The base end gesture class for all packets.
Definition: DtCigiBaseDiGuyEndGesture.h:30
DtCigiConnection & myConnection
Definition: DtCigiEntityVisualizer.h:234
std::map< int, DtCigiBaseEntity * > IdToEntityMap
Definition: DtCigiEntityVisualizer.h:76

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)