VR-Engage  2.2
Loading...
Searching...
No Matches
DtVortexMovementActuator Class Reference

Detailed Description

This actuator provides high-fidelity vehicle physics by connecting a VR-Forces entity to a Vortex physics model. It handles vehicle dynamics simulation, terrain interaction, articulated parts, and player control.

Uses Descriptor Type: DtVortexMovementActuatorDescriptor

#include <vortexMovementActuator.h>

Inheritance diagram for DtVortexMovementActuator:
[legend]

Public Types

using VortexInterfaceMap = std::map<std::string, DtVortexInterface*>
 

Public Member Functions

 DtVortexMovementActuator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtVortexMovementActuator () override
 
DtVortexMovementActuatoroperator= (const DtVortexMovementActuator &orig)=delete
 
 DtVortexMovementActuator (const DtVortexMovementActuator &orig)=delete
 
virtual bool init () override
 
virtual void tick () override
 
virtual const char * type () const override
 
virtual bool createPorts () override
 
virtual bool createPortGroups () override
 
virtual void preFirstTickInit () override
 
virtual const std::vector< DtVortexBasePart * > & getParts () const
 
virtual bool isInVortexWorld () const
 
virtual bool isVortexPlayerControlled () const
 
virtual bool isBeingTowed () const
 
virtual void dropAboveTerrain (const DtVector &newLocalPosition, double heading)
 
VxMath::Matrix44 getNextFrameVortexTransform () const
 
VxSim::VxSmartInterface< VxDynamics::Mechanism > getMechanism ()
 
Vx::VxVector3 getNextFrameVortexPosition () const
 
Vx::VxEulerAngles getNextFrameVortexOrientation () const
 
void disableVehicleDynamics ()
 
void enableVehicleDynamics ()
 

Static Public Member Functions

static DtSimComponent * creator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 

Protected Types

enum  MechanismLoadStatus { NOT_LOADED = 0 , LOADING = 1 , LOADED = 2 }
 

Protected Member Functions

void updateParametersFromModel ()
 
void loadMechanism ()
 
void processTerrainChangeNotification (const DtTerrainChangeNotificationInfo &terrainChangeInfo)
 
DtVortexBasePartfindPart (int partId) const
 
virtual bool isVortexMechanismValid () const
 
virtual void getLowestBoundingPointsOfMechanism (std::vector< DtVector > &outputPoints)
 
virtual void processSetVortexWhileUntasked (DtSimMessage *msg)
 
virtual bool createPSR ()
 
virtual bool isHighFidelityCGF () const
 
virtual bool isPlayerControlledAs (std::string role) const
 
virtual void realizeVortexState ()
 
virtual bool isTerrainAvailable () const
 
virtual void detectTerrainFallthrough ()
 
virtual void setVortexMechanismLocation (const Vx::VxVector3 &nwuLocation, double heading)
 
Vx::VxVector3 getVortexLocation (const DtVector &inputCoords) const
 
virtual void sendVehicleDynamicsUpdate (bool enable)
 
virtual void sendVehiclePartsUpdate (Vx::VxPart::EntityControlTypeEnum control)
 
virtual void addSetCallbacks ()
 
virtual void removeSetCallbacks ()
 
virtual void handleSetLocation (const DtVector &location)
 
virtual void handleSetHeading (DtReal heading)
 
virtual void resetWheelParts ()
 
virtual void manageWheelPartStateTransitions (bool inVortexWorld)
 
virtual void updateState ()
 
virtual void restoreWheels ()
 
virtual void engageParkingBrakeOnDisengage (bool isDriver)
 
virtual void updateFuel ()
 
virtual void updateDestroyedState ()
 
virtual double fuelLeft () const
 
virtual void useFuel (double fuelUsed)
 
DtVortexBasePartcreatePart (makVre::DtVortexSimArtPartDescriptor *desc)
 
void createVortexPartsFromDescriptor ()
 
void setThresholdsFromDescriptor ()
 
void updateGroundInteractionPoint (const DtDcm &localOrientation, const DtVector &localPosition, const DtAttachedTerrain &terrain, bool &dataAvailable) const
 
void createVortexConfigurationsFromDescriptor ()
 
