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

Detailed Description

DtMixedRealityUpdater integrates camera video feeds with the virtual environment to create a mixed reality experience. It manages a masking object that blends real-world camera imagery with virtual content, handles chroma keying for green screen effects, and provides UI controls for adjusting mixed reality parameters.

#include <mixedRealityUpdater.h>

Inheritance diagram for makVre::DtMixedRealityUpdater:
[legend]

Public Member Functions

 DtMixedRealityUpdater ()
 
virtual ~DtMixedRealityUpdater () override
 
virtual bool initialize (DtPlayerStation *player, DtInitTable &config) override
 
virtual bool postInitialize () override
 
virtual void tick (double dt) override
 
virtual void shutdown () override
 
virtual const char * type () const override
 
- Public Member Functions inherited from makVre::DtPlayerComponent
 DtPlayerComponent ()
 
virtual ~DtPlayerComponent ()
 
virtual void setName (const std::string &name)
 
virtual const std::string & name ()
 
virtual DtPlayerStationplayer ()
 
virtual DtAttributeHandleplayerAttributeStore ()
 
virtual const DtAttributeHandleplayerAttributeStore () const
 

Protected Member Functions

virtual void updateMask ()
 
virtual void handleReloadShader ()
 
virtual makVre::DtVreMessageResult handleMenuActionMessage (makVre::DtVreMessage *msg)
 
virtual void setCockpitControlsVisible (bool visible)
 
- Protected Member Functions inherited from makVre::DtPlayerComponent
virtual void initializeStateAttributes ()
 

Protected Attributes

makVrv::DtObserver * myObserver
 
makVrv::DtVirtualRealityDriver * myVrDriver
 
osg::ref_ptr< osg::MatrixTransform > myMaskTransform
 
osg::ref_ptr< osg::Program > myMaskShader
 
DtVector myMaskColor
 
int myAlgorithm
 
float myA
 
float myB
 
float myC
 
float myD
 
float ix
 
float iy
 
float iz
 
float ip
 
bool myShowCameraMenu
 
std::string myMaskPath
 
bool myStickNeedsSwitch
 
- Protected Attributes inherited from makVre::DtPlayerComponent
std::string myName
 
DtInitTable myConfig
 
DtPlayerStationmyPlayer
 
makVrv::DtDe * myDe
 
DtEntityResolvermyResolver
 
DtAttributeCallbackManager myAttributeCallbacks
 

Constructor & Destructor Documentation

◆ DtMixedRealityUpdater()

makVre::DtMixedRealityUpdater::DtMixedRealityUpdater ( )

Constructor for DtMixedRealityUpdater.

Initializes component state with default values

◆ ~DtMixedRealityUpdater()

virtual makVre::DtMixedRealityUpdater::~DtMixedRealityUpdater ( )
overridevirtual

Virtual destructor for DtMixedRealityUpdater.

Member Function Documentation

◆ initialize()

virtual bool makVre::DtMixedRealityUpdater::initialize ( DtPlayerStation * player,
DtInitTable & config )
overridevirtual

Initializes the mixed reality updater component.

Parameters
playerPointer to the player station this component belongs to
configConfiguration table containing mixed reality settings
Returns
True if initialization succeeded, false otherwise

Reads configuration parameters for the mixed reality system, including masking algorithm settings, color parameters, and camera projection geometry path

Reimplemented from makVre::DtPlayerComponent.

References makVre::DtPlayerComponent::player().

◆ postInitialize()

virtual bool makVre::DtMixedRealityUpdater::postInitialize ( )
overridevirtual

Performs post-initialization after all components are initialized.

Returns
True if post-initialization succeeded, false otherwise

Acquires the VR driver, sets up the masking object, and starts the mixed reality system

Reimplemented from makVre::DtPlayerComponent.

◆ tick()

virtual void makVre::DtMixedRealityUpdater::tick ( double dt)
overridevirtual

Called every frame to update the mixed reality state.

Parameters
dtDelta time since the last frame in seconds

Handles cockpit control visibility on first update and processes UI interactions for mixed reality parameter adjustments

Implements makVre::DtPlayerComponent.

◆ shutdown()

virtual void makVre::DtMixedRealityUpdater::shutdown ( )
overridevirtual

