Unigine::VRMixedReality Class
Header: | #include <UnigineVRMixedReality.h> |
VRMixedReality Class
Enums
BLEND_MASKING_MODE#
CAMERA_PROPERTY_MODE#
CAMERA_EXPOSURE_TIME#
CAMERA_WHITE_BALANCE#
CAMERA_ISO#
CAMERA_FLICKER_COMPENSATION#
CUBEMAP_MODE#
Name | Description |
---|---|
CUBEMAP_MODE_BEGIN = 0 | The first element to be used for iteration. |
CUBEMAP_MODE_DISABLED = 0 | The cubemap streaming from AR cameras is disabled. |
CUBEMAP_MODE_ENVIRONMENT_OVERLAP = 1 | The environment texture substitutes the sky. |
CUBEMAP_MODE_ENVIRONMENT_PRESET_0 = 2 | The first environment preset defines the way the AR texture is set for the environment. |
CUBEMAP_MODE_ENVIRONMENT_PRESET_1 = 3 | The second environment preset defines the way the AR texture is set for the environment. |
CUBEMAP_MODE_ENVIRONMENT_PRESET_2 = 4 | The third environment preset defines the way the AR texture is set for the environment. |
CUBEMAP_MODE_END = 4 | The last element to be used for iteration. |
OVERRIDE_COLOR_CORRECTION_MODE#
Members
void setChromaKeyEnabled ( bool enabled = 0 ) #
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 = 0 ) #
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 = 0 ) #
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 = 0 ) #
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 = 0 ) #
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#
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 = 0 ) #
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 = 0 ) #
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#
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 ) #
Sets a new exposure time value that is valid for the connected device.
Arguments
- VRMixedReality::CAMERA_EXPOSURE_TIME time - The valid exposure time value for the connected device.
VRMixedReality::CAMERA_EXPOSURE_TIME getCameraExposureTime() const#
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 = 1 ) #
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#
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 ) #
Sets a new white balance correction value that is valid for the connected device.
Arguments
- VRMixedReality::CAMERA_WHITE_BALANCE balance - The color temperature value.
VRMixedReality::CAMERA_WHITE_BALANCE getCameraWhiteBalance() const#
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 = 1 ) #
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#
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 iso - The ISO value.
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 = 1 ) #
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 ) #
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 compensation - The flicker compensation.
VRMixedReality::CAMERA_FLICKER_COMPENSATION getCameraFlickerCompensation() 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.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 = 0 ) #
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 = 0.0 ) #
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 = 0 ) #
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#
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 = 2 ) #
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 = 1 ) #
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 = 0 ) #
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#
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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling CameraPropertyUpdateSharpness event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateSharpness().disconnect(camerapropertyupdatesharpness_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling CameraPropertyUpdateFlickerCompensation event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateFlickerCompensation().disconnect(camerapropertyupdateflickercompensation_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling CameraPropertyUpdateISO event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateISO().disconnect(camerapropertyupdateiso_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling CameraPropertyUpdateWhiteBalance event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateWhiteBalance().disconnect(camerapropertyupdatewhitebalance_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling CameraPropertyUpdateExposureTime event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateExposureTime().disconnect(camerapropertyupdateexposuretime_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling ChromakeyUpdate event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventChromakeyUpdate().disconnect(chromakeyupdate_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling DeviceDisconnected event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventDeviceDisconnected().disconnect(devicedisconnected_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// 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. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular 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(e_connections, []() {
Log::message("\Handling DeviceConnected event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventDeviceConnected().disconnect(deviceconnected_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. 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.static Event<> getEventCameraPropertyUpdateVSTReprojection() const#
Event triggered when the camera VST reprojection property is updated. You can subscribe to events via
connect()
and unsubscribe via
disconnect(). You can also use
EventConnection
and
EventConnections
classes for convenience (see examples below).
The event handler signature is as follows: myhandler(For more details see the Event Handling article.
Usage Example
// implement the CameraPropertyUpdateVSTReprojection event handler
void camerapropertyupdatevstreprojection_event_handler()
{
Log::message("\Handling CameraPropertyUpdateVSTReprojection 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 camerapropertyupdatevstreprojection_event_connections;
// link to this instance when subscribing to an event (subscription to various events can be linked)
VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().connect(camerapropertyupdatevstreprojection_event_connections, camerapropertyupdatevstreprojection_event_handler);
// other subscriptions are also linked to this EventConnections instance
// (e.g. you can subscribe using lambdas)
VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().connect(camerapropertyupdatevstreprojection_event_connections, []() {
Log::message("\Handling CameraPropertyUpdateVSTReprojection event (lambda).\n");
}
);
// ...
// later all of these linked subscriptions can be removed with a single line
camerapropertyupdatevstreprojection_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 camerapropertyupdatevstreprojection_event_connection;
// subscribe to the CameraPropertyUpdateVSTReprojection event with a handler function keeping the connection
VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().connect(camerapropertyupdatevstreprojection_event_connection, camerapropertyupdatevstreprojection_event_handler);
// ...
// you can temporarily disable a particular event connection to perform certain actions
camerapropertyupdatevstreprojection_event_connection.setEnabled(false);
// ... actions to be performed
// and enable it back when necessary
camerapropertyupdatevstreprojection_event_connection.setEnabled(true);
// ...
// remove subscription to the CameraPropertyUpdateVSTReprojection event via the connection
camerapropertyupdatevstreprojection_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 CameraPropertyUpdateVSTReprojection event handler implemented as a class member
void event_handler()
{
Log::message("\Handling CameraPropertyUpdateVSTReprojection event\n");
// ...
}
};
SomeClass *sc = new SomeClass();
// ...
// specify a class instance in case a handler method belongs to some class
VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().connect(sc->e_connections, sc, &SomeClass::event_handler);
// ...
// handler class instance is deleted with all its subscriptions removed automatically
delete sc;
//////////////////////////////////////////////////////////////////////////////
// 4. Subscribe to an event saving a particular connection ID
// and unsubscribe later by this ID
//////////////////////////////////////////////////////////////////////////////
// instance of the EventConnections class to manage event connections
EventConnections e_connections;
// define a particular connection ID to be used to unsubscribe later
EventConnectionId camerapropertyupdatevstreprojection_handler_id;
// subscribe to the CameraPropertyUpdateVSTReprojection event with a lambda handler function and keeping connection ID
camerapropertyupdatevstreprojection_handler_id = VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().connect(e_connections, []() {
Log::message("\Handling CameraPropertyUpdateVSTReprojection event (lambda).\n");
}
);
// remove the subscription later using the ID
VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().disconnect(camerapropertyupdatevstreprojection_handler_id);
//////////////////////////////////////////////////////////////////////////////
// 5. Ignoring all CameraPropertyUpdateVSTReprojection events when necessary
//////////////////////////////////////////////////////////////////////////////
// you can temporarily disable the event to perform certain actions without triggering it
VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().setEnabled(false);
// ... actions to be performed
// and enable it back when necessary
VRMixedReality::getEventCameraPropertyUpdateVSTReprojection().setEnabled(true);
Return value
Event reference.void setCameraVSTReprojectionMode ( VRMixedReality::CAMERA_PROPERTY_MODE mode = 0 ) #
Sets a new reprojection mode of VST.
Arguments
- VRMixedReality::CAMERA_PROPERTY_MODE mode - The reprojection mode of VST. One of the following values:
- 0 - reprojection of VST is disabled (default). (by default)
- 1 - automatic reprojection mode of VST (the Depth buffer is used for reprojection)
- 2 - manual reprojections mode of VST
VRMixedReality::CAMERA_PROPERTY_MODE getCameraVSTReprojectionMode() const#
Returns the current reprojection mode of VST.
Return value
Current reprojection mode of VST. One of the following values:- 0 - reprojection of VST is disabled (default). (by default)
- 1 - automatic reprojection mode of VST (the Depth buffer is used for reprojection)
- 2 - manual reprojections mode of VST
void setCameraVSTReprojectionDistance ( float distance = 0.0f ) #
Sets a new static distance in meters used to shift the whole image. Is configured only if the VST reprojection mode is set to Manual.
Arguments
- float distance - The static distance in meters used to control VST reprojection.
Range of values: [0.0f, 1000.0f]. The default value is : 0.0f.
float getCameraVSTReprojectionDistance() const#
Returns the current static distance in meters used to shift the whole image. Is configured only if the VST reprojection mode is set to Manual.
Return value
Current static distance in meters used to control VST reprojection.Range of values: [0.0f, 1000.0f]. The default value is : 0.0f.
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.bool cameraConfigLock ( ) const#
Returns the value indicating whether the attempt to lock the camera config is successful.Return value
true if the camera config is locked successfully or it was already locked; otherwise, false.void cameraConfigUnlock ( ) const#
Unlocks the previously locked camera config.Last update:
2024-12-13
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)