void createVortexInterfacesFromDescriptor ()
 
void connectInterfacesToPorts ()
 
void queueMechanismLoad ()
 
virtual void updatePorts ()
 
VxSim::VxSmartInterface< VxDynamics::Part > findPartFromPathRecursive (const VxSim::VxWeakInterface< VxSim::IObject > &objectToLookThroughWeak, const std::vector< std::string > &pathToLookForPart, int index)
 
virtual bool checkDistanceFromCoordinateOriginOverLimit (const DtVector &position, double distance)
 

Static Protected Member Functions

static void terrainChangeNotification (const DtTerrainChangeNotificationInfo &terrainChangeInfo, void *usr)
 
static void setVortexWhileUntaskedCallback (DtSimMessage *msg, void *usrData)
 
static void setHeadingCallback (DtReal heading, void *usrData)
 
static void setLocationCallback (const DtVector &location, void *usrData)
 

Protected Attributes

const DtVortexMovementActuatorDescriptormyDescriptor
 
DtGroundVehicleStateRepository * myGroundVehicleState
 
DtVortexStateRepositorymyVehicleRepository
 
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
 
DtArticulatedPartCollection myCollectionWithWheels
 
VxSim::VxSmartInterface< VxDynamics::Mechanism > myMechanism
 
VxSim::VxSmartInterface< DtMechAddonmyMechAddon
 
VxSim::VxExtension * myVehicleExt
 
std::vector< DtVortexBasePart * > myParts
 
VortexInterfaceMap myInterfaces
 
std::shared_ptr< VxSim::VxSimulationFileManagerFacade > mySimulationFileManagerFacade
 
Vx::VxSmartPtr< DtVxSimulationFileManagerFacadeListenermyListener
 
std::shared_ptr< makVre::DtVortexConfigurationmyConfiguration
 
DtUpdateRepositoryOutputPortGroup * myUpdateRepositoryOutputPortGroup
 
DtStringOutputPort * myAimingModePort
 
bool myWasInVortexWorldLastTick
 
bool myWasDriverLastTick
 
bool myAutoParkButtonDown
 
bool myNeedsWheelPartRemoval
 
bool myHaveVortexTurretInterface
 
bool myIsVortexDynamicsActive
 
bool mySpawnedFromSpawnPoint
 
MechanismLoadStatus myMechanismLoadStatus
 
VxSim::VxUuid myLoadObjectRequestId
 
makVre::DtVortexPhysicalWorldmyVortexPhysicalWorld
 
double myPositionThreshold
 
double myOrientationThreshold
 
double myVelocityThreshold
 
double myAngularVelocityThreshold
 
double myAccelerationThreshold
 
double myPartPositionThreshold
 
double myPartOrientationThreshold
 
double myPartLinearVelocityThreshold
 
double myPartAngularVelocityThreshold
 
double myDropTimer
 
bool myAllowVortexWhileDestroyed
 
bool myDetectTerrainFallthrough
 
DtVector myPreviousPosition
 
DtTaitBryan myPreviousOrientation
 
DtSymbolString myMovementChooserControllerName
 
makVre::DtVortexMovementPSRmyProcessState
 

Friends

class DtVxSimulationFileManagerFacadeListener
 

Member Typedef Documentation

◆ VortexInterfaceMap

Type definition for a map of Vortex interfaces by name.

Member Enumeration Documentation

◆ MechanismLoadStatus

Enumerator
NOT_LOADED 
LOADING 
LOADED 

Constructor & Destructor Documentation

◆ DtVortexMovementActuator() [1/2]

DtVortexMovementActuator::DtVortexMovementActuator ( const DtString & name,
DtLocalObject * owner,
DtSimulationServices * simManager,
DtComponentDescriptor * desc = 0,
DtReaderWriterRegistry * parentRegistry = 0 )

Constructor.

Initializes the actuator with the specified parameters.

Parameters
nameComponent name
ownerOwner local object
simManagerSimulation services
descComponent descriptor
parentRegistryParent reader/writer registry

Referenced by DtVortexMovementActuator(), and operator=().

◆ ~DtVortexMovementActuator()

