This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
专业(SIM)
UnigineEditor
界面概述
资源工作流程
版本控制
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
创建内容
内容优化
材质
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Unigine::VRMixedReality Class

Header: #include <UnigineVRMixedReality.h>

The class is used for mixed reality management in Varjo devices.

VRMixedReality Class

枚举

BLEND_MASKING_MODE#

Name说明/描 述
BLEND_MASKING_MODE_BEGIN = 0The first element to be used for iteration.
BLEND_MASKING_MODE_DISABLED = 0Masking mode is disabled.
BLEND_MASKING_MODE_RESTRICT_VIDEO_TO_MASK = 1Show the video pass-through image (VST) in the mask. Can be used with chroma key.
BLEND_MASKING_MODE_RESTRICT_VR_TO_MASK = 2Show VR in the mask. Can be used with chroma key.
BLEND_MASKING_MODE_RESTRICT_VR_TO_CHROMAKEY_REDUCED_BY_MASK = 3Show VR in the mask and chroma elsewhere. Requires chroma key.
BLEND_MASKING_MODE_END = 3The last element to be used for iteration.

CAMERA_PROPERTY_MODE#

Name说明/描 述
CAMERA_PROPERTY_MODE_DISABLED = 0The camera property adjustment is disabled.
CAMERA_PROPERTY_MODE_AUTO = 1Automatic property adjustment for the camera.
CAMERA_PROPERTY_MODE_MANUAL = 2Manual property adjustment for the camera. In this mode you can set the desired property value (exposure time correction, white balance correction, ISO) manually via the corresponding methods.

CAMERA_EXPOSURE_TIME#

Name说明/描 述
CAMERA_EXPOSURE_TIME_UNKNWON = 0The camera exposure time is not specified.
CAMERA_EXPOSURE_TIME_BEGIN = 1The first element to be used for iteration.
CAMERA_EXPOSURE_TIME_VALUE_91_MS = 1The camera exposure time value equal to 91 K.
CAMERA_EXPOSURE_TIME_VALUE_125_MS = 2The camera exposure time value equal to 125 K.
CAMERA_EXPOSURE_TIME_VALUE_250_MS = 3The camera exposure time value equal to 250 K.
CAMERA_EXPOSURE_TIME_VALUE_500_MS = 4The camera exposure time value equal to 500 K.
CAMERA_EXPOSURE_TIME_VALUE_1000_MS = 5The camera exposure time value equal to 1000 K.
CAMERA_EXPOSURE_TIME_VALUE_2000_MS = 6The camera exposure time value equal to 2000 K.
CAMERA_EXPOSURE_TIME_VALUE_4000_MS = 7The camera exposure time value equal to 4000 K.
CAMERA_EXPOSURE_TIME_VALUE_8000_MS = 8The camera exposure time value equal to 8000 K.
CAMERA_EXPOSURE_TIME_END = 8The last element to be used for iteration.

CAMERA_WHITE_BALANCE#

Name说明/描 述
CAMERA_WHITE_BALANCE_UNKNWON = 0The camera white balance value is not specified.
CAMERA_WHITE_BALANCE_BEGIN = 1The first element to be used for iteration.
CAMERA_WHITE_BALANCE_VALUE_2000_K = 1The camera white balance value equal to 2000 K.
CAMERA_WHITE_BALANCE_VALUE_3000_K = 2The camera white balance value equal to 3000 K.
CAMERA_WHITE_BALANCE_VALUE_3500_K = 3The camera white balance value equal to 3500 K.
CAMERA_WHITE_BALANCE_VALUE_4200_K = 4The camera white balance value equal to 4200 K.
CAMERA_WHITE_BALANCE_VALUE_5000_K = 5The camera white balance value equal to 5000 K.
CAMERA_WHITE_BALANCE_VALUE_5400_K = 6The camera white balance value equal to 5400 K.
CAMERA_WHITE_BALANCE_VALUE_6500_K = 7The camera white balance value equal to 6500 K.
CAMERA_WHITE_BALANCE_VALUE_8000_K = 8The camera white balance value equal to 8000 K.
CAMERA_WHITE_BALANCE_VALUE_12000_K = 9The camera white balance value equal to 12000 K.
CAMERA_WHITE_BALANCE_END = 9The last element to be used for iteration.

CAMERA_ISO#

Name说明/描 述
CAMERA_ISO_UNKNWON = 0The camera ISO value is not specified.
CAMERA_ISO_BEGIN = 1The first element to be used for iteration.
CAMERA_ISO_GAIN_100 = 1The camera ISO value equal to 100.
CAMERA_ISO_GAIN_200 = 2The camera ISO value equal to 200.
CAMERA_ISO_GAIN_400 = 3The camera ISO value equal to 400.
CAMERA_ISO_GAIN_800 = 4The camera ISO value equal to 800.
CAMERA_ISO_GAIN_1600 = 5The camera ISO value equal to 1600.
CAMERA_ISO_GAIN_3200 = 6The camera ISO value equal to 3200.
CAMERA_ISO_GAIN_6400 = 7The camera ISO value equal to 6400.
CAMERA_ISO_END = 7The last element to be used for iteration.

CAMERA_FLICKER_COMPENSATION#

Name说明/描 述
CAMERA_FLICKER_COMPENSATION_UNKNWON = 0The camera flicker compensation value is not specified.
CAMERA_FLICKER_COMPENSATION_BEGIN = 1The first element to be used for iteration.
CAMERA_FLICKER_COMPENSATION_FREQ_50_HZ = 1The camera flicker compensation value equal to 50 Hz.
CAMERA_FLICKER_COMPENSATION_FREQ_60_HZ = 2The camera flicker compensation value equal to 60 Hz.
CAMERA_FLICKER_COMPENSATION_END = 2The last element to be used for iteration.

CUBEMAP_MODE#

