15 #include <vlutil/vlString.h>
16 #include <vlpi/disEnums.h>
18 #include <vlutil/vlString.h>
19 #include <vl/hostStructs.h>
30 #include <tbb/spin_rw_mutex.h>
51 const DtString& rwName = DtString::nullString(),
56 const DtString& rwName = DtString::nullString(),
67 const DtString& rwName = DtString::nullString(),
74 virtual const int objectStateRepositorySubType()
const;
79 virtual void updatePositionFromModelVertices();
85 virtual bool createKinematicState();
89 virtual bool createObjectGeometry();
93 virtual bool createAttachments();
102 virtual bool isEmbarkedOn(
const DtUUID& parent)
const;
106 virtual void attachToParent(
const DtUUID& parent);
115 virtual void detachFromParent();
117 virtual const DtUUID& attachedToRepository()
const;
127 virtual void setOwnedByHostObject(
bool);
128 virtual bool ownedByHostObject()
const;
130 virtual void ancestorObjectChanged();
146 virtual void invokeRepositoryAboutToBeDeletedCallbacks();
151 static void completeAttachmentCallback(
const DtVrfObject * simObject,
void * usr);
152 virtual bool processCompleteAttachment(
const DtVrfObject*);
153 static void objectAboutToBeRemovedCallback(
const DtVrfObject * simObject,
void * usr);
154 virtual void processObjectAboutToBeRemovedCallback(
const DtVrfObject * simObject);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
void setWorldOrientation(const DtTaitBryan &angles)
**virtual void setObjectType(const DtObjectType &)
virtual const DtLocalVertexList & localVertices() const
DtAttachmentManager * myAttachments
Definition: simObjectStateRepository.h:307
void setWorldAcceleration(const DtVector &acc)
virtual void postGetSelf()
Hook function called immediately following getSelf().
Definition: simObjectStateRepository.h:140
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
class DtKinematicStateCS: DtKinematicStateCS contains the current kinematic state of an object in one...
Definition: kinematicStateCS.h:42
DtVrfObject * mySimObject
Definition: simObjectStateRepository.h:299
class DtRwObjectType:
Definition: rwObjectType.h:18
const Coordinate_System * coordinateSystem() const
virtual void setWorldVertices(const DtVertexList &vertices, DtVector &newGeometricCenter)
virtual const DtLocalVectorIterator & localVertexIterator() const
File: lclVecIter.h.
Definition: localVectorIterator.h:25
virtual const DtLocalVertexList & relativeVertices() const
virtual void removeVertex(int iIndex)
These routines simply call down to the kinematic state to get/set the results.
This class is a DtSimKinematicState with the addition of another CS for local database coordinates...
Definition: vrfKinematicState.h:22
DtArticulatedPartManager myArticulatedParts
Definition: simObjectStateRepository.h:308
virtual DtSimKinematicState * kinematicState()
Definition: readerWriter.h:85
*virtual const DtObjectType & objectType() const
virtual void setBodyPosition(const DtVector &pos)
Formerly setMeInParent.
DtSimObjectStateRepository * myAttachedToRepository
Definition: simObjectStateRepository.h:310
const double lastPositionSetTime() const
Indicates the last time the position was set, so that a precise position at the current time may be c...
The DtSimObjectStateRepository is an abstract base class (ABC) for all state repositories.
Definition: simObjectStateRepository.h:46
Definition: readerWriterRegistry.h:39
const DtVector & worldVelocity() const
void setWorldPosition(const DtVector &pos)
void setLocalAcceleration(const DtVector &acc)
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
const DtVector & worldAcceleration() const
void setParentPosition(const DtVector &pos)
Arguments passed by the DtVrfObjectManager::addUUIDChangedCallback callbacks.
Definition: vrfObjectManager.h:160
DtCallbackList< DtSimObjectStateRepository * > DtAboutToBeDeletedCallbacksList
Definition: simObjectStateRepository.h:323
Description: Readable, Writable uuid string.
Definition: rwUUID.h:419
Definition: objectType.h:27
const DtVector & localVelocity() const
DtAboutToBeDeletedCallbacksList myRepositoryAboutToBeRemovedCallbacksList
Definition: simObjectStateRepository.h:324
DtRwObjectType myObjectType
Definition: simObjectStateRepository.h:301
const DtTaitBryan & worldOrientation() const
DtSimObjectStateRepository()
Default Constructor; not implemented.
virtual void setRelativeVertices(const DtLocalVertexList &vertices)
Access/modify vertices relative to to the parent to which this object is attached.
const Coordinate_System * myCoordinateSystemPtr
Caches pointer to coordinate system so it can set it after myKinematic state is created.
Definition: simObjectStateRepository.h:319
void setRelativeVelocity(const DtVector &vel)
void setLocalVelocity(const DtVector &vel)
Definition: coordSystem.h:54
The attachment manager maintains a tree of objects for the state repository class.
Definition: attachmentManager.h:34
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSimObjectStateRepository * myRootSimStateRepository
Definition: simObjectStateRepository.h:315
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtRwUUID myAttachedToRepositoryUUID
used for reading & writing the name of myAttachedToRepository
Definition: simObjectStateRepository.h:313
class DtSimKinematicState: This class encapsulates the kinematic state of an object wrt to the networ...
Definition: simKinematicState.h:30
class DtVertexList:
Definition: vertexList.h:22
void setLastPositionSetTime(const double simTime)
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
Definition: noArgumentCallbackList.h:91
virtual const DtVector & bodyPosition() const
Now superseded by kinematic state parentCS functions.
DtVrfKinematicState * myKinematicState
Definition: simObjectStateRepository.h:304
const DtVector & localAcceleration() const
DtCallbackList< DtSimObjectStateRepository * >::DtCallbackFunctionType DtSimObjectStateRepositoryAboutToBeDeletedCallbackFcn
Definition: simObjectStateRepository.h:37
Class Description: DtVrfObjectGeometry adds a vertex list maintained in the local database coordinate...
Definition: vrfObjectGeometry.h:26
void setWorldVelocity(const DtVector &vel)
void setLocalOrientation(const DtTaitBryan &angles)
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream.
virtual const DtVertexList & worldVertices() const
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
virtual DtVrfObjectStateRepository * toVrfObjectStateRepository()
virtual void preGetSelf()
Hook function called immediately prior to getSelf().
Definition: simObjectStateRepository.h:137
void setRelativeAcceleration(const DtVector &acc)
const DtDcm & bodyOrientationMatrix() const
Formerly meToParent().
void setRotationalVelocity(const DtVector &rotationalVelocity)
virtual void addWorldVertex(const DtVector &vertex, DtVector &newGeometricCenter)
The articulated part manager maintains a tree of articulated and attached parts for the state reposit...
Definition: articulatedPartManager.h:29
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
bool myOwnedByHostObject
Definition: simObjectStateRepository.h:327
virtual void embarkOnParent(const DtUUID &parent)
Embarks this entity on the specified parent.
tbb::spin_rw_mutex myRepositoryAboutToBeRemovedCallbacksListMutex
Definition: simObjectStateRepository.h:325
virtual double distanceToLocalVector(const DtVector &localVector) const
Returns the distance from a position in local.
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
const DtVector & relativeAcceleration() const
virtual DtVrfObjectGeometry * objectGeometry()
const DtVector & rotationalVelocity() const
virtual void setVrfObject(DtVrfObject *vrfObject)
virtual void setOrientationRelativeToParent()
If attached to a parent, and a terrain database is present, set orientation relative to parent...
DtKinematicStateCS * myEmbarkedKinematicState
Definition: simObjectStateRepository.h:321
class DtLocalVertexList:
Definition: localVertexList.h:20
const DtVector & worldPosition() const
const DtTaitBryan & localOrientation() const
const DtDcm & localOrientationMatrix() const
DtVrfObjectGeometry * myObjectGeometry
Definition: simObjectStateRepository.h:303
virtual void setLocalVertices(const DtLocalVertexList &vertices, DtVector &newGeometricCenter)
const DtVector & localPosition() const
Convenience methods for accessing corresponding methods in DtVrfKinematicState.
void setLocalPosition(const DtVector &pos)
const DtVector & relativeVelocity() const
virtual const DtRwVectorIterator & worldVertexIterator() const
virtual void setCoordinateSystem(const Coordinate_System *coordinateSystem)
Sets the coordinate system in myObjectGeometry and myKinematicState.
virtual void addLocalVertex(const DtVector &vertex)
virtual const DtVrfObject * vrfObject() const
DtRwReal myLastPositionSetTime
Definition: simObjectStateRepository.h:305
File: rwVecIterator.h.
Definition: rwVectorIterator.h:29
void setLocalOrientationMatrix(const DtDcm &orient)
virtual const DtLocalVectorIterator & relativeVertexIterator() const