virtual DtVortexMovementActuator::~DtVortexMovementActuator ( )
overridevirtual

Destructor.

◆ DtVortexMovementActuator() [2/2]

DtVortexMovementActuator::DtVortexMovementActuator ( const DtVortexMovementActuator & orig)
delete

Member Function Documentation

◆ operator=()

DtVortexMovementActuator & DtVortexMovementActuator::operator= ( const DtVortexMovementActuator & orig)
delete

Assignment operator and copy constructor not implemented.

References DtVortexMovementActuator().

◆ init()

virtual bool DtVortexMovementActuator::init ( )
overridevirtual

Initializes the actuator.

Registers set callbacks and queues the loading of the physics mechanism.

Returns
True on success, false otherwise

◆ tick()

virtual void DtVortexMovementActuator::tick ( )
overridevirtual

Updates the actuator each simulation frame.

Manages the state of the Vortex mechanism, updates input/output ports, and synchronizes between VR-Forces and Vortex.

◆ type()

virtual const char * DtVortexMovementActuator::type ( ) const
overridevirtual

Gets the type of this actuator.

Returns
DtVortexMovementActuatorType

◆ createPorts()

virtual bool DtVortexMovementActuator::createPorts ( )
overridevirtual

Creates the ports required for actuator operation.

Creates the ports from the VHL Interface.

Returns
True on success, false otherwise

◆ createPortGroups()

virtual bool DtVortexMovementActuator::createPortGroups ( )
overridevirtual

Creates the port groups for the actuator.

Creates the input and output port groups from the VHL Interface.

Returns
True on success, false otherwise

◆ creator()

static DtSimComponent * DtVortexMovementActuator::creator ( const DtString & name,
DtLocalObject * owner,
DtSimulationServices * simManager,
DtComponentDescriptor * desc = 0,
DtReaderWriterRegistry * parentRegistry = 0 )
static

Factory method for creating instances of this actuator.

Parameters
nameComponent name
ownerOwner local object
simManagerSimulation services
descComponent descriptor
parentRegistryParent reader/writer registry
Returns
New instance of this class

◆ preFirstTickInit()

virtual void DtVortexMovementActuator::preFirstTickInit ( )
overridevirtual

Initializes the actuator before the first simulation tick.

Calls initializeMovementChooserName() and dropAboveTerrain() to initially place the vehicle on the terrain. Also passes any specified Vortex parameters from the system definition file.

◆ getParts()

virtual const std::vector< DtVortexBasePart * > & DtVortexMovementActuator::getParts ( ) const
virtual

Gets the list of all Vortex parts in this actuator.

Returns
Vector of pointers to Vortex parts

◆ isInVortexWorld()

virtual bool DtVortexMovementActuator::isInVortexWorld ( ) const
virtual

Checks if high-fidelity Vortex physics should be active.

Vortex should be active if the player is driving the vehicle OR if the vehicle is stationary and high-fidelity collision physics are enabled for this vehicle.

Returns
True if Vortex physics should be active, false otherwise

◆ isVortexPlayerControlled()

virtual bool DtVortexMovementActuator::isVortexPlayerControlled ( ) const
virtual

Checks if the entity is player controlled.

Returns
True if the entity is player controlled, false otherwise

◆ isBeingTowed()

virtual bool DtVortexMovementActuator::isBeingTowed ( ) const
virtual

Checks if the entity is being towed by another Vortex entity.

Returns
True if the entity is being towed, false otherwise

◆ dropAboveTerrain()

virtual void DtVortexMovementActuator::dropAboveTerrain ( const DtVector & newLocalPosition,
double heading )
virtual

Drops the vehicle above the terrain at a specified position.

Calculates the terrain height at the new location and positions the vehicle at the appropriate height above the terrain. The additional height above terrain is determined by the descriptor's additionalDropHeight() value (default: 0.5 meters).

This method checks all bounding points of the vehicle mechanism to ensure no part of the vehicle is placed below the terrain surface. The vehicle is positioned such that its lowest point is at the terrain height plus the additional drop height.