Name说明/描 述
CUBEMAP_MODE_BEGIN = 0The first element to be used for iteration.
CUBEMAP_MODE_DISABLED = 0The cubemap streaming from AR cameras is disabled.
CUBEMAP_MODE_ENVIRONMENT_OVERLAP = 1The environment texture substitutes the sky.
CUBEMAP_MODE_ENVIRONMENT_PRESET_0 = 2The first environment preset defines the way the AR texture is set for the environment.
CUBEMAP_MODE_ENVIRONMENT_PRESET_1 = 3The second environment preset defines the way the AR texture is set for the environment.
CUBEMAP_MODE_ENVIRONMENT_PRESET_2 = 4The third environment preset defines the way the AR texture is set for the environment.
CUBEMAP_MODE_END = 4The last element to be used for iteration.

OVERRIDE_COLOR_CORRECTION_MODE#

Name说明/描 述
OVERRIDE_COLOR_CORRECTION_MODE_BEGIN = 0The first element to be used for iteration.
OVERRIDE_COLOR_CORRECTION_MODE_DISABLED = 0The color correction is disabled.
OVERRIDE_COLOR_CORRECTION_MODE_EXPOSURE = 1Exposure correction for the stream from the AR cameras.
OVERRIDE_COLOR_CORRECTION_MODE_EXPOSURE_WHITE_BALANCE = 2Exposure and white balance correction for the stream.
OVERRIDE_COLOR_CORRECTION_MODE_END = 2The last element to be used for iteration.

Members

void setChromaKeyEnabled ( bool enabled ) #

Console: vr_mixed_reality_chroma_key_enabled
Sets a new value indicating if chroma keying is enabled. VST capturing from HMD cameras must be enabled.

Arguments

  • bool enabled - Set true to enable chroma keying; false - to disable it. The default value is false.

bool isChromaKeyEnabled() const#

Console: vr_mixed_reality_chroma_key_enabled
Returns the current value indicating if chroma keying is enabled. VST capturing from HMD cameras must be enabled.

Return value

true if chroma keying is enabled; otherwise false. The default value is false.

void setDepthTestEnabled ( bool enabled ) #

Console: vr_mixed_reality_depth_test_enabled
Sets a new value indicating if depth buffer submission is enabled. VST capturing from HMD cameras must be enabled.

Arguments

  • bool enabled - Set true to enable depth testing; false - to disable it. The default value is false.

bool isDepthTestEnabled() const#

Console: vr_mixed_reality_depth_test_enabled
Returns the current value indicating if depth buffer submission is enabled. VST capturing from HMD cameras must be enabled.

Return value

true if depth testing is enabled; otherwise false. The default value is false.

void setAlphaBlendEnabled ( bool enabled ) #

Console: vr_mixed_reality_alpha_blend_enabled
Sets a new value indicating if alpha blending is enabled. This option is used for blending VR and AR images using the alpha channel. VST capturing from HMD cameras must be enabled and the screen precision must be 1.

Arguments

  • bool enabled - Set true to enable alpha blending; false - to disable it. The default value is false.

bool isAlphaBlendEnabled() const#

Console: vr_mixed_reality_alpha_blend_enabled
Returns the current value indicating if alpha blending is enabled. This option is used for blending VR and AR images using the alpha channel. VST capturing from HMD cameras must be enabled and the screen precision must be 1.

Return value

true if alpha blending is enabled; otherwise false. The default value is false.

void setVideoEnabled ( bool enabled ) #

Console: vr_mixed_reality_video_enabled
Sets a new value indicating if the video signal from the real-world view from the front-facing HMD-mounted cameras is enabled. The real-world view is used for combining virtual and real-world elements to create an immersive experience in mixed reality.

Arguments

  • bool enabled - Set true to enable the real-world view from the front-facing HMD-mounted cameras; false - to disable it. The default value is false.

bool isVideoEnabled() const#

Console: vr_mixed_reality_video_enabled
Returns the current value indicating if the video signal from the real-world view from the front-facing HMD-mounted cameras is enabled. The real-world view is used for combining virtual and real-world elements to create an immersive experience in mixed reality.

Return value

true if the real-world view from the front-facing HMD-mounted cameras is enabled; otherwise false. The default value is false.

void setDepthTestRangeEnabled ( bool enabled ) #

Console: vr_mixed_reality_depth_test_range_enabled
Sets a new value indicating if the depth test range usage is enabled. Use the depth test range (Depth Test Near Z, Depth Test Far Z) to control the range for which the depth test is evaluated.

Arguments

  • bool enabled - Set true to enable the depth test range; false - to disable it. The default value is false.

bool isDepthTestRangeEnabled() const#

Console: vr_mixed_reality_depth_test_range_enabled
Returns the current value indicating if the depth test range usage is enabled. Use the depth test range (Depth Test Near Z, Depth Test Far Z) to control the range for which the depth test is evaluated.

Return value

true if the depth test range is enabled; otherwise false. The default value is false.

void setDepthTestRange ( const Math::vec2& range ) #

Console: vr_mixed_reality_depth_test_range
Sets a new depth test range as a two-component vector (the near and far planes). The depth test range usage must be enabled.

Arguments

  • const Math::vec2& range - The depth test range.
    vec2(0.0f, 1.0f) - default value

Math::vec2 getDepthTestRange() const#

Console: vr_mixed_reality_depth_test_range
Returns the current depth test range as a two-component vector (the near and far planes). The depth test range usage must be enabled.

Return value

Current depth test range.
vec2(0.0f, 1.0f) - default value

int getChromaKeyConfigNum() const#

Returns the current number of chroma key config indices supported. The maximum index will be count-1.

Return value

Current number of chroma key config indices.

void setBlendMaskingMode ( VRMixedReality::BLEND_MASKING_MODE mode ) #

Console: vr_mixed_reality_blend_masking_mode
Sets a new mode of the Blend Control Mask that can be used to extend or restrict the chroma key mask or to control the depth testing against the estimated video depth.

Arguments

  • VRMixedReality::BLEND_MASKING_MODE mode - The masking mode. One of the following values:
    • 0 - Disabled (masking mode is disabled). (by default)
    • 1 - Restrict Video to Mask (show the video pass-through image (VST) in the mask; can be used with chroma key)
    • 2 - Restrict VR to Mask (show VR in the mask; can be used with chroma key)
    • 3 - Restrict VR to Chromakey reduced by Mask (show VR in the mask and chroma elsewhere; requires chroma key)

