27#include <vrvCore/DtUniqueID.h>
29#include <vrvUtil/DtSignalConnectionManager.h>
31#include <vlutil/vlMutex.h>
39class DtSimulationAddress;
49class DtHumanCommandLineProcessor;
70class DtConfigurePlayerDialog;
239 virtual makVrv::DtDe&
de();
345 const DtEntityIdentifier&
id,
const std::string& station,
const std::string& displayLayout);
405 virtual std::list<DtPlayerStation*>&
players();
583 virtual bool setAppMode(
const std::string& mode,
bool changeMenus =
true,
bool isInitialSet =
false);
1247 std::function<void()>
f;
Provides attribute handling system for hierarchical data storage and manipulation.
Handle class for safe access to attributes.
Definition attributeHandle.h:30
Type-specific handle class for attributes.
Definition attributeHandle.h:181
Manager class for chat commands in VR-Engage.
Definition vreChatCommandsManager.h:89
UI panel for selecting and engaging with entities and roles.
Definition chooseRolePanel.h:60
Entity resolution and mapping system.
Definition entityResolver.h:52
Factory class for creating objects of different derived types.
Definition factory.h:79
Table-based access to Lua state for configuration data.
Definition initializer.h:38
Configuration initializer for VREngage components.
Definition initializer.h:80
Manager for instrument panels, gimbal sensors, and specialized views.
Definition instrumentPanelManager.h:44
Class for managing available entities and roles for engagement.
Definition playerCreationPalette.h:59
Top-level class representing the VR-Engage application.
Definition playerStationApp.h:163
virtual std::string const & getAppMode() const
Gets the current application mode.
virtual DtPlayerStationTempNotification * tempNotification()
Gets the temporary notification handler.
Definition playerStationApp.h:740
virtual std::list< DtPlayerStation * > & players()
Gets the list of all player stations.
virtual DtVreStatusListener * statusListener() const
Gets the status listener.
virtual bool destroyPlayerStation(const DtEntityIdentifier &)
Destroys a specific player station by entity identifier.
virtual bool setAppMode(const std::string &mode, bool changeMenus=true, bool isInitialSet=false)
Sets the current mode of the application.
std::string myPlayerStationName
Current player station type name.
Definition playerStationApp.h:1093
DtComponentFactory myComponentFactory
Factory objects.
Definition playerStationApp.h:1033
virtual void setSpectator(bool value)
Sets spectator mode state.
static bool isGroundOnly()
Checks if ground-only mode is active.
DtInitTable myMinionConfig
Minion mode configuration table.
Definition playerStationApp.h:990
virtual void observerLookAt(const DtEntityIdentifier &)
Makes the observer look at a single entity.
DtVreStatusPublisher * myStatusPublisher
Status publisher.
Definition playerStationApp.h:1169
bool myUse3DChooseRolePanel
3D role panel state
Definition playerStationApp.h:1155
DtPlayerStationTempNotification * myTempNotification
Temporary notification handler.
Definition playerStationApp.h:972
virtual DtComponentFactory & componentFactory()
Gets the component factory.
bool myAmSpectator
Spectator mode state.
Definition playerStationApp.h:1072
virtual DtVreSensorModeMapper * vreSensorModeMapper() const
Gets the sensor mode mapper.
virtual void detatchObserverIfAttachedTo(makVrv::DtElementID)
Detaches the observer if it is attached to the specified element.
virtual void clearPlayers()
Removes all player stations from the list without destroying them.
DtInputDeviceFactory * myInputDeviceFactory
Input device factory.
Definition playerStationApp.h:1043
DtPlayerStationStateManager * myStateManager
State manager.
Definition playerStationApp.h:1014
std::list< DtPlayerStation * > myPlayers
List of active player stations.
Definition playerStationApp.h:1056
DtInitializer * myInitializer
Initializers and configuration.
Definition playerStationApp.h:980
bool myMenuBarVisible
Menu bar visibility state.
Definition playerStationApp.h:1061
bool myDebugMode
Debug mode state.
Definition playerStationApp.h:1122
virtual void pause()
Pauses the simulation.
DtPlayerStationAppInputLogic * myInputLogic
Input logic handler.
Definition playerStationApp.h:1024
virtual std::string engageStationName()
Gets the name of the currently active VR-Engage station.
virtual std::string const & getPlayerStationDisplayLayout() const
Gets the current player station display layout.
virtual bool setNonPlayStateObserverMode(enum DtDimensionality dimensionality)
Sets the observer mode for non-play states.
void deferFunction(std::function< void()> &f, double delayInSeconds)
Defers a function to be executed after a time delay.
makVrv::DtSignalConnectionManager myConnections
Signal connection manager.
Definition playerStationApp.h:1009
virtual DtInitTable findInitTable(const std::string &name)
Finds a named initialization table.
virtual void run()
Runs the simulation.
void initStatusListener()
Initializes the status listener.
static bool isAirEnabled(bool b=false)
Air mode functions.
virtual DtInitializer & initializer()
Gets the application initializer.
virtual makVrv::DtObserver * setObserverMode(const std::string &name)
Sets the observer mode for the primary observer.
virtual DtSensorLibrary sensorLibrary() const
Gets the current sensor library.
virtual void setAttachEntity(DtEntityIdentifier const &entityId)
Sets the entity to which the observer is attached.
std::string myOldAppMode
Previous application mode.
Definition playerStationApp.h:1111
static bool isGroundEnabled(bool b=false)
Ground mode functions.
virtual void centerObserverOnTerrain()
Centers the observer on the terrain.
DtVreSensorModeMapper * myVreSensorModeMapper
Sensor mode mapper.
Definition playerStationApp.h:1218
DtEntityResolver * myEntityResolver
Entity resolver.
Definition playerStationApp.h:995
static bool isSensorOnly()
Checks if sensor-only mode is active.
virtual void loadPlugins()
Loads all plugins in the plugin directory.
DtPlayerStationApp(makVrv::DtDe &de)
Constructor.
virtual DtPlayerStation * findPlayerAt(int index)
Finds a player station at a specific index.
virtual DtPlayerCreationPalette & playerCreationPalette()
Gets the player creation palette.
std::string myNonPlayStateObserverMode2D
Observer modes for different states.
Definition playerStationApp.h:1183
virtual void shutdown()
Shuts down the application.
virtual void setIsDragging(bool dragging)
Sets the dragging state of the application window.
virtual bool isSpectator()
Spectator mode functions.
virtual void updateStatusPublisher()
Updates the status publisher with current state.
DtVreMessageResult minionModeBossMonitor(DtVreMessage *message)
Monitors the status of the boss station in minion mode.
virtual std::string applicationName()
Gets the application name.
std::map< int, int > myActiveHudTextureLookup
HUD texture reference count map.
Definition playerStationApp.h:1232
virtual DtChatCommandsManager & chatCommandManager()
Gets the chat command manager.
DtMutex myResourceMutex
Resource mutex.
Definition playerStationApp.h:1083
DtVreStatusListener * myStatusListener
Status listener.
Definition playerStationApp.h:1175
virtual void setAdminModeEnabled(bool enabled)
Enables or disables admin mode.
virtual DtPlayerStation * findPlayer(const DtEntityIdentifier &)
Finds a player station by entity identifier.
virtual bool virtualRealityAvailable()
Checks if VR support is available.
const DtAttributeHandle appAttributeStore() const
Gets the application attribute store (const version)
virtual bool getPlayFullScreen()
Gets the play fullscreen mode setting.
virtual void observerLookAt(const std::vector< DtEntityIdentifier > &)
Makes the observer look at multiple entities.
virtual DtVreObserverModeMapper * vreObserverModeMapper() const
Gets the observer mode mapper.
std::string myPlayerStationDisplayLayout
Current display layout name.
Definition playerStationApp.h:1098
makVrv::DtDe & myDe
Reference to the VR-Vantage display engine.
Definition playerStationApp.h:1088
void initMinionMonitor()
Initializes the minion monitor.
virtual DtPlayerStation * findPlayerStation(const DtEntityIdentifier &, const std::string &stationName)
Finds a player station by entity identifier and station name.
virtual void setPlayerStationName(const std::string &playerType)
Sets the current player station type name.
static bool isSensorEnabled(bool b=false)
Sensor mode functions.
virtual DtPlayerStation * findPlayer(makVrv::DtElementID)
Finds a player station by element ID.
DtVreMessageResult handleSessionSmsListMessage(DtVreMessage *message)
Handles session SMS list messages.
virtual void toggleAppMode()
Toggles between available application modes.
bool myPlayFullScreen
Full screen mode state for play mode.
Definition playerStationApp.h:1066
virtual void observerDetach()
Detaches the observer from any entity it may be following.
virtual std::string const & getPlayerStationName() const
Gets the current player station type name.
bool myFixedRoleMode
Fixed role mode state.
Definition playerStationApp.h:1139
virtual makVrv::DtDe & de()
Gets a reference to the VR-Vantage display engine.
virtual void setFixedRole(bool on=true)
Sets the fixed role mode state.
DtAttributeHandle appAttributeStore()
Gets the application attribute store.
virtual void initialize()
Initializes the application.
DtVreMessageResult handleSubscribeToBoss(DtVreMessage *message)
Requests the boss station to forward messages.
virtual bool destroyPlayerStation()
Destroys all player stations.
virtual DtPlayerStationStateManager & stateManager()
Gets the application state manager.
virtual void setFullScreen(bool fullscreen)
Sets the application's fullscreen state.
virtual DtEntityIdentifier getAttachEntity()
Gets the entity to which the observer is currently attached.
std::shared_ptr< DtChatCommandsManager > myChatCommandManager
Chat commands manager.
Definition playerStationApp.h:1049
virtual DtInputDeviceFactory * inputDeviceFactory()
Gets the input device factory.
virtual DtPlayerStation * createPlayerStation()
Creates a new player station with default settings.
DtInstrumentPanelManager * myInstrumentPanelManager
Application managers.
Definition playerStationApp.h:1004
void initStatusPublisher()
Initializes the status publisher.
static DtPlayerStationApp * instance()
Gets the singleton instance of this class.
int incrementActiveHudTexture(int textureID)
Increments the active HUD texture count.
virtual DtChooseRolePanel * getChoosePlayerPanel()
Gets the role selection panel.
std::string myObserverName
Application-level observer name.
Definition playerStationApp.h:1226
virtual unsigned long engageStationId()
Gets the unique identifier for this VR-Engage application instance.
virtual bool isDragging()
Checks if the application window is being dragged.
virtual DtPlayerStation * findPlayer()
Finds the first player station in the list.
std::string myAppMode
Admin mode variables.
Definition playerStationApp.h:1106
int getActiveHudTextureCount(int textureID)
Gets the current HUD texture count.
virtual ~DtPlayerStationApp()
Virtual destructor.
DtVreInputManager * myInputManager
Input manager.
Definition playerStationApp.h:1019
bool isTypeAllowed(DtEntityType entityType)
Checks if an entity type is allowed.
DtChooseRolePanel * myChoosePlayerPanel
Role selection panel.
Definition playerStationApp.h:1133
std::list< DeferredFunc > myDeferredFunList
List of deferred functions.
Definition playerStationApp.h:1270
virtual bool setPlayStateObserverMode()
Sets the observer mode for play state.
boost::signalslib::signal< void()> signal_menuBarVisibilityChanged
Signal for menu bar visibility changes.
Definition playerStationApp.h:817
virtual void setPlayFullScreen(bool fullscreen)
Sets the play fullscreen mode.
std::string myNonPlayStateObserverMode3D
Observer mode for 3D non-play states.
Definition playerStationApp.h:1188
bool isImguiVisible()
Checks if ImGui is visible.
static bool isCombinedMode()
Checks if combined mode is active.
bool myEnableVRVControls
VR-Vantage controls state.
Definition playerStationApp.h:1149
static DtPlayerStationApp * theApp
Single instance of the application.
Definition playerStationApp.h:968
virtual bool observerHasDefault(std::string *outName=NULL)
Checks if the observer has a default position.
virtual bool isAdminModeEnabled()
Checks if admin mode is enabled.
DtPlayerCreationPalette myPlayerCreationPalette
Player creation palette.
Definition playerStationApp.h:1128
DtInitTable myStartupConfig
Startup configuration table.
Definition playerStationApp.h:985
void initVirtualReality()
Initializes virtual reality support.
virtual bool isFullScreen()
Checks if the application is currently in fullscreen mode.
virtual void findMainRenderChannel()
Finds the main rendering channel.
virtual std::string pluginPath() const
Gets the path to the plugin directory.
bool myAdminModeEnabled
Admin mode enabled state.
Definition playerStationApp.h:1116
virtual void quit()
Initiates application termination.
virtual bool isChooseRolePanel3D()
Checks if the 3D role selection panel is enabled.
std::string myPlayStateObserverMode
Observer mode for play state.
Definition playerStationApp.h:1193
static bool isAirOnly()
Checks if air-only mode is active.
void deferFunction(std::function< void()> &f, int delayInTicks=0)
Defers a function to be executed after a number of ticks.
virtual void rewind()
Rewinds the simulation.
virtual void setPlayerStationDisplayLayout(const std::string &displayLayout)
Sets the display layout for the current player station.
DtVreObserverModeMapper * myVreObserverModeMapper
Observer and sensor mode mappers.
Definition playerStationApp.h:1209
virtual bool isMenuBarVisible() const
Checks if the menu bar is visible.
virtual DtConnectorFactory & connectorFactory()
Gets the connector factory.
virtual DtVreInputManager & inputManager()
Gets the input manager.
virtual DtInitTable startupConfig()
Gets the startup configuration data.
virtual std::string observerName() const
Gets the name of the application-level observer.
virtual bool destroyPlayerStation(const DtEntityIdentifier &, const std::string &stationName)
Destroys a specific player station by entity identifier and station name.
virtual void resetView()
Resets the view in the Choose Role panel.
virtual void updateMenus(const std::string &appMode)
Updates the application menus based on the specified mode.
virtual bool fixedRoleMode()
Role mode functions.
DtConnectorFactory myConnectorFactory
Connector factory.
Definition playerStationApp.h:1038
DtVreMessageResult handleUnsubscribeFromBoss(DtVreMessage *message)
Requests the boss station to stop forwarding messages.
virtual bool loadVreDll(const std::string &filename)
Loads a VR-Engage DLL plugin.
virtual bool isVRVControlsEnabled()
Checks if VRV controls are enabled.
int decrementActiveHudTexture(int textureID)
Decrements the active HUD texture count.
virtual void tick(double dt)
Updates the application state.
DtSensorLibrary mySensorLibrary
Current sensor library in use.
Definition playerStationApp.h:1163
DtEntityIdentifier myOwnEntityId
Entity identifier for the owned entity.
Definition playerStationApp.h:1078
DtAttributeHandleType< DtPlayerStationApp * > myAppStore
Application instance attribute store.
Definition playerStationApp.h:1238
virtual DtPlayerStation * createPlayerStation(const DtEntityIdentifier &id, const std::string &station, const std::string &displayLayout)
Creates a new player station with specific settings.
virtual void observerFollow(const DtEntityIdentifier &)
Makes the observer follow an entity.
virtual void observerReset()
Resets the observer to its default position.
bool myIsDragging
Window dragging state.
Definition playerStationApp.h:1144
Class for managing the user interface for engaged roles.
Definition playerStation.h:51
Manager for player station states and state transitions.
Definition playerStationStateManager.h:42
Temporary notification UI component for VR-Engage.
Definition playerStationTempNotification.h:36
Abstract base class for all VREngage messages.
Definition vreMessage.h:50
Mapper for translating between observer mode identifiers and actual mode names.
Definition vreObserverModeMapper.h:46
Mapper for translating between sensor mode identifiers and actual mode names.
Definition vreSensorModeMapper.h:46
Monitors status messages from VR-Engage player stations.
Definition vreStatusListener.h:37
Status publisher for VREngage applications.
Definition vrengageStatusPublisher.h:39
Defines the DtConnector base class for simulation protocol connections.
Provides a template-based factory system for object creation.
Defines export macros for the VR-Engage Player Station library.
#define PLAYERSTATION_DLL
Definition export.h:24
Provides configuration initialization for VREngage components.
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
bool(*)(DtPlayerStationApp *app) InitPlayerStationDllFunction
Function pointer type for plugin initialization.
Definition playerStationApp.h:135
DtFactory< DtInputDevice > DtDeviceFactory
Factory type for input devices.
Definition playerStationApp.h:126
DtDimensionality
Enumeration for dimensionality of the view.
Definition playerStationApp.h:151
@ Dt3D
3D view (perspective view)
Definition playerStationApp.h:153
@ Dt2D
2D view (map/plan view)
Definition playerStationApp.h:152
DtFactory< DtPlayerComponent > DtComponentFactory
Type definitions for factory classes.
Definition playerStationApp.h:120
enum _DtSensorLibrary { CAMERA_FX=0, SENSOR_FX } DtSensorLibrary
Enumeration of available sensor libraries for observer modes.
Definition playerStationApp.h:141
DtVreMessageResult
Enumeration of possible message handling results.
Definition vreMessage.h:33
DtFactory< DtConnector > DtConnectorFactory
Factory type for connectors.
Definition playerStationApp.h:123
Definition appLauncherComponent.h:28
Defines the DtPlayerComponent base class for VR-Engage role components.
Defines the DtPlayerCreationPalette class for managing available entity roles.
DeferredFunc(std::function< void()> &_f, int _ticks, double _time)
Constructor.
Definition playerStationApp.h:1259
std::function< void()> f
Function to be executed.
Definition playerStationApp.h:1247
int ticks
Number of ticks to wait before execution.
Definition playerStationApp.h:1250
double time
Time in seconds to wait before execution.
Definition playerStationApp.h:1253
Defines the base class for all VREngage messages.