Parameters
newLocalPositionWhere to drop the vehicle (in local coordinates)
headingThe heading to set the vehicle at (in radians)
Note
The additional height value is now configured via DtVortexMovementActuatorDescriptor::setAdditionalDropHeight()
See also
DtVortexMovementActuatorDescriptor::additionalDropHeight()

◆ getNextFrameVortexTransform()

VxMath::Matrix44 DtVortexMovementActuator::getNextFrameVortexTransform ( ) const

Gets the next frame's location and orientation as a VxMatrix.

Returns
Matrix containing orientation and position in NWU coordinates

◆ getMechanism()

VxSim::VxSmartInterface< VxDynamics::Mechanism > DtVortexMovementActuator::getMechanism ( )

Gets the current mechanism associated with the actuator.

Returns
Smart interface to the current mechanism

◆ getNextFrameVortexPosition()

Vx::VxVector3 DtVortexMovementActuator::getNextFrameVortexPosition ( ) const

Gets the next frame Vortex location from the entity.

Returns
Location vector in Vortex coordinates

◆ getNextFrameVortexOrientation()

Vx::VxEulerAngles DtVortexMovementActuator::getNextFrameVortexOrientation ( ) const

Gets the next frame Vortex orientation from the entity.

Returns
Euler angles in Vortex coordinates

◆ disableVehicleDynamics()

void DtVortexMovementActuator::disableVehicleDynamics ( )

Disables the vehicle dynamics.

Sets the parts to static and disables vehicle dynamics.

◆ enableVehicleDynamics()

void DtVortexMovementActuator::enableVehicleDynamics ( )

Enables the vehicle dynamics.

Sets the parts to dynamic and enables vehicle dynamics.

◆ updateParametersFromModel()

void DtVortexMovementActuator::updateParametersFromModel ( )
protected

Updates Vortex model parameters with data from VR-Forces.

Updates vehicle mass and wheel articulated part positions from VR-Forces entity parameters. Called by loadMechanism.

◆ loadMechanism()

void DtVortexMovementActuator::loadMechanism ( )
protected

Loads the Vortex mechanism.

Performs the main loading of the mechanism. Called by the Listener in Vortex at a safe time.

◆ terrainChangeNotification()

static void DtVortexMovementActuator::terrainChangeNotification ( const DtTerrainChangeNotificationInfo & terrainChangeInfo,
void * usr )
staticprotected

Static callback for terrain change notifications.

Parameters
terrainChangeInfoInformation about the terrain change
usrPointer to this actuator

◆ processTerrainChangeNotification()

void DtVortexMovementActuator::processTerrainChangeNotification ( const DtTerrainChangeNotificationInfo & terrainChangeInfo)
protected

Processes terrain change notifications.

Checks if the entity is within the spatial extents of the terrain change notification and sets the terrain change flag if needed.

Parameters
terrainChangeInfoInformation about the terrain change

◆ setVortexWhileUntaskedCallback()

static void DtVortexMovementActuator::setVortexWhileUntaskedCallback ( DtSimMessage * msg,
void * usrData )
staticprotected

Callback for scripted set data request message.

Calls processUseHiFiCollisionsInStationaryCgfState() to process the message.

Parameters
msgThe message to process
usrDataUser data

◆ findPart()

DtVortexBasePart * DtVortexMovementActuator::findPart ( int partId) const
protected

Gets the Vortex part associated with an articulated part ID.

Parameters
partIdThe part ID of the Vortex part to look for
Returns
Pointer to the base part, or nullptr if not found

◆ isVortexMechanismValid()

virtual bool DtVortexMovementActuator::isVortexMechanismValid ( ) const
protectedvirtual

Checks if the Vortex mechanism is valid.

Valid means the following conditions are all true:

  • myMechanism.getExtension() != nullptr
  • myMechanism.getInterface() != nullptr
  • myMechanism.getObject() != nullptr
  • myMechanism.valid()
Returns
True if the mechanism is valid, false otherwise

◆ getLowestBoundingPointsOfMechanism()

virtual void DtVortexMovementActuator::getLowestBoundingPointsOfMechanism ( std::vector< DtVector > & outputPoints)
protectedvirtual

Gets the lowest bounding points of the current mechanism.

The values are returned in NWU (Vortex Coordinate System).