VRMixedReality::BLEND_MASKING_MODE getBlendMaskingMode() const#

Console: vr_mixed_reality_blend_masking_mode
Returns the current mode of the Blend Control Mask that can be used to extend or restrict the chroma key mask or to control the depth testing against the estimated video depth.

Return value

Current masking mode. One of the following values:
  • 0 - Disabled (masking mode is disabled). (by default)
  • 1 - Restrict Video to Mask (show the video pass-through image (VST) in the mask; can be used with chroma key)
  • 2 - Restrict VR to Mask (show VR in the mask; can be used with chroma key)
  • 3 - Restrict VR to Chromakey reduced by Mask (show VR in the mask and chroma elsewhere; requires chroma key)

void setBlendMaskingDebugEnabled ( bool enabled ) #

Console: vr_mixed_reality_blend_masking_debug_enabled
Sets a new value indicating if blend masking debug visualization is enabled. The blend masking mode must be enabled.

Arguments

  • bool enabled - Set true to enable blend masking debug visualization; false - to disable it. The default value is false.

bool isBlendMaskingDebugEnabled() const#

Console: vr_mixed_reality_blend_masking_debug_enabled
Returns the current value indicating if blend masking debug visualization is enabled. The blend masking mode must be enabled.

Return value

true if blend masking debug visualization is enabled; otherwise false. The default value is false.

bool isBlendMaskingUsed() const#

Returns the current value indicating if the Blend Control Mask is used to extend or restrict the chroma key mask or to control the depth testing against the estimated video depth.

Return value

true if the blend mask is used; otherwise false.

Ptr<Texture> getCurrentBlendMaskColorBuffer() const#

Returns the current image representing the current color buffer of the Blend Control Mask.

Return value

Current color buffer.

void setCameraExposureTimeRaw ( double raw ) #

Sets a new exposure time value for the camera.

Arguments

  • double raw - The exposure time, in frames per second (e.g. 90.0 -> ~11ms).

double getCameraExposureTimeRaw() const#

Returns the current exposure time value for the camera.

Return value

Current exposure time, in frames per second (e.g. 90.0 -> ~11ms).

void setCameraExposureTime ( VRMixedReality::CAMERA_EXPOSURE_TIME time ) #

Console: vr_mixed_reality_camera_exposure_time
Sets a new exposure time value that is valid for the connected device.

Arguments


VRMixedReality::CAMERA_EXPOSURE_TIME getCameraExposureTime() const#

Console: vr_mixed_reality_camera_exposure_time
Returns the current exposure time value that is valid for the connected device.

Return value

Current valid exposure time value for the connected device.

void setCameraExposureTimeMode ( VRMixedReality::CAMERA_PROPERTY_MODE mode ) #

Console: vr_mixed_reality_camera_exposure_time_mode
Sets a new exposure adjustment mode for the camera.

Arguments

  • VRMixedReality::CAMERA_PROPERTY_MODE mode - The exposure adjustment mode. One of the following values:
    • 0 - exposure adjustment is disabled
    • 1 - automatic exposure adjustment (by default)
    • 2 - manual exposure adjustment

VRMixedReality::CAMERA_PROPERTY_MODE getCameraExposureTimeMode() const#

Console: vr_mixed_reality_camera_exposure_time_mode
Returns the current exposure adjustment mode for the camera.

Return value

Current exposure adjustment mode. One of the following values:
  • 0 - exposure adjustment is disabled
  • 1 - automatic exposure adjustment (by default)
  • 2 - manual exposure adjustment

void setCameraWhiteBalanceRaw ( int raw ) #

Sets a new white balance correction value that is valid for the connected device.

Arguments

  • int raw - The color temperature value.

int getCameraWhiteBalanceRaw() const#

Returns the current white balance correction value that is valid for the connected device.

Return value

Current color temperature value.

void setCameraWhiteBalance ( VRMixedReality::CAMERA_WHITE_BALANCE balance ) #

Console: vr_mixed_reality_camera_white_balance
Sets a new white balance correction value that is valid for the connected device.

Arguments


VRMixedReality::CAMERA_WHITE_BALANCE getCameraWhiteBalance() const#

Console: vr_mixed_reality_camera_white_balance
Returns the current white balance correction value that is valid for the connected device.

Return value

Current color temperature value.

void setCameraWhiteBalanceMode ( VRMixedReality::CAMERA_PROPERTY_MODE mode ) #

Console: vr_mixed_reality_camera_white_balance_mode
Sets a new white balance adjustment mode for the camera.

Arguments

  • VRMixedReality::CAMERA_PROPERTY_MODE mode - The white balance adjustment mode. One of the following values:
    • 0 - white balance adjustment is disabled
    • 1 - automatic white balance adjustment (by default)
    • 2 - manual white balance adjustment

VRMixedReality::CAMERA_PROPERTY_MODE getCameraWhiteBalanceMode() const#

Console: vr_mixed_reality_camera_white_balance_mode
Returns the current white balance adjustment mode for the camera.

Return value

Current white balance adjustment mode. One of the following values:
  • 0 - white balance adjustment is disabled
  • 1 - automatic white balance adjustment (by default)
  • 2 - manual white balance adjustment

void setCameraISORaw ( int isoraw ) #

Sets a new ISO value that is valid for the connected device.

Arguments

  • int isoraw - The ISO value (e.g., "200" -> ISO200).

int getCameraISORaw() const#

Returns the current ISO value that is valid for the connected device.

Return value

Current ISO value (e.g., "200" -> ISO200).

void setCameraISO ( VRMixedReality::CAMERA_ISO iso ) #

Console: vr_mixed_reality_camera_iso
Sets a new ISO value for the camera.

Arguments


VRMixedReality::CAMERA_ISO getCameraISO() const#

Console: vr_mixed_reality_camera_iso
Returns the current ISO value for the camera.

Return value

Current ISO value.

void setCameraISOMode ( VRMixedReality::CAMERA_PROPERTY_MODE isomode ) #

Console: vr_mixed_reality_camera_iso_mode
Sets a new ISO adjustment mode for the camera.

