VR-Engage  2.2
Loading...
Searching...
No Matches
makVre::DtVxSimModule Class Reference

Detailed Description

This module manages the communication between VR-Forces and the Vortex physics engine. It handles the synchronization of extension updates and parts updates, allowing for controlled modification of Vortex entities during simulation.

#include <vortexIntegrationModule.h>

Inheritance diagram for makVre::DtVxSimModule:
[legend]

Public Types

enum class  Operation { PARTS_UPDATE = 0 , EXTENSION_UPDATE }
 
using OperationEvent = std::pair<Operation, VxSim::EventData>
 

Public Member Functions

 DtVxSimModule (VxSim::VxSimulatorModule *iProxy)
 
virtual ~DtVxSimModule () override
 
virtual void onApplicationModeChange (VxSim::eApplicationMode previous, VxSim::eApplicationMode next) override
 
virtual void onAddToApplication (VxSim::VxApplication *application) override
 
virtual void onRemoveFromApplication (VxSim::VxApplication *application) override
 
virtual void onPreUpdate (VxSim::eApplicationMode mode) override
 

Static Public Attributes

static const VxSim::VxFactoryKey kModuleKey
 
static const VxSim::EventId kExtensionUpdate
 
static const VxSim::EventId kPartsUpdate
 

Protected Member Functions

void processExtensionUpdate (const VxSim::EventData &data)
 
void extensionUpdateCallback (const VxSim::EventData &data)
 
void processPartsUpdate (const VxSim::EventData &data)
 
void partsUpdateCallback (const VxSim::EventData &data)
 

Protected Attributes

std::deque< OperationEventmyQueuedOperations
 
int myNumberOfOperationsPerFrame
 
VxSim::EventListener myExtensionUpdateListener
 
VxSim::EventListener myPartsUpdateListener
 

Member Typedef Documentation

◆ OperationEvent

using makVre::DtVxSimModule::OperationEvent = std::pair<Operation, VxSim::EventData>

Pair of operation type and event data for queued operations.

Member Enumeration Documentation

◆ Operation

Operation types that can be queued for processing.

Enumerator
PARTS_UPDATE 

Update operation for Vortex parts.

EXTENSION_UPDATE 

Update operation for Vortex extensions.

Constructor & Destructor Documentation

◆ DtVxSimModule()

makVre::DtVxSimModule::DtVxSimModule ( VxSim::VxSimulatorModule * iProxy)

Constructor.

Initializes the module with the provided simulator module proxy.

Parameters
iProxyPointer to the simulator module proxy

◆ ~DtVxSimModule()

virtual makVre::DtVxSimModule::~DtVxSimModule ( )
overridevirtual

Destructor.

Member Function Documentation

◆ onApplicationModeChange()

virtual void makVre::DtVxSimModule::onApplicationModeChange ( VxSim::eApplicationMode previous,
VxSim::eApplicationMode next )
overridevirtual

Handles application mode changes.

Called when the Vortex application transitions between modes (e.g., edit mode, simulation mode).

Parameters
previousPrevious application mode
nextNew application mode

◆ onAddToApplication()

virtual void makVre::DtVxSimModule::onAddToApplication ( VxSim::VxApplication * application)
overridevirtual

Called when this module is added to the Vortex application.

Registers event listeners for extension and parts update events.

Parameters
applicationPointer to the Vortex application

◆ onRemoveFromApplication()

virtual void makVre::DtVxSimModule::onRemoveFromApplication ( VxSim::VxApplication * application)
overridevirtual

Called when this module is removed from the Vortex application.

Unregisters event listeners and performs cleanup.

Parameters
applicationPointer to the Vortex application

◆ onPreUpdate()

virtual void makVre::DtVxSimModule::onPreUpdate ( VxSim::eApplicationMode mode)
overridevirtual

Called before each simulation update.

Processes a limited number of queued operations per frame to avoid performance issues.

Parameters
modeCurrent application mode

◆ processExtensionUpdate()

void makVre::DtVxSimModule::processExtensionUpdate ( const VxSim::EventData & data)
protected

Processes an extension update operation.

Enables or disables a Vortex extension based on the event data.

Parameters
dataEvent data containing extension information and enable/disable flag

◆ extensionUpdateCallback()

void makVre::DtVxSimModule::extensionUpdateCallback ( const VxSim::EventData & data)
protected

Callback for extension update events.

Queues extension update operations for processing.

Parameters
dataEvent data for the extension update

◆ processPartsUpdate()

void makVre::DtVxSimModule::processPartsUpdate ( const VxSim::EventData & data)
protected

Processes a parts update operation.

Updates the control type of Vortex parts based on the event data.

Parameters
dataEvent data containing part information and control type

◆ partsUpdateCallback()

void makVre::DtVxSimModule::partsUpdateCallback ( const VxSim::EventData & data)
protected

Callback for parts update events.

Queues parts update operations for processing.

Parameters
dataEvent data for the parts update

Member Data Documentation

◆ kModuleKey

const VxSim::VxFactoryKey makVre::DtVxSimModule::kModuleKey
static

Factory key for the DtVxSimModule.

Unique identifier used to register and create instances of this module.

◆ kExtensionUpdate

const VxSim::EventId makVre::DtVxSimModule::kExtensionUpdate
static

Event ID for extension update operations.

Used to register and trigger extension update events.

◆ kPartsUpdate

const VxSim::EventId makVre::DtVxSimModule::kPartsUpdate
static

Event ID for parts update operations.

Used to register and trigger parts update events.

◆ myQueuedOperations

std::deque<OperationEvent> makVre::DtVxSimModule::myQueuedOperations
protected

Queue of operations to be processed.

◆ myNumberOfOperationsPerFrame

int makVre::DtVxSimModule::myNumberOfOperationsPerFrame
protected

Maximum number of operations to process per frame.

◆ myExtensionUpdateListener

VxSim::EventListener makVre::DtVxSimModule::myExtensionUpdateListener
protected

Listener for extension update events.

◆ myPartsUpdateListener

VxSim::EventListener makVre::DtVxSimModule::myPartsUpdateListener
protected

Listener for parts update events.


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