Parameters
outputPointsVector to store the lowest bounding points in current world space

◆ processSetVortexWhileUntasked()

virtual void DtVortexMovementActuator::processSetVortexWhileUntasked ( DtSimMessage * msg)
protectedvirtual

Processes a set data request to enable/disable high-fidelity physics.

Sets the value for useHiFiCollisionInStationaryCgfState in the process state repository from the incoming scripted set data request message.

Parameters
msgThe message to process

◆ createPSR()

virtual bool DtVortexMovementActuator::createPSR ( )
protectedvirtual

Creates a process state repository for this component.

Creates a DtVortexMovementPSR for holding state associated with this component, specifically the useHiFiCollisionInStationaryCgfState flag.

Returns
True on success, false otherwise

◆ isHighFidelityCGF()

virtual bool DtVortexMovementActuator::isHighFidelityCGF ( ) const
protectedvirtual

Checks if the entity is currently a high-fidelity CGF.

Returns true if entity is currently executing a high-fidelity Vortex model, false otherwise. Checks if the movement-chooser controller is actively tasked.

Returns
True if high-fidelity, false otherwise

◆ isPlayerControlledAs()

virtual bool DtVortexMovementActuator::isPlayerControlledAs ( std::string role) const
protectedvirtual

Checks if the entity is player controlled in a specific role.

Note that there may be multiple roles associated with a vehicle, so responsibilities for controlling the vehicle may be split across multiple role players, and/or shared with CGF control.

Parameters
roleThe role to check (e.g., "Driver")
Returns
True if player controlled in the specified role, false otherwise

◆ realizeVortexState()

virtual void DtVortexMovementActuator::realizeVortexState ( )
protectedvirtual

Updates the Vortex state based on current conditions.

Adds or removes the Vortex mechanism from the Vortex scene and registers or unregisters this entity as a Vortex entity in the Collision Proxy Generator, as appropriate for the current Vortex Active state.

◆ isTerrainAvailable()

virtual bool DtVortexMovementActuator::isTerrainAvailable ( ) const
protectedvirtual

Checks if terrain is available below the vehicle.

Returns
True if terrain is available below the center of the vehicle, false otherwise

◆ detectTerrainFallthrough()

virtual void DtVortexMovementActuator::detectTerrainFallthrough ( )
protectedvirtual

Detects and logs terrain fall-through conditions.

Checks if the vehicle has fallen through the terrain when terrain data is not available. Logs diagnostic information to help identify terrain loading issues. Called when terrain is unavailable during Vortex simulation.

◆ setVortexMechanismLocation()

virtual void DtVortexMovementActuator::setVortexMechanismLocation ( const Vx::VxVector3 & nwuLocation,
double heading )
protectedvirtual

Sets the Vortex mechanism's location and orientation.

Sets the Vortex mechanism's transform using the location and heading and resets wheel parts to be attached to the mechanism.

Parameters
nwuLocationThe location in NWU coordinates
headingThe heading in radians

◆ getVortexLocation()

Vx::VxVector3 DtVortexMovementActuator::getVortexLocation ( const DtVector & inputCoords) const
protected

Converts local coordinates to Vortex coordinates.

Parameters
inputCoordsThe coordinates in local database coordinates
Returns
The corresponding coordinates in NWU (Vortex) coordinates

◆ sendVehicleDynamicsUpdate()

virtual void DtVortexMovementActuator::sendVehicleDynamicsUpdate ( bool enable)
protectedvirtual

Sends a vehicle dynamics update event.

Internal function that sends the vehicle dynamics update event to Vortex.

Parameters
enableTrue to enable dynamics, false to disable

◆ sendVehiclePartsUpdate()

virtual void DtVortexMovementActuator::sendVehiclePartsUpdate ( Vx::VxPart::EntityControlTypeEnum control)
protectedvirtual

Updates the control state of all vehicle parts.

Sets the control type of all parts to disable or enable collisions and simulation.

Parameters
controlThe control type (Static or Dynamic)

◆ addSetCallbacks()

virtual void DtVortexMovementActuator::addSetCallbacks ( )
protectedvirtual

Adds set callbacks for location and heading.