Arguments

  • VRMixedReality::CAMERA_PROPERTY_MODE isomode - The ISO adjustment mode. One of the following values:
    • 0 - ISO adjustment is disabled
    • 1 - automatic ISO adjustment (by default)
    • 2 - manual ISO adjustment

VRMixedReality::CAMERA_PROPERTY_MODE getCameraISOMode() const#

Console: vr_mixed_reality_camera_iso_mode
Returns the current ISO adjustment mode for the camera.

Return value

Current ISO adjustment mode. One of the following values:
  • 0 - ISO adjustment is disabled
  • 1 - automatic ISO adjustment (by default)
  • 2 - manual ISO adjustment

void setCameraFlickerCompensationRaw ( int raw ) #

Sets a new flicker compensation value for the camera. This is useful when using the HMD indoors with mostly artificial light bulbs, which flicker at the frequency of 50Hz or 60Hz and can cause visual flicker artifacts on the video see through image. The correct setting depends on the underlying power grid's frequency. For example, in most parts of Africa/Asia/Australia/Europe the frequency is 50 Hz and in most parts of North and South America 60 Hz.

Arguments

  • int raw - The flicker compensation, in Hz.

int getCameraFlickerCompensationRaw() const#

Returns the current flicker compensation value for the camera. This is useful when using the HMD indoors with mostly artificial light bulbs, which flicker at the frequency of 50Hz or 60Hz and can cause visual flicker artifacts on the video see through image. The correct setting depends on the underlying power grid's frequency. For example, in most parts of Africa/Asia/Australia/Europe the frequency is 50 Hz and in most parts of North and South America 60 Hz.

Return value

Current flicker compensation, in Hz.

void setCameraFlickerCompensation ( VRMixedReality::CAMERA_FLICKER_COMPENSATION compensation ) #

Console: vr_mixed_reality_camera_flicker_compensation
Sets a new flicker compensation value for the camera. This is useful when using the HMD indoors with mostly artificial light bulbs, which flicker at the frequency of 50Hz or 60Hz and can cause visual flicker artifacts on the video see through image. The correct setting depends on the underlying power grid's frequency. For example, in most parts of Africa/Asia/Australia/Europe the frequency is 50 Hz and in most parts of North and South America 60 Hz.

Arguments


VRMixedReality::CAMERA_FLICKER_COMPENSATION getCameraFlickerCompensation() const#

Console: vr_mixed_reality_camera_flicker_compensation
Returns the current flicker compensation value for the camera. This is useful when using the HMD indoors with mostly artificial light bulbs, which flicker at the frequency of 50Hz or 60Hz and can cause visual flicker artifacts on the video see through image. The correct setting depends on the underlying power grid's frequency. For example, in most parts of Africa/Asia/Australia/Europe the frequency is 50 Hz and in most parts of North and South America 60 Hz.

Return value

Current flicker compensation.

int getCameraMinSharpness() const#

Returns the current minimum possible value for the camera sharpness.

Return value

Current minimum possible value for the camera sharpness.

int getCameraMaxSharpness() const#

Returns the current maximum possible value for the camera sharpness.

Return value

Current maximum possible value for the camera sharpness.

void setCameraSharpness ( int sharpness ) #

Console: vr_mixed_reality_camera_sharpness
Sets a new sharpness filter power value for the camera.

Arguments

  • int sharpness - The sharpness filter power value: lowest value corresponds to small amount of filtering and the highest value corresponds to the largest amount of filtering.
    Range of values: [0, 10]. The default value is : 0.

int getCameraSharpness() const#

Console: vr_mixed_reality_camera_sharpness
Returns the current sharpness filter power value for the camera.

Return value

Current sharpness filter power value: lowest value corresponds to small amount of filtering and the highest value corresponds to the largest amount of filtering.
Range of values: [0, 10]. The default value is : 0.

void setViewOffset ( float offset ) #

Console: vr_mixed_reality_view_offset
Sets a new eyes view offset (where eye camera should be positioned when using Mixed Reality):
  • 0 for physical eye position
  • 1 for VST camera position

Arguments

  • float offset - The view offset.
    Range of values: [0.0, 1.0]. The default value is : 0.0.

float getViewOffset() const#

Console: vr_mixed_reality_view_offset
Returns the current eyes view offset (where eye camera should be positioned when using Mixed Reality):
  • 0 for physical eye position
  • 1 for VST camera position

Return value

Current view offset.
Range of values: [0.0, 1.0]. The default value is : 0.0.

void setMarkerTrackingEnabled ( bool enabled ) #

Console: vr_mixed_reality_marker_tracking_enabled
Sets a new value indicating if marker tracking is enabled.

Arguments

  • bool enabled - Set true to enable marker tracking; false - to disable it. The default value is false.

bool isMarkerTrackingEnabled() const#

Console: vr_mixed_reality_marker_tracking_enabled
Returns the current value indicating if marker tracking is enabled.

Return value

true if marker tracking is enabled; otherwise false. The default value is false.

short getNumMarkerObjectVisible() const#

Returns the current number of visible marker objects.

Return value

Current number of visible marker objects.

void setCubemapMode ( VRMixedReality::CUBEMAP_MODE mode ) #

Console: vr_mixed_reality_cubemap_mode
Sets a new mode defining the way the AR texture is set for the environment.

Arguments

  • VRMixedReality::CUBEMAP_MODE mode - The cubemap mode. One of the following values:
    • 0 - cubemap streaming from AR cameras is disabled.
    • 1 - environment texture substitutes the sky.
    • 2 - the first environment preset defines the way the AR texture is set for the environment. (by default)
    • 3 - the second environment preset defines the way the AR texture is set for the environment.
    • 4 - the third environment preset defines the way the AR texture is set for the environment.

VRMixedReality::CUBEMAP_MODE getCubemapMode() const#

Console: vr_mixed_reality_cubemap_mode
Returns the current mode defining the way the AR texture is set for the environment.

Return value

