18 #include <matrix/geodeticCoord.h>
19 #include <matrix/vlTaitBryan.h>
21 #include <vlpi/entityType.h>
27 class DtAgentManagerInterface;
28 class DtCigiConnection;
30 class DtSceneObjectAgent;
31 class DtGroundClampingUpdaterAgent;
32 class DtDeadReckonUpdaterAgent;
33 class DtEmbarkationUpdaterAgent;
35 class DtDeadReckonUpdater;
62 virtual int cigiId()
const;
70 virtual void uninit();
76 virtual void restart();
82 virtual void restartRequest();
85 virtual int entityType()
const;
88 virtual bool extendedEntityTypeOn()
const;
91 virtual void setExtendedEntityTypeOn(
bool onOff);
94 virtual void setExtendedEntityType(DtEntityType& entityType);
97 virtual void setVisible(
bool yesNo);
100 virtual bool isVisible()
const;
103 virtual void setDeadReckoningOn(
bool onOff);
109 virtual bool isDeadReckoning()
const;
114 virtual void setPosition(
const DtGeodeticCoord& pos,
bool force=
false);
117 virtual const DtGeodeticCoord& position()
const;
124 virtual const DtGeodeticCoord& previousPosition()
const;
127 virtual const DtVector& localPosition()
const;
132 virtual void setOrientation(
const DtTaitBryan& orientation,
bool force=
false);
135 virtual const DtTaitBryan& orientation()
const;
138 virtual const DtTaitBryan& localOrientation()
const;
141 virtual const DtTaitBryan& geocentricOrientation()
const;
147 virtual void setLinearRate(
const DtVector& rate,
bool useWorldCoordinates,
bool force=
false);
150 virtual const DtVector& linearRate()
const;
156 virtual void setAngularRate(
const DtVector& rate,
bool useWorldCoordinates,
bool force=
false);
159 virtual const DtVector& angularRate()
const;
168 virtual void setRelativePosition(
const DtVector& pos);
172 virtual void setRelativeOrientation(
const DtTaitBryan& orient);
175 virtual bool isEmbarked()
const;
178 virtual int embarkedParentId()
const;
181 virtual const DtVector& relativePosition()
const;
184 virtual const DtTaitBryan& relativeOrientation()
const;
191 virtual void slot_deadReckoningAllowed(
bool allowed);
194 virtual void setAlpha(
int alpha);
198 virtual int alpha()
const;
201 virtual void setInheritAlpha(
bool inherit);
204 virtual bool isInheritingAlpha()
const;
207 virtual void slot_alphaChanged(
int alpha,
DtUniqueID id);
212 virtual void slot_entityToBeDeleted(
int cigiEntityId);
221 virtual void setArtPartTranslation(
int partId,
float xOffset,
float yOffset,
222 float zOffset,
bool xEnable,
bool yEnable,
bool zEnable);
226 virtual bool getArtPartTranslation(
int partId,
DtVector& translation );
229 virtual void setArtPartOrientation(
int partId,
float yaw,
float pitch,
float roll,
230 bool yawEnable,
bool pitchEnable,
bool rollEnable);
234 virtual bool getArtPartOrientation(
int partId, DtTaitBryan& orientation );
237 virtual void setArtPartLinearRate(
int partId,
float xRate,
float yRate,
242 virtual bool getArtPartLinearRate(
int partId,
DtVector& rate );
246 virtual bool getArtPartTranslationAndRate(
int partId,
DtVector& translation,
DtVector& rate );
249 virtual void setArtPartAngularRate(
int partId,
float yawRate,
float pitchRate,
254 virtual bool getArtPartAngularRate(
int partId,
DtVector& rate );
258 virtual bool getArtPartOrientationAndRate(
int partId, DtTaitBryan& orientation,
DtVector& rate );
261 virtual void setArtPartEnable(
int partId,
bool trueFalse);
263 virtual DtSceneObjectAgent* findSceneObjectAgent();
278 virtual void addCollisionSegmentID(
unsigned int segmentId );
281 virtual void removeCollisionSegmentID(
unsigned int segmentId );
285 virtual void startDeadReckoning();
288 virtual void endDeadReckoning();
291 virtual void startEmbarked();
294 virtual void endEmbarked();
298 virtual void startGroundClamping();
301 virtual void buildGroundClampingUpdater();
304 virtual void endGroundClamping();
308 virtual bool isGroundClamping()
const;
312 virtual void getExtrapolatedValuesAndRestart();
320 virtual void delayedStartEmbarked();
324 virtual void queryExtrapolatedPositionAndOrientation(
DtUniqueID drAgentId,
bool relative );
330 virtual void returnExtrapolatedPositionAndOrientation(
const DtVector& resultPos,
331 const DtTaitBryan& resultOri,
bool relative,
bool invokeRestart );
429 int entityType)
const = 0;
433 template <
typename CigiObject>
456 int entityType )
const
458 return new CigiObject (connection, sceneInterface, entityId,
DT_DLL_EXAMPLESCENEROOTPLUGIN void init(DtDe &anIG)
std::map< int, DtVector > myArtPartAngularRate
Definition: DtCigiBaseEntity.h:396
DtVector myLastLocalPosition
Definition: DtCigiBaseEntity.h:351
std::map< int, DtTaitBryan > myLastArtPartOrientation
Definition: DtCigiBaseEntity.h:394
bool myDeadReckoningOn
Definition: DtCigiBaseEntity.h:346
DtGeodeticCoord myLastPosition
Definition: DtCigiBaseEntity.h:350
std::map< int, DtVector > myArtPartLinearRate
Definition: DtCigiBaseEntity.h:397
DtVector myLastRelativePosition
Definition: DtCigiBaseEntity.h:357
DtDeadReckonUpdater is a scene object updater that is given kinematic updates and updates a scene obj...
Definition: DtDeadReckonUpdater.h:29
bool myVisiblity
Definition: DtCigiBaseEntity.h:383
std::string myEntityModelDefName
Definition: DtCigiBaseEntity.h:340
virtual DtCigiBaseEntity * create(DtCigiConnection &connection, DtAgentManagerInterface &sceneInterface, int entityId, int entityType) const
Create function.
Definition: DtCigiBaseEntity.h:454
virtual DtCigiObjectCreator * clone() const
Every derived class must override this method.
Definition: DtCigiBaseEntity.h:448
DtVector myLastVelocity
Definition: DtCigiBaseEntity.h:360
bool myLastAngularVelocityWorldCoordinates
Definition: DtCigiBaseEntity.h:364
bool myExtendedEntityTypeOn
Definition: DtCigiBaseEntity.h:373
virtual ~DtCigiObjectCreator()
DTOR.
Definition: DtCigiBaseEntity.h:419
std::list< unsigned int > myCollisionSegmentIdList
List for Collision Detection Segment IDs from collision segment detection definition packets...
Definition: DtCigiBaseEntity.h:401
bool myOrientationSet
Definition: DtCigiBaseEntity.h:389
Contains DLL export macros.
DtAgentManagerInterface & mySceneInterface
Definition: DtCigiBaseEntity.h:367
int myEmbarkedParentID
Definition: DtCigiBaseEntity.h:379
bool myEmbarked
Definition: DtCigiBaseEntity.h:347
int myAlpha
Definition: DtCigiBaseEntity.h:382
std::map< int, DtVector > myLastArtPartTranslation
Definition: DtCigiBaseEntity.h:395
bool myPositionSet
Definition: DtCigiBaseEntity.h:388
DtCigiObjectCreatorTemplate()
CTOR.
Definition: DtCigiBaseEntity.h:439
DtSceneObjectAgent * mySceneObject
Definition: DtCigiBaseEntity.h:338
AnimationStateGroup
AnimationStateGroup in Cigi Order.
Definition: DtCigiBaseEntity.h:269
boost::signalslib::signal< void(int, DtUniqueID)> signal_alphaChanged
Emitted when this entity's alpha has changed.
Definition: DtCigiBaseEntity.h:266
DtDeadReckonUpdaterAgent * myDeadReckonUpdaterAgent
Definition: DtCigiBaseEntity.h:342
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtTaitBryan myLastLocalOrientation
Definition: DtCigiBaseEntity.h:354
DtCigiBaseEntity * myParent
Definition: DtCigiBaseEntity.h:376
DtCigiConnection & myConnection
Definition: DtCigiBaseEntity.h:366
Abstract DtCigiObject creator.
Definition: DtCigiBaseEntity.h:409
DtModelAgent * myModel
Definition: DtCigiBaseEntity.h:339
This class is responsible for the actual processing of CIGI data.
Definition: DtCigiConnection.h:57
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Contains makVrv::DtGroundClampingUpdater class.
DtSignalConnectionManager mySignalConnections
Definition: DtCigiBaseEntity.h:403
int myEntityType
Definition: DtCigiBaseEntity.h:371
DtVector myLastAngularVelocity
Definition: DtCigiBaseEntity.h:363
DtTaitBryan myLastRelativeOrientation
Definition: DtCigiBaseEntity.h:358
DtTaitBryan myLastGeocentricOrientation
Definition: DtCigiBaseEntity.h:355
Base class to provide boost signal/slot management.
bool myInheritAlpha
Definition: DtCigiBaseEntity.h:381
int myEntityId
Definition: DtCigiBaseEntity.h:370
Contains makVrv::DtUniqueID type.
DtEntityType * myExtendedEntityType
Definition: DtCigiBaseEntity.h:374
This class provides an abstract base class for CIGI entities.
Definition: DtCigiBaseEntity.h:42
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
virtual ~DtCigiObjectCreatorTemplate()
DTOR.
Definition: DtCigiBaseEntity.h:444
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
DtTaitBryan myLastOrientation
Definition: DtCigiBaseEntity.h:353
DtGroundClampingUpdater::GroundClampingMode myGroundClampingType
Definition: DtCigiBaseEntity.h:348
Definition: DtCigiBaseEntity.h:434
DtEmbarkationUpdaterAgent * myEmbarkationUpdaterAgent
Definition: DtCigiBaseEntity.h:344
DtCigiObjectCreator()
CTOR.
Definition: DtCigiBaseEntity.h:414
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
Definition: DtCigiBaseEntity.h:343
bool myLastVelocityWorldCoordinates
Definition: DtCigiBaseEntity.h:361
GroundClampingMode
Ground Clamping Modes.
Definition: DtGroundClampingUpdater.h:31