Shuts down the mixed reality updater component.

Disables mixed reality mode, removes the mask object, disconnects signals, and restores cockpit control visibility

Reimplemented from makVre::DtPlayerComponent.

◆ type()

virtual const char * makVre::DtMixedRealityUpdater::type ( ) const
overridevirtual

Returns the component type identifier.

Returns
The component type string

Implements makVre::DtPlayerComponent.

◆ updateMask()

virtual void makVre::DtMixedRealityUpdater::updateMask ( )
protectedvirtual

Updates the mask transform and shader parameters.

Called each frame to update the mask transform based on the observer's position and orientation, and to update shader parameters for chroma keying

◆ handleReloadShader()

virtual void makVre::DtMixedRealityUpdater::handleReloadShader ( )
protectedvirtual

Handles shader reload requests.

Reloads the mask shader files and updates the state set with the new shader

◆ handleMenuActionMessage()

virtual makVre::DtVreMessageResult makVre::DtMixedRealityUpdater::handleMenuActionMessage ( makVre::DtVreMessage * msg)
protectedvirtual

Handles menu action messages for mixed reality controls.

Parameters
msgThe menu action message
Returns
Message handling result indicating if the message was handled

Processes menu actions, currently supporting toggling the AR camera menu

◆ setCockpitControlsVisible()

virtual void makVre::DtMixedRealityUpdater::setCockpitControlsVisible ( bool visible)
protectedvirtual

Sets the visibility of cockpit controls.

Parameters
visibleTrue to show cockpit controls, false to hide them

Manipulates the entity's appearance to show or hide virtual cockpit controls, typically hiding them when in mixed reality mode to see real controls

Member Data Documentation

◆ myObserver

makVrv::DtObserver* makVre::DtMixedRealityUpdater::myObserver
protected

Pointer to the observer used for positioning the mask.

◆ myVrDriver

makVrv::DtVirtualRealityDriver* makVre::DtMixedRealityUpdater::myVrDriver
protected

Pointer to the virtual reality driver that provides camera integration.

◆ myMaskTransform

osg::ref_ptr<osg::MatrixTransform> makVre::DtMixedRealityUpdater::myMaskTransform
protected

Transform node for the masking geometry.

◆ myMaskShader

osg::ref_ptr<osg::Program> makVre::DtMixedRealityUpdater::myMaskShader
protected

Shader program used for blending camera imagery with virtual content.

◆ myMaskColor

DtVector makVre::DtMixedRealityUpdater::myMaskColor
protected

Color used for chroma keying (typically green for green screen)

◆ myAlgorithm

int makVre::DtMixedRealityUpdater::myAlgorithm
protected

Selected chroma keying algorithm (0-4 for different methods)

◆ myA

float makVre::DtMixedRealityUpdater::myA
protected

First algorithm parameter, meaning varies by algorithm type.

◆ myB

float makVre::DtMixedRealityUpdater::myB
protected

Second algorithm parameter, meaning varies by algorithm type.

◆ myC

float makVre::DtMixedRealityUpdater::myC
protected

Third algorithm parameter, meaning varies by algorithm type.

◆ myD

float makVre::DtMixedRealityUpdater::myD
protected

Fourth algorithm parameter, meaning varies by algorithm type.

◆ ix

float makVre::DtMixedRealityUpdater::ix
protected

Camera X offset in millimeters.

◆ iy

float makVre::DtMixedRealityUpdater::iy
protected

Camera Y offset in millimeters.

◆ iz

float makVre::DtMixedRealityUpdater::iz
protected

Camera Z offset in millimeters.

◆ ip

float makVre::DtMixedRealityUpdater::ip
protected

Camera pitch offset in degrees.

◆ myShowCameraMenu

bool makVre::DtMixedRealityUpdater::myShowCameraMenu
protected

Flag indicating whether to show the camera adjustment menu.

◆ myMaskPath

std::string makVre::DtMixedRealityUpdater::myMaskPath
protected

Path to the camera projection geometry (mask model)

◆ myStickNeedsSwitch

bool makVre::DtMixedRealityUpdater::myStickNeedsSwitch
protected

Flag indicating if cockpit controls visibility needs to be toggled.


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