Current cubemap mode. One of the following values:
  • 0 - cubemap streaming from AR cameras is disabled.
  • 1 - environment texture substitutes the sky.
  • 2 - the first environment preset defines the way the AR texture is set for the environment. (by default)
  • 3 - the second environment preset defines the way the AR texture is set for the environment.
  • 4 - the third environment preset defines the way the AR texture is set for the environment.

void setCubemapGGXQuality ( Render::GGX_MIPMAPS_QUALITY ggxquality ) #

Console: vr_mixed_reality_cubemap_ggx_quality
Sets a new quality of the generated GGX mips for the AR cubemap.

Arguments

  • Render::GGX_MIPMAPS_QUALITY ggxquality - The quality of the GGX mipmaps. One of the following values:
    • 0 - low
    • 1 - medium (by default)
    • 2 - high
    • 3 - ultra

Render::GGX_MIPMAPS_QUALITY getCubemapGGXQuality() const#

Console: vr_mixed_reality_cubemap_ggx_quality
Returns the current quality of the generated GGX mips for the AR cubemap.

Return value

Current quality of the GGX mipmaps. One of the following values:
  • 0 - low
  • 1 - medium (by default)
  • 2 - high
  • 3 - ultra

void setOverrideColorCorrectionMode ( VRMixedReality::OVERRIDE_COLOR_CORRECTION_MODE mode ) #

Console: vr_mixed_reality_override_color_correction_mode
Sets a new color correction mode for the stream from the AR cameras.

Arguments

  • VRMixedReality::OVERRIDE_COLOR_CORRECTION_MODE mode - The color correction mode. One of the following values:
    • 0 - correction is disabled. (by default)
    • 1 - exposure correction for the stream from the AR cameras.
    • 2 - exposure and white balance correction for the stream.

VRMixedReality::OVERRIDE_COLOR_CORRECTION_MODE getOverrideColorCorrectionMode() const#

Console: vr_mixed_reality_override_color_correction_mode
Returns the current color correction mode for the stream from the AR cameras.

Return value

Current color correction mode. One of the following values:
  • 0 - correction is disabled. (by default)
  • 1 - exposure correction for the stream from the AR cameras.
  • 2 - exposure and white balance correction for the stream.

static Event<> getEventCameraPropertyUpdateSharpness() const#

Event triggered when the sharpness value of the camera is changed in Varjo Base. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the CameraPropertyUpdateSharpness event handler
void camerapropertyupdatesharpness_event_handler()
{
	Log::message("\Handling CameraPropertyUpdateSharpness event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections camerapropertyupdatesharpness_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventCameraPropertyUpdateSharpness().connect(camerapropertyupdatesharpness_event_connections, camerapropertyupdatesharpness_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventCameraPropertyUpdateSharpness().connect(camerapropertyupdatesharpness_event_connections, []() { 
		Log::message("\Handling CameraPropertyUpdateSharpness event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
camerapropertyupdatesharpness_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection camerapropertyupdatesharpness_event_connection;

// subscribe to the CameraPropertyUpdateSharpness event with a handler function keeping the connection
VRMixedReality::getEventCameraPropertyUpdateSharpness().connect(camerapropertyupdatesharpness_event_connection, camerapropertyupdatesharpness_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
camerapropertyupdatesharpness_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
camerapropertyupdatesharpness_event_connection.setEnabled(true);

// ...

// remove subscription to the CameraPropertyUpdateSharpness event via the connection
camerapropertyupdatesharpness_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A CameraPropertyUpdateSharpness event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling CameraPropertyUpdateSharpness event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventCameraPropertyUpdateSharpness().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the CameraPropertyUpdateSharpness event with a handler function
VRMixedReality::getEventCameraPropertyUpdateSharpness().connect(camerapropertyupdatesharpness_event_handler);


// remove subscription to the CameraPropertyUpdateSharpness event later by the handler function
VRMixedReality::getEventCameraPropertyUpdateSharpness().disconnect(camerapropertyupdatesharpness_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId camerapropertyupdatesharpness_handler_id;

// subscribe to the CameraPropertyUpdateSharpness event with a lambda handler function and keeping connection ID
camerapropertyupdatesharpness_handler_id = VRMixedReality::getEventCameraPropertyUpdateSharpness().connect([]() { 
		Log::message("\Handling CameraPropertyUpdateSharpness event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateSharpness().disconnect(camerapropertyupdatesharpness_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all CameraPropertyUpdateSharpness events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventCameraPropertyUpdateSharpness().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventCameraPropertyUpdateSharpness().setEnabled(true);

Return value

Event reference.

static Event<> getEventCameraPropertyUpdateFlickerCompensation() const#

Event triggered when the flicker compensation value of the camera is changed in Varjo Base. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the CameraPropertyUpdateFlickerCompensation event handler
void camerapropertyupdateflickercompensation_event_handler()
{
	Log::message("\Handling CameraPropertyUpdateFlickerCompensation event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections camerapropertyupdateflickercompensation_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().connect(camerapropertyupdateflickercompensation_event_connections, camerapropertyupdateflickercompensation_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().connect(camerapropertyupdateflickercompensation_event_connections, []() { 
		Log::message("\Handling CameraPropertyUpdateFlickerCompensation event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
camerapropertyupdateflickercompensation_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection camerapropertyupdateflickercompensation_event_connection;

// subscribe to the CameraPropertyUpdateFlickerCompensation event with a handler function keeping the connection
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().connect(camerapropertyupdateflickercompensation_event_connection, camerapropertyupdateflickercompensation_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
camerapropertyupdateflickercompensation_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
camerapropertyupdateflickercompensation_event_connection.setEnabled(true);

// ...

// remove subscription to the CameraPropertyUpdateFlickerCompensation event via the connection
camerapropertyupdateflickercompensation_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A CameraPropertyUpdateFlickerCompensation event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling CameraPropertyUpdateFlickerCompensation event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the CameraPropertyUpdateFlickerCompensation event with a handler function
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().connect(camerapropertyupdateflickercompensation_event_handler);


// remove subscription to the CameraPropertyUpdateFlickerCompensation event later by the handler function
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().disconnect(camerapropertyupdateflickercompensation_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId camerapropertyupdateflickercompensation_handler_id;

// subscribe to the CameraPropertyUpdateFlickerCompensation event with a lambda handler function and keeping connection ID
camerapropertyupdateflickercompensation_handler_id = VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().connect([]() { 
		Log::message("\Handling CameraPropertyUpdateFlickerCompensation event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().disconnect(camerapropertyupdateflickercompensation_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all CameraPropertyUpdateFlickerCompensation events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().setEnabled(true);

Return value

Event reference.

static Event<> getEventCameraPropertyUpdateISO() const#

Event triggered when the camera ISO value and/or the ISO adjustment mode are changed in Varjo Base. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the CameraPropertyUpdateISO event handler
void camerapropertyupdateiso_event_handler()
{
	Log::message("\Handling CameraPropertyUpdateISO event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections camerapropertyupdateiso_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventCameraPropertyUpdateISO().connect(camerapropertyupdateiso_event_connections, camerapropertyupdateiso_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventCameraPropertyUpdateISO().connect(camerapropertyupdateiso_event_connections, []() { 
		Log::message("\Handling CameraPropertyUpdateISO event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
camerapropertyupdateiso_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection camerapropertyupdateiso_event_connection;

// subscribe to the CameraPropertyUpdateISO event with a handler function keeping the connection
VRMixedReality::getEventCameraPropertyUpdateISO().connect(camerapropertyupdateiso_event_connection, camerapropertyupdateiso_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
camerapropertyupdateiso_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
camerapropertyupdateiso_event_connection.setEnabled(true);

// ...

// remove subscription to the CameraPropertyUpdateISO event via the connection
camerapropertyupdateiso_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A CameraPropertyUpdateISO event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling CameraPropertyUpdateISO event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventCameraPropertyUpdateISO().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the CameraPropertyUpdateISO event with a handler function
VRMixedReality::getEventCameraPropertyUpdateISO().connect(camerapropertyupdateiso_event_handler);


// remove subscription to the CameraPropertyUpdateISO event later by the handler function
VRMixedReality::getEventCameraPropertyUpdateISO().disconnect(camerapropertyupdateiso_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId camerapropertyupdateiso_handler_id;

// subscribe to the CameraPropertyUpdateISO event with a lambda handler function and keeping connection ID
camerapropertyupdateiso_handler_id = VRMixedReality::getEventCameraPropertyUpdateISO().connect([]() { 
		Log::message("\Handling CameraPropertyUpdateISO event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateISO().disconnect(camerapropertyupdateiso_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all CameraPropertyUpdateISO events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventCameraPropertyUpdateISO().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventCameraPropertyUpdateISO().setEnabled(true);

Return value

Event reference.

static Event<> getEventCameraPropertyUpdateWhiteBalance() const#

Event triggered when the white balance correction value of the camera and/or the white balance adjustment mode are changed in Varjo Base. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the CameraPropertyUpdateWhiteBalance event handler
void camerapropertyupdatewhitebalance_event_handler()
{
	Log::message("\Handling CameraPropertyUpdateWhiteBalance event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections camerapropertyupdatewhitebalance_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().connect(camerapropertyupdatewhitebalance_event_connections, camerapropertyupdatewhitebalance_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().connect(camerapropertyupdatewhitebalance_event_connections, []() { 
		Log::message("\Handling CameraPropertyUpdateWhiteBalance event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
camerapropertyupdatewhitebalance_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection camerapropertyupdatewhitebalance_event_connection;

// subscribe to the CameraPropertyUpdateWhiteBalance event with a handler function keeping the connection
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().connect(camerapropertyupdatewhitebalance_event_connection, camerapropertyupdatewhitebalance_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
camerapropertyupdatewhitebalance_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
camerapropertyupdatewhitebalance_event_connection.setEnabled(true);

// ...

// remove subscription to the CameraPropertyUpdateWhiteBalance event via the connection
camerapropertyupdatewhitebalance_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A CameraPropertyUpdateWhiteBalance event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling CameraPropertyUpdateWhiteBalance event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the CameraPropertyUpdateWhiteBalance event with a handler function
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().connect(camerapropertyupdatewhitebalance_event_handler);


// remove subscription to the CameraPropertyUpdateWhiteBalance event later by the handler function
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().disconnect(camerapropertyupdatewhitebalance_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId camerapropertyupdatewhitebalance_handler_id;

// subscribe to the CameraPropertyUpdateWhiteBalance event with a lambda handler function and keeping connection ID
camerapropertyupdatewhitebalance_handler_id = VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().connect([]() { 
		Log::message("\Handling CameraPropertyUpdateWhiteBalance event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().disconnect(camerapropertyupdatewhitebalance_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all CameraPropertyUpdateWhiteBalance events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().setEnabled(true);

Return value

Event reference.

static Event<> getEventCameraPropertyUpdateExposureTime() const#

Event triggered when the exposure time value of the camera and/or the exposure adjustment mode are changed in Varjo Base. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the CameraPropertyUpdateExposureTime event handler
void camerapropertyupdateexposuretime_event_handler()
{
	Log::message("\Handling CameraPropertyUpdateExposureTime event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections camerapropertyupdateexposuretime_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventCameraPropertyUpdateExposureTime().connect(camerapropertyupdateexposuretime_event_connections, camerapropertyupdateexposuretime_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventCameraPropertyUpdateExposureTime().connect(camerapropertyupdateexposuretime_event_connections, []() { 
		Log::message("\Handling CameraPropertyUpdateExposureTime event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
camerapropertyupdateexposuretime_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection camerapropertyupdateexposuretime_event_connection;

// subscribe to the CameraPropertyUpdateExposureTime event with a handler function keeping the connection
VRMixedReality::getEventCameraPropertyUpdateExposureTime().connect(camerapropertyupdateexposuretime_event_connection, camerapropertyupdateexposuretime_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
camerapropertyupdateexposuretime_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
camerapropertyupdateexposuretime_event_connection.setEnabled(true);

// ...

// remove subscription to the CameraPropertyUpdateExposureTime event via the connection
camerapropertyupdateexposuretime_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A CameraPropertyUpdateExposureTime event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling CameraPropertyUpdateExposureTime event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventCameraPropertyUpdateExposureTime().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the CameraPropertyUpdateExposureTime event with a handler function
VRMixedReality::getEventCameraPropertyUpdateExposureTime().connect(camerapropertyupdateexposuretime_event_handler);


// remove subscription to the CameraPropertyUpdateExposureTime event later by the handler function
VRMixedReality::getEventCameraPropertyUpdateExposureTime().disconnect(camerapropertyupdateexposuretime_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId camerapropertyupdateexposuretime_handler_id;

// subscribe to the CameraPropertyUpdateExposureTime event with a lambda handler function and keeping connection ID
camerapropertyupdateexposuretime_handler_id = VRMixedReality::getEventCameraPropertyUpdateExposureTime().connect([]() { 
		Log::message("\Handling CameraPropertyUpdateExposureTime event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateExposureTime().disconnect(camerapropertyupdateexposuretime_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all CameraPropertyUpdateExposureTime events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventCameraPropertyUpdateExposureTime().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventCameraPropertyUpdateExposureTime().setEnabled(true);

Return value

Event reference.

static Event<> getEventChromakeyUpdate() const#

Event triggered when the chroma keying settings are changed in Varjo Base. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the ChromakeyUpdate event handler
void chromakeyupdate_event_handler()
{
	Log::message("\Handling ChromakeyUpdate event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections chromakeyupdate_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventChromakeyUpdate().connect(chromakeyupdate_event_connections, chromakeyupdate_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventChromakeyUpdate().connect(chromakeyupdate_event_connections, []() { 
		Log::message("\Handling ChromakeyUpdate event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
chromakeyupdate_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection chromakeyupdate_event_connection;

// subscribe to the ChromakeyUpdate event with a handler function keeping the connection
VRMixedReality::getEventChromakeyUpdate().connect(chromakeyupdate_event_connection, chromakeyupdate_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
chromakeyupdate_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
chromakeyupdate_event_connection.setEnabled(true);

// ...

// remove subscription to the ChromakeyUpdate event via the connection
chromakeyupdate_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A ChromakeyUpdate event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling ChromakeyUpdate event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventChromakeyUpdate().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the ChromakeyUpdate event with a handler function
VRMixedReality::getEventChromakeyUpdate().connect(chromakeyupdate_event_handler);


// remove subscription to the ChromakeyUpdate event later by the handler function
VRMixedReality::getEventChromakeyUpdate().disconnect(chromakeyupdate_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId chromakeyupdate_handler_id;

// subscribe to the ChromakeyUpdate event with a lambda handler function and keeping connection ID
chromakeyupdate_handler_id = VRMixedReality::getEventChromakeyUpdate().connect([]() { 
		Log::message("\Handling ChromakeyUpdate event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventChromakeyUpdate().disconnect(chromakeyupdate_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all ChromakeyUpdate events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventChromakeyUpdate().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventChromakeyUpdate().setEnabled(true);

Return value

Event reference.

static Event<> getEventDeviceDisconnected() const#

Event triggered when the Varjo device is disconnected. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the DeviceDisconnected event handler
void devicedisconnected_event_handler()
{
	Log::message("\Handling DeviceDisconnected event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections devicedisconnected_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventDeviceDisconnected().connect(devicedisconnected_event_connections, devicedisconnected_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventDeviceDisconnected().connect(devicedisconnected_event_connections, []() { 
		Log::message("\Handling DeviceDisconnected event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
devicedisconnected_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection devicedisconnected_event_connection;

// subscribe to the DeviceDisconnected event with a handler function keeping the connection
VRMixedReality::getEventDeviceDisconnected().connect(devicedisconnected_event_connection, devicedisconnected_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
devicedisconnected_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
devicedisconnected_event_connection.setEnabled(true);

// ...

// remove subscription to the DeviceDisconnected event via the connection
devicedisconnected_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A DeviceDisconnected event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling DeviceDisconnected event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventDeviceDisconnected().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the DeviceDisconnected event with a handler function
VRMixedReality::getEventDeviceDisconnected().connect(devicedisconnected_event_handler);


// remove subscription to the DeviceDisconnected event later by the handler function
VRMixedReality::getEventDeviceDisconnected().disconnect(devicedisconnected_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId devicedisconnected_handler_id;

// subscribe to the DeviceDisconnected event with a lambda handler function and keeping connection ID
devicedisconnected_handler_id = VRMixedReality::getEventDeviceDisconnected().connect([]() { 
		Log::message("\Handling DeviceDisconnected event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventDeviceDisconnected().disconnect(devicedisconnected_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all DeviceDisconnected events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventDeviceDisconnected().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventDeviceDisconnected().setEnabled(true);

Return value

Event reference.

static Event<> getEventDeviceConnected() const#

Event triggered when the Varjo device is connected. You can subscribe to events via connect()  and unsubscribe via disconnect(). You can also use EventConnection  and EventConnections  classes for convenience (see examples below).
Notice
For more details see the Event Handling article.
The event handler signature is as follows: myhandler()

Usage Example

Source code (C++)
// implement the DeviceConnected event handler
void deviceconnected_event_handler()
{
	Log::message("\Handling DeviceConnected event\n");
}


//////////////////////////////////////////////////////////////////////////////
//  1. Multiple subscriptions can be linked to an instance of the EventConnections 
//  class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnections class
EventConnections deviceconnected_event_connections;

// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventDeviceConnected().connect(deviceconnected_event_connections, deviceconnected_event_handler);

// other subscriptions are also linked to this EventConnections instance 
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventDeviceConnected().connect(deviceconnected_event_connections, []() { 
		Log::message("\Handling DeviceConnected event (lambda).\n");
	}
);

// ...

// later all of these linked subscriptions can be removed with a single line
deviceconnected_event_connections.disconnectAll();

//////////////////////////////////////////////////////////////////////////////
//  2. You can subscribe and unsubscribe via an instance of the EventConnection 
//  class. And toggle this particular connection off and on, when necessary.
//////////////////////////////////////////////////////////////////////////////

// create an instance of the EventConnection class
EventConnection deviceconnected_event_connection;

// subscribe to the DeviceConnected event with a handler function keeping the connection
VRMixedReality::getEventDeviceConnected().connect(deviceconnected_event_connection, deviceconnected_event_handler);

// ...

// you can temporarily disable a particular event connection to perform certain actions
deviceconnected_event_connection.setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
deviceconnected_event_connection.setEnabled(true);

// ...

// remove subscription to the DeviceConnected event via the connection
deviceconnected_event_connection.disconnect();

//////////////////////////////////////////////////////////////////////////////
//  3. You can add EventConnection/EventConnections instance as a member of the
//  class that handles the event. In this case all linked subscriptions will be 
//  automatically removed when class destructor is called
//////////////////////////////////////////////////////////////////////////////

// Class handling the event
class SomeClass
{
public:
	// instance of the EventConnections class as a class member
	EventConnections e_connections;

	// A DeviceConnected event handler implemented as a class member
	void event_handler()
	{
		Log::message("\Handling DeviceConnected event\n");
		// ...
	}
};

SomeClass *sc = new SomeClass();

// ...

// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventDeviceConnected().connect(sc->e_connections, sc, &SomeClass::event_handler);

// ...

// handler class instance is deleted with all its subscriptions removed automatically
delete sc;

//////////////////////////////////////////////////////////////////////////////
//  4. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////

// subscribe to the DeviceConnected event with a handler function
VRMixedReality::getEventDeviceConnected().connect(deviceconnected_event_handler);


// remove subscription to the DeviceConnected event later by the handler function
VRMixedReality::getEventDeviceConnected().disconnect(deviceconnected_event_handler);


//////////////////////////////////////////////////////////////////////////////
//   5. Subscribe to an event saving an ID and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////

// define a connection ID to be used to unsubscribe later
EventConnectionId deviceconnected_handler_id;

// subscribe to the DeviceConnected event with a lambda handler function and keeping connection ID
deviceconnected_handler_id = VRMixedReality::getEventDeviceConnected().connect([]() { 
		Log::message("\Handling DeviceConnected event (lambda).\n");
	}
);

// remove the subscription later using the ID
VRMixedReality::getEventDeviceConnected().disconnect(deviceconnected_handler_id);


//////////////////////////////////////////////////////////////////////////////
//   6. Ignoring all DeviceConnected events when necessary
//////////////////////////////////////////////////////////////////////////////

// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventDeviceConnected().setEnabled(false);

// ... actions to be performed

// and enable it back when necessary
VRMixedReality::getEventDeviceConnected().setEnabled(true);

Return value

Event reference.

void applySettings ( ) #

Updates the mixed reality settings to the current settings.

bool isChromaKeyConfigEnabled ( int index ) const#

Returns the current value indicating if the chroma key configuration with the specified index is enabled.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.

Return value

1 the chroma key configuration is enabled; otherwise, 0.

void setChromaKeyConfigEnabled ( int index, bool enabled ) #

Sets a new value indicating if the chroma key configuration with the specified index is enabled.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.
  • bool enabled - 1 to enable the chroma key configuration; 0 to disable it.

Math::vec3 getChromaKeyConfigFalloff ( int index ) const#

Returns the current tolerance falloff values for HSV components of the chroma key target color.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.

Return value

Current tolerance falloff values for HSV components of the chroma key target color. The range for each component is [0.0; 1.0].

void setChromaKeyConfigFalloff ( int index, const Math::vec3 & falloff ) #

Sets new tolerance falloff values for HSV components of the chroma key target color.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.
  • const Math::vec3 & falloff - New tolerance falloff values to be set for HSV components of the chroma key target color. The range for each component is [0.0; 1.0].

Math::vec3 getChromaKeyConfigTargetColor ( int index ) const#

Returns the current chroma key target color.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.

Return value

Current chroma key target color in HSV colorspace. The range for each component is [0.0; 1.0].

void setChromaKeyConfigTargetColor ( int index, const Math::vec3 & target_color ) #

Sets a new chroma key target color.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.
  • const Math::vec3 & target_color - New chroma key target color to be set in HSV colorspace. The range for each component is [0.0; 1.0].

Math::vec3 getChromaKeyConfigTolerance ( int index ) const#

Returns the current tolerance values for HSV components of the chroma key target color.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.

Return value

Current tolerance values for HSV components of the chroma key target color. The range for each component is [0.0; 1.0].

void setChromaKeyConfigTolerance ( int index, const Math::vec3 & tolerance ) #

Sets new tolerance values for HSV components of the chroma key target color.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.
  • const Math::vec3 & tolerance - New tolerance values for HSV components of the chroma key target color to be set. The range for each component is [0.0; 1.0].

void applyChromaKeySettings ( int index ) const#

Updates the settings of the chroma key configuration with the specified index to the current settings.

Arguments

  • int index - Chroma key config index in the range from 0 to config count - 1.

Vector<int> getCameraSupportedRawExposureTimes ( ) const#

Returns a vector containing the exposure time values that are set as valid for the connected device.

Return value

The vector containing the exposure time values.

Vector<int> getCameraSupportedRawWhiteBalances ( ) const#

Returns a vector containing the white balance values that are set as valid for the connected device.

Return value

The vector containing the white balance values.

Vector<int> getCameraSupportedRawISO ( ) const#

Returns a vector containing the ISO values that are set as valid for the connected device.

Return value

The vector containing the ISO values.

Vector<int> getCameraSupportedRawFlickerCompensations ( ) const#

Returns a vector containing the flicker compensation values that are set as valid for the connected device.

Return value

The vector containing the flicker compensation values.

Ptr<VRMarkerObject> getMarkerObject ( short index ) const#

Returns the marker object with the specified index.

Arguments

  • short index - Marker object index.

Return value

Marker object.

Ptr<VRMarkerObject> getMarkerObjectByID ( short marker_id ) const#

Returns the marker object with the specified ID.

Arguments

  • short marker_id - Marker object ID.

Return value

Marker object.
Last update: 2024-03-25
Build: ()