14#include <matrix/vlVector.h>
15#include <matrix/vlTaitBryan.h>
17#include <Vx/VxTransform.h>
18#include <Vx/VxSmartPtr.h>
20#include <VxSim/VxSmartInterface.h>
27class DtArticulatedPart;
28class DtUpdateRepositoryOutputPortGroup;
66class VxPluginExtension;
68class VxSimulationState;
203 virtual inline const std::string&
name()
const {
return myName; }
432 VxSim::VxWeakInterface<VxDynamics::Part>
myPart;
int myMotion
Supported motion types (bitmask)
Definition vortexPart.h:213
std::string myName
Part name.
Definition vortexPart.h:206
DtTaitBryan myOrientation
Current orientation.
Definition vortexPart.h:221
DtVector myPosition
Current position.
Definition vortexPart.h:217
DtVector myAngularVelocity
Current angular velocity.
Definition vortexPart.h:222
virtual void update()=0
Updates the part state.
virtual DtVector velocity() const
Gets the current velocity.
Definition vortexPart.h:181
virtual DtTaitBryan orientation() const
Gets the current orientation.
Definition vortexPart.h:191
virtual const std::string & name() const
Gets the part name.
Definition vortexPart.h:203
int myPartId
This part's ID.
Definition vortexPart.h:211
DtVortexBasePart * myParent
Parent part.
Definition vortexPart.h:207
std::vector< int > myParamterIds
Parameter IDs for this part.
Definition vortexPart.h:215
virtual int parentId() const
Gets the parent part ID.
Definition vortexPart.h:169
virtual DtVector position() const
Gets the position in NED coordinate system.
Definition vortexPart.h:176
makVre::DtVortexSimArtPartDescriptor * myDescriptor
Part descriptor.
Definition vortexPart.h:208
virtual ~DtVortexBasePart()
Virtual destructor.
virtual const std::vector< int > & paramIds() const
Gets the parameter IDs associated with this part.
Definition vortexPart.h:115
virtual bool hasMotion(DtPartMotion motion) const
Checks if this part has the specified motion capability.
virtual void resetInitialPartPositions()
Resets the initial part positions.
Definition vortexPart.h:143
virtual void reset()
Resets the part to its initial state in Vortex.
virtual DtVector angularVelocity() const
Gets the current angular velocity.
Definition vortexPart.h:196
virtual int partId() const
Gets the part ID.
Definition vortexPart.h:164
DtPartMotion
Enumeration defining possible part motion types.
Definition vortexPart.h:89
@ X
Motion along X axis.
Definition vortexPart.h:90
@ Y
Motion along Y axis.
Definition vortexPart.h:91
@ Z
Motion along Z axis.
Definition vortexPart.h:92
@ ORIENTATION
All rotational motion.
Definition vortexPart.h:97
@ ELEVATION
Rotation around Y axis.
Definition vortexPart.h:95
@ TRANSLATION
All translational motion.
Definition vortexPart.h:93
@ AZIMUTH
Rotation around Z axis.
Definition vortexPart.h:94
@ ROTATION
Rotation around X axis.
Definition vortexPart.h:96
virtual DtVector acceleration() const
Gets the current acceleration.
Definition vortexPart.h:186
DtVortexBasePart(makVre::DtVortexSimArtPartDescriptor *desc, DtVortexBasePart *parent)
Constructor.
DtVector myVelocity
Current velocity.
Definition vortexPart.h:218
virtual Vx::VxTransform transform() const =0
Gets the local transform in Vortex coordinates.
virtual DtVortexBasePart & parent() const
Gets the parent part.
int myParentId
Parent part ID.
Definition vortexPart.h:210
virtual bool init()=0
Initializes the part.
virtual Vx::VxTransform worldTransform() const =0
Gets the world transform in Vortex coordinates.
DtVector myAcceleration
Current acceleration.
Definition vortexPart.h:219
virtual bool init() override
Initializes the part.
VxData::FieldBase * myDynamicsTransform
The dynamics transform field.
Definition vortexPart.h:377
virtual bool initializeCarWheel()
Initializes a car wheel.
virtual bool initializeTrackSprocket()
Initializes a track sprocket.
double myDynamicWheelRadius
Wheel radius for dynamics calculations.
Definition vortexPart.h:374
virtual Vx::VxTransform transform() const override
Gets the local transform.
double wheelRadius()
Gets the wheel radius.
virtual void reset() override
Resets the part to its initial state.
virtual Vx::VxTransform worldTransform() const override
Gets the world transform.
VxData::FieldBase * myDynamicsContactMaterial
The dynamics contact material field.
Definition vortexPart.h:378
virtual bool initializeTrackIdler()
Initializes a track idler.
virtual void resetInitialPartPositions() override
Resets the initial part positions.
virtual ~DtVortexDynamicsPart() override
Destructor.
Vx::VxTransform myDOFTransform
Degree of freedom transform.
Definition vortexPart.h:375
virtual void update() override
Updates the part state from Vortex.
DtVortexDynamicsPart(Vx::VxWeakPtr< VxSim::VxExtension > dynamicsExt, makVre::DtVortexSimArtPartDescriptor *desc, DtVortexBasePart *parent)
Constructor.
virtual bool initializeTrackWheel()
Initializes a track wheel.
Vx::VxWeakPtr< VxSim::VxExtension > myDynamicsExt
The dynamics extension.
Definition vortexPart.h:376
virtual void reset() override
Resets the part to its initial state.
DtVortexModularPart(VxSim::VxWeakInterface< VxDynamics::Part > part, makVre::DtVortexSimArtPartDescriptor *desc, DtVortexBasePart *parent)
Constructor.
Vx::VxTransform myTransformToChassis
Transform from part to chassis.
Definition vortexPart.h:433
VxSim::VxWeakInterface< VxDynamics::Part > myPart
The Vortex dynamics part.
Definition vortexPart.h:432
virtual void updateParentTransform()
Updates the parent transform.
virtual bool init() override
Initializes the part.
virtual void update() override
Updates the part state from Vortex.
virtual ~DtVortexModularPart() override
Destructor.
virtual Vx::VxTransform transform() const override
Gets the local transform.
virtual bool isParentTransformValid()
Checks if the parent transform is valid.
virtual Vx::VxTransform worldTransform() const override
Gets the world transform.
DtVector calculateLinearVelocity()
Calculates the current linear velocity.
DtVector calculateAngularVelocity()
Calculates the current angular velocity.
virtual ~DtVortexPart() override
Destructor.
Vx::VxPart * myPart
The Vortex physics part.
Definition vortexPart.h:299
virtual Vx::VxTransform worldTransform() const override
Gets the world transform.
virtual Vx::VxTransform transform() const override
Gets the local transform.
DtVector calculateAccleration()
Calculates the current acceleration.
virtual Vx::VxPart * getPart()
Gets the underlying Vortex part.
DtVector calculatePosition()
Calculates the current position.
virtual void reset() override
Resets the part to its initial state.
DtTaitBryan calculateOrientation()
Calculates the current orientation.
virtual bool init() override
Initializes the part.
virtual void resetInitialPartPositions() override
Resets the initial part positions.
DtVortexPart(Vx::VxPart *part, makVre::DtVortexSimArtPartDescriptor *desc, DtVortexBasePart *parent)
Constructor.
virtual void update() override
Updates the part state from Vortex.
Articulated part descriptor for Vortex physics simulation.
Definition vortexArtPartDescriptor.h:27
Export macros for the VR-Forces Vortex extension library.
#define VREVRFVORTEX_DLL
Export macro for non-Windows platforms.
Definition export.h:30
Definition vortexConfiguration.h:24
Definition vortexIntegrationModule.h:28
Wheel articulated part IDs used in the system.
Definition surfaceToVxMaterialMapper.h:17
Definition vortexConfiguration.h:29
Include export definitions for this library.
Definition glsVreMessageUtil.h:49