◆ removeSetCallbacks()

virtual void DtVortexMovementActuator::removeSetCallbacks ( )
protectedvirtual

Removes set callbacks for location and heading.

◆ setHeadingCallback()

static void DtVortexMovementActuator::setHeadingCallback ( DtReal heading,
void * usrData )
staticprotected

Callback for heading changes.

Parameters
headingThe new heading
usrDataUser data

◆ setLocationCallback()

static void DtVortexMovementActuator::setLocationCallback ( const DtVector & location,
void * usrData )
staticprotected

Callback for location changes.

Parameters
locationThe new location
usrDataUser data

◆ handleSetLocation()

virtual void DtVortexMovementActuator::handleSetLocation ( const DtVector & location)
protectedvirtual

Handles a location change request.

Parameters
locationThe new location

◆ handleSetHeading()

virtual void DtVortexMovementActuator::handleSetHeading ( DtReal heading)
protectedvirtual

Handles a heading change request.

Parameters
headingThe new heading

◆ resetWheelParts()

virtual void DtVortexMovementActuator::resetWheelParts ( )
protectedvirtual

Resets wheel parts to their default positions.

Resets all wheel parts to zero position on the network.

◆ manageWheelPartStateTransitions()

virtual void DtVortexMovementActuator::manageWheelPartStateTransitions ( bool inVortexWorld)
protectedvirtual

Manages wheel part state transitions when entering or exiting Vortex world.

Handles the logic for resetting or restoring wheel parts based on whether the vehicle is in the Vortex physics simulation. When exiting Vortex, resets wheel parts to prevent network updates that interfere with VRV automatic wheel control. When entering Vortex, restores the original wheel part collection.

Parameters
inVortexWorldTrue if the vehicle is currently in the Vortex physics world

◆ updateState()

virtual void DtVortexMovementActuator::updateState ( )
protectedvirtual

Updates state properties.

◆ restoreWheels()

virtual void DtVortexMovementActuator::restoreWheels ( )
protectedvirtual

Restores wheel articulated parts.

Restores wheels in the articulated part collection.

◆ engageParkingBrakeOnDisengage()

virtual void DtVortexMovementActuator::engageParkingBrakeOnDisengage ( bool isDriver)
protectedvirtual

Automatically engages parking brake when disengaging from driver role.

Automatically engages the parking brake when a player disengages from the driver role if the brake is not already engaged. Simulates a two-tick button press (down then up) to activate the brake.

Parameters
isDriverTrue if currently controlled as driver, false otherwise

◆ updateFuel()

virtual void DtVortexMovementActuator::updateFuel ( )
protectedvirtual

Updates fuel level.

◆ updateDestroyedState()

virtual void DtVortexMovementActuator::updateDestroyedState ( )
protectedvirtual

◆ fuelLeft()

virtual double DtVortexMovementActuator::fuelLeft ( ) const
protectedvirtual

Gets the current fuel level.

Returns
The amount of fuel left

◆ useFuel()

virtual void DtVortexMovementActuator::useFuel ( double fuelUsed)
protectedvirtual

Consumes fuel.

Parameters
fuelUsedThe amount of fuel to consume

◆ createPart()

DtVortexBasePart * DtVortexMovementActuator::createPart ( makVre::DtVortexSimArtPartDescriptor * desc)
protected

Creates a Vortex part from a descriptor.

Parameters
descThe part descriptor
Returns
Pointer to the created part

◆ createVortexPartsFromDescriptor()

void DtVortexMovementActuator::createVortexPartsFromDescriptor ( )
protected

Creates all Vortex parts defined in the descriptor.

◆ setThresholdsFromDescriptor()

void DtVortexMovementActuator::setThresholdsFromDescriptor ( )
protected

Sets precision thresholds based on the descriptor.

◆ updateGroundInteractionPoint()

void DtVortexMovementActuator::updateGroundInteractionPoint ( const DtDcm & localOrientation,
const DtVector & localPosition,
const DtAttachedTerrain & terrain,
bool & dataAvailable ) const
protected

Updates the ground interaction point under the vehicle.

This is used by the DtGroundVehicleTrailingEffectController to determine the soil type under the vehicle.

Parameters
localOrientationOrientation relative to terrain or parent entity
localPositionPosition relative to terrain or parent entity
terrainThe attached terrain (database or parent entity)
dataAvailableSet to true if terrain data is available

◆ createVortexConfigurationsFromDescriptor()

void DtVortexMovementActuator::createVortexConfigurationsFromDescriptor ( )
protected

Creates Vortex configurations from the descriptor.

Creates a Vortex Configuration from the configuration section of the descriptor.

◆ createVortexInterfacesFromDescriptor()

void DtVortexMovementActuator::createVortexInterfacesFromDescriptor ( )
protected

Creates Vortex interfaces defined in the descriptor.

Also creates input/output ports and port groups.

◆ connectInterfacesToPorts()

void DtVortexMovementActuator::connectInterfacesToPorts ( )
protected

Connects interfaces to ports.

Connects all the values defined in VHL interfaces to Vortex.

◆ queueMechanismLoad()

void DtVortexMovementActuator::queueMechanismLoad ( )
protected

Queues the mechanism for loading.

Queues the mechanism to load in a thread-safe manner.

◆ updatePorts()

virtual void DtVortexMovementActuator::updatePorts ( )
protectedvirtual

Updates ports with data from Vortex interfaces.

◆ findPartFromPathRecursive()

VxSim::VxSmartInterface< VxDynamics::Part > DtVortexMovementActuator::findPartFromPathRecursive ( const VxSim::VxWeakInterface< VxSim::IObject > & objectToLookThroughWeak,
const std::vector< std::string > & pathToLookForPart,
int index )
protected

Recursively finds a part from a path.

Parameters
objectToLookThroughWeakObject to search for the part
pathToLookForPartPath defined in the system definition file
indexCurrent index in the path
Returns
Smart pointer to the part, or null if not found

◆ checkDistanceFromCoordinateOriginOverLimit()

virtual bool DtVortexMovementActuator::checkDistanceFromCoordinateOriginOverLimit ( const DtVector & position,
double distance )
protectedvirtual

Checks if the incoming position is further than distance.

Parameters
positionincoming position. Pass position in geocentric (DIS)
distancedistance
Returns
True if enuPosition is further than distance

Friends And Related Symbol Documentation

◆ DtVxSimulationFileManagerFacadeListener

Member Data Documentation

◆ myDescriptor

const DtVortexMovementActuatorDescriptor* DtVortexMovementActuator::myDescriptor
protected

◆ myGroundVehicleState

DtGroundVehicleStateRepository* DtVortexMovementActuator::myGroundVehicleState
protected

◆ myVehicleRepository

DtVortexStateRepository* DtVortexMovementActuator::myVehicleRepository
protected

◆ myPlatformLocalObjectFacade

DtPlatformLocalObjectFacade DtVortexMovementActuator::myPlatformLocalObjectFacade
protected

◆ myCollectionWithWheels

DtArticulatedPartCollection DtVortexMovementActuator::myCollectionWithWheels
protected

◆ myMechanism

VxSim::VxSmartInterface<VxDynamics::Mechanism> DtVortexMovementActuator::myMechanism
protected

◆ myMechAddon

VxSim::VxSmartInterface<DtMechAddon> DtVortexMovementActuator::myMechAddon
protected

◆ myVehicleExt

VxSim::VxExtension* DtVortexMovementActuator::myVehicleExt
protected

◆ myParts

std::vector<DtVortexBasePart*> DtVortexMovementActuator::myParts
protected

◆ myInterfaces

VortexInterfaceMap DtVortexMovementActuator::myInterfaces
protected

◆ mySimulationFileManagerFacade

std::shared_ptr<VxSim::VxSimulationFileManagerFacade> DtVortexMovementActuator::mySimulationFileManagerFacade
protected

◆ myListener

Vx::VxSmartPtr<DtVxSimulationFileManagerFacadeListener> DtVortexMovementActuator::myListener
protected

◆ myConfiguration

std::shared_ptr<makVre::DtVortexConfiguration> DtVortexMovementActuator::myConfiguration
protected

◆ myUpdateRepositoryOutputPortGroup

DtUpdateRepositoryOutputPortGroup* DtVortexMovementActuator::myUpdateRepositoryOutputPortGroup
protected

◆ myAimingModePort

DtStringOutputPort* DtVortexMovementActuator::myAimingModePort
protected

◆ myWasInVortexWorldLastTick

bool DtVortexMovementActuator::myWasInVortexWorldLastTick
protected

◆ myWasDriverLastTick

bool DtVortexMovementActuator::myWasDriverLastTick
protected

◆ myAutoParkButtonDown

bool DtVortexMovementActuator::myAutoParkButtonDown
protected

◆ myNeedsWheelPartRemoval

bool DtVortexMovementActuator::myNeedsWheelPartRemoval
protected

◆ myHaveVortexTurretInterface

bool DtVortexMovementActuator::myHaveVortexTurretInterface
protected

◆ myIsVortexDynamicsActive

bool DtVortexMovementActuator::myIsVortexDynamicsActive
protected

◆ mySpawnedFromSpawnPoint

bool DtVortexMovementActuator::mySpawnedFromSpawnPoint
protected

◆ myMechanismLoadStatus

MechanismLoadStatus DtVortexMovementActuator::myMechanismLoadStatus
protected

◆ myLoadObjectRequestId

VxSim::VxUuid DtVortexMovementActuator::myLoadObjectRequestId
protected

◆ myVortexPhysicalWorld

makVre::DtVortexPhysicalWorld* DtVortexMovementActuator::myVortexPhysicalWorld
protected

◆ myPositionThreshold

double DtVortexMovementActuator::myPositionThreshold
protected

◆ myOrientationThreshold

double DtVortexMovementActuator::myOrientationThreshold
protected

◆ myVelocityThreshold

double DtVortexMovementActuator::myVelocityThreshold
protected

◆ myAngularVelocityThreshold

double DtVortexMovementActuator::myAngularVelocityThreshold
protected

◆ myAccelerationThreshold

double DtVortexMovementActuator::myAccelerationThreshold
protected

◆ myPartPositionThreshold

double DtVortexMovementActuator::myPartPositionThreshold
protected

◆ myPartOrientationThreshold

double DtVortexMovementActuator::myPartOrientationThreshold
protected

◆ myPartLinearVelocityThreshold

double DtVortexMovementActuator::myPartLinearVelocityThreshold
protected

◆ myPartAngularVelocityThreshold

double DtVortexMovementActuator::myPartAngularVelocityThreshold
protected

◆ myDropTimer

double DtVortexMovementActuator::myDropTimer
protected

◆ myAllowVortexWhileDestroyed

bool DtVortexMovementActuator::myAllowVortexWhileDestroyed
protected

Controls whether Vortex physics simulation continues for destroyed entities.

When true, allows Vortex physics to remain active even when the entity is destroyed or mobility-killed. When false (default), Vortex control is disabled for destroyed or mobility-killed entities.

This flag is initialized from the descriptor's allowVortexWhileDestroyed setting during the actuator initialization phase.

Note
Default value is false.
See also
DtVortexMovementActuatorDescriptor::allowVortexWhileDestroyed()

◆ myDetectTerrainFallthrough

bool DtVortexMovementActuator::myDetectTerrainFallthrough
protected

Controls whether terrain fallthrough detection is enabled.

When true, the actuator monitors for terrain availability issues during Vortex simulation and logs diagnostic information when fallthrough conditions are detected. When false (default), fallthrough detection is disabled.

This flag is initialized from the descriptor's detectTerrainFallthrough setting during the actuator initialization phase.

Note
Default value is false.
See also
DtVortexMovementActuatorDescriptor::detectTerrainFallthrough()

◆ myPreviousPosition

DtVector DtVortexMovementActuator::myPreviousPosition
protected

◆ myPreviousOrientation

DtTaitBryan DtVortexMovementActuator::myPreviousOrientation
protected

◆ myMovementChooserControllerName

DtSymbolString DtVortexMovementActuator::myMovementChooserControllerName
protected

◆ myProcessState

makVre::DtVortexMovementPSR* DtVortexMovementActuator::myProcessState
protected

The documentation for this class was generated from the following file: