14#include <vrfobjcore/physicalWorld.h>
16#include <Vx/VxUniverse.h>
18#include <VxSim/VxSmartInterface.h>
19#include <VxSim/IMaterialTable.h>
20#include <VxSim/VxSimulationState.h>
22#include <VxPluginSystem/VxPluginManagerListener.h>
28class DtLocalObjectManager;
29class DtSimulationServices;
61 explicit DtVortexPhysicalWorld(DtSimulationServices* simManager, DtLocalObjectManager* localObjManager, DtCgf* cgf);
74 virtual void tick()
override;
331 VxSim::VxSmartInterface<VxContent::Scene>
myScene;
Class for converting between different coordinate systems.
Definition coordConverter.h:31
Configuration initializer for VREngage components.
Definition initializer.h:80
Manages collision detection and handling between Vortex physics objects and non-Vortex simulated obje...
Definition vortexCollisionProxyGenerator.h:45
Provides debugging capabilities for Vortex physics engine.
Definition vortexDebug.h:36
Manages dynamic terrain events and updates in the Vortex physics engine.
Definition vortexDynamicTerrainHandler.h:52
Main class that manages terrain translation between VR-Forces and Vortex.
Definition vortexPagedTerrain.h:67
Producer that manages terrain in the Vortex physics universe.
Definition vortexPagedTerrainProducer.h:31
DtCgf * myCgf
Pointer to the CGF instance.
Definition vortexPhysicalWorld.h:315
void setCheckToCoordinateOrigin(bool val)
Set for Check distance from origin.
virtual makVre::DtVortexCollisionProxyGenerator * getCollisionProxyGenerator()
Gets the collision proxy generator.
std::shared_ptr< DtVortexDebug > myVortexDebug
Debug interface for Vortex.
Definition vortexPhysicalWorld.h:363
bool isDestructingCGF()
Checks if the CGF is being destroyed.
static void preLoadScenarioCallback(DtScenario &scenario, void *data)
Static callback for pre-load scenario events.
DtVortexPagedTerrainInterface * myPagedTerrainInterface
Interface for paged terrain.
Definition vortexPhysicalWorld.h:343
std::shared_ptr< DtVxPluginManagerListener > myListener
Plugin manager listener.
Definition vortexPhysicalWorld.h:349
virtual void resetVortexApplication()
Resets the Vortex application to its initial state.
VxSim::VxSmartInterface< VxSim::IMaterialTable > myMaterialTable
Material table for physics interactions.
Definition vortexPhysicalWorld.h:322
virtual DtVortexPagedTerrainProducer * pagedTerrainProducer()
Gets the current paged terrain producer.
virtual void updateImgui()
Updates ImGui interface elements.
virtual void processScenarioRunCallback()
Processes scenario run events.
virtual void updateCoordinateConverterFromGeocentric(const DtVector &worldPos)
Updates the geocentric coordinate converter to a new position Given a new world position,...
virtual void processPostTickInitCallback()
Processes post-tick initialization events.
std::shared_ptr< makVre::DtVortexDynamicTerrainHandler > myDynamicTerrainHandler
Handler for dynamic terrain.
Definition vortexPhysicalWorld.h:366
virtual ~DtVortexPhysicalWorld() override
Virtual destructor.
makVre::DtVortexCollisionProxyGenerator * myVortexCollisionManager
Collision proxy generator for handling collisions.
Definition vortexPhysicalWorld.h:318
boost::signals2::connection myFirstObjectCreatedConnection
Definition vortexPhysicalWorld.h:360
VxSim::VxSmartInterface< VxContent::Scene > vortexScene()
Gets the Vortex scene instance.
virtual void processPreLoadTerrain()
Processes pre-load terrain events.
static void postLoadTerrainCallback(const DtFilename &terrain, void *data)
Static callback for post-load terrain events.
double checkDistanceToCoordinateOrigin() const
Gets the distance to check to the coordinate origin. Distance is in km. Set in the vortexConfig....
virtual void processScenarioPauseCallback()
Processes scenario pause events.
virtual std::shared_ptr< makVre::DtVortexDynamicTerrainHandler > vortexDynamicTerrainHandler()
Gets the dynamic terrain handler.
virtual void updateCoordinateConverter()
Updates the coordinate converter based on different conditions Called from.
virtual std::shared_ptr< DtVreThreadPool > threadPool()
Gets the thread pool for paged terrain.
static DtVortexPhysicalWorld * thePhysicalWorld
Singleton instance of the physical world.
Definition vortexPhysicalWorld.h:312
bool myOverrideCoordinateConverterLocation
Definition vortexPhysicalWorld.h:359
void setCheckDistanceToCoordinateOrigin(double val)
The distance to check for how the vehicle from the coordinate origin. Distance is in km....
makVre::DtCoordinateConvert myCoordConverter
Coordinate converter for transformations.
Definition vortexPhysicalWorld.h:358
makVre::DtInitializer * configInitializer()
Gets the configuration initializer.
static void renderImguiCallback(void *args)
Static callback for ImGui rendering events.
makVre::DtCoordinateConvert * geocentricCoordConverter()
Gets the geocentric coordinate converter.
static void postLoadScenarioCallback(const DtScenario &scenario, void *data)
Static callback for post-load scenario events.
virtual std::shared_ptr< DtVortexDebug > vortexDebug()
Gets the debug interface.
static void scenarioRunCallback(void *data)
Static callback for scenario run events.
virtual void processPostLoadTerrain()
Processes post-load terrain events.
static void postTickInitCallback(void *data)
Static callback for post-tick initialization events.
Vx::VxSmartPtr< VxSim::VxApplication > vortexApplication()
Gets the Vortex application instance.
virtual bool initializeCollisionManager(DtCgf *cgf)
Initializes the collision manager.
static void preScenarioRollbackCallback(void *data)
Static callback for pre-scenario rollback events.
virtual void processPostLoadScenario()
Processes post-load scenario events.
virtual void setUniverse(Vx::VxUniverse *universe)
Sets the Vortex universe instance.
makVre::DtInitializer * myConfigInitializer
Configuration initializer.
Definition vortexPhysicalWorld.h:355
Vx::VxSmartPtr< VxSim::VxApplication > myApplication
Vortex application instance.
Definition vortexPhysicalWorld.h:334
bool myCheckToCoordinateOrigin
Definition vortexPhysicalWorld.h:370
std::shared_ptr< DtVreThreadPool > myThreadPool
Thread pool for parallel processing.
Definition vortexPhysicalWorld.h:352
Vx::VxUniverse * myUniverse
Vortex universe instance.
Definition vortexPhysicalWorld.h:346
static void postCloseScenarioCallback(void *data)
Static callback for post-close scenario events.
DtVortexPhysicalWorld(DtSimulationServices *simManager, DtLocalObjectManager *localObjManager, DtCgf *cgf)
Constructs a new Vortex physical world.
VxSim::VxSmartInterface< DtVxSimModule > myModule
Vortex simulation module.
Definition vortexPhysicalWorld.h:325
Vx::VxSmartPtr< VxSim::VxSimulationState > mySimulationState
Simulation state for Vortex.
Definition vortexPhysicalWorld.h:337
DtVortexPagedTerrainProducer * myPagedTerrainProducer
Producer for paged terrain.
Definition vortexPhysicalWorld.h:340
virtual void processPostCloseScenarioCallback()
Processes post-close scenario events.
virtual void setPagedTerrainProducer(DtVortexPagedTerrainProducer *producer)
Sets the paged terrain producer.
static void preLoadTerrainCallback(const DtFilename &scenario, void *data)
Static callback for pre-load terrain events.
static DtVortexPhysicalWorld * instance()
Gets the singleton instance of the Vortex Physical World.
bool checkToCoordinateOrigin() const
Check for how far we are from the coordinate origin. Purely informational check, provides no simulati...
virtual DtVortexPagedTerrainInterface * pagedTerrain()
Gets the current paged terrain interface.
static void scenarioPauseCallback(void *data)
Static callback for scenario pause events.
bool myDestructingCGF
Flag indicating if CGF is being destroyed.
Definition vortexPhysicalWorld.h:309
virtual void processPreLoadScenario()
Processes pre-load scenario events.
virtual void processPreCloseScenarioCallback()
Processes pre-close scenario events.
virtual void updateVortex(const std::function< bool(void)> func)
Updates Vortex until a condition is met.
virtual void processPreScenarioRewindCallback()
Processes pre-scenario rewind events.
virtual void processCgfAboutToBeDestroyed()
Processes CGF destruction events.
virtual void pauseVortexApplication()
Pauses the Vortex application.
virtual void updateVortex(VxSim::eApplicationMode targetMode)
Updates Vortex until a specific application mode is reached.
virtual void runVortexApplication()
Starts the Vortex application.
Vx::VxSmartPtr< VxSim::VxExtension > myTerrainExt
Terrain extension for Vortex.
Definition vortexPhysicalWorld.h:328
virtual void setVortexDynamicTerrainHandler(std::shared_ptr< makVre::DtVortexDynamicTerrainHandler > handler)
Sets the dynamic terrain handler.
virtual void processPostScenarioRewindCallback()
Processes post-scenario rewind events.
virtual void setPagedTerrain(DtVortexPagedTerrainInterface *pagedTerrainInterface)
Sets the paged terrain interface.
virtual Vx::VxMaterialTable * getMaterialTable()
Gets the material table.
double myCheckDistanceToCoordinateOrigin
Definition vortexPhysicalWorld.h:369
static void postScenarioRollbackCallback(void *data)
Static callback for post-scenario rollback events.
static void cgfAboutToBeDestroyed(void *data)
Static callback for CGF destruction events.
virtual DtLocalObjectManager * localObjectManager()
Gets the local object manager.
static void preCloseScenarioCallback(void *data)
Static callback for pre-close scenario events.
virtual void updateUniverseSettings(Vx::VxUniverse *univ)
Updates the physics universe settings.
virtual void tick() override
Main update function for the physics simulation.
VxSim::VxSmartInterface< VxContent::Scene > myScene
Vortex scene interface.
Definition vortexPhysicalWorld.h:331
virtual void initializeVortexApplication()
Initializes the Vortex application.
virtual Vx::VxUniverse * getUniverse()
Gets the current Vortex universe instance.
Listener interface for Vortex plugin manager events.
Definition vortexPhysicalWorld.h:379
DtVxPluginManagerListener()
Constructor.
std::set< std::string > myIgnoredNames
Set of plugin names to ignore.
Definition vortexPhysicalWorld.h:397
virtual ~DtVxPluginManagerListener() override
Destructor.
virtual bool onAboutToInitialize(const VxPluginSystem::VxPluginInfo &pluginInfo) override
Called before a plugin is initialized.
Simulator module that integrates VR-Forces with the Vortex physics engine.
Definition vortexIntegrationModule.h:45
Provides coordinate conversion functionality between different coordinate systems.
Export macros for the VR-Forces Vortex extension library.
#define VREVRFVORTEX_DLL
Export macro for non-Windows platforms.
Definition export.h:30
Definition vortexIntegrationModule.h:23
Include export definitions for this library.
Definition glsVreMessageUtil.h:49