6#include "gl_vr_display.h"
98 vr_kit(
vr_driver* _driver,
void* _handle,
const std::string& _name,
unsigned _width,
unsigned _height,
unsigned _nr_multi_samples = 4);
107 const std::string&
get_name()
const;
133 virtual bool set_vibration(
unsigned controller_index,
float low_frequency_strength,
float high_frequency_strength) = 0;
139 virtual void put_projection_matrix(
int eye,
float z_near,
float z_far,
float* projection_matrix,
const float* hmd_pose = 0)
const = 0;
149#include <cgv/config/lib_end.h>
gl_vr_display(unsigned _width, unsigned _height, unsigned _nr_multi_samples)
construct
interface for mono or stereo cameras in VR headsets
interface class for vr drivers.
virtual void put_world_to_eye_transform(int eye, const float *hmd_pose, float *modelview_matrix) const
access to 4x4 modelview transformation matrix of given eye in column major format,...
vr_kit(vr_driver *_driver, void *_handle, const std::string &_name, unsigned _width, unsigned _height, unsigned _nr_multi_samples=4)
construct
vr_trackable_state & ref_tracking_reference_state(const std::string &serial_nummer)
write access to the state of the tracking reference with given serial number
vr_camera * get_camera() const
return camera or nullptr if not available
vr_kit_info info
store vr kit info to be filled and updated by driver implementations
controller_input_config input_configs[4][5]
store controller input configs per controller and input
void destruct_camera()
destruct camera
virtual bool set_vibration(unsigned controller_index, float low_frequency_strength, float high_frequency_strength)=0
set the vibration strength between 0 and 1 of low and high frequency motors, return false if device i...
const controller_input_config & get_controller_input_config(int controller_index, int input_index) const
query the configuration of a controller input
bool query_state(vr_kit_state &state, int pose_query=2)
query current state of vr kit and return whether this was successful
const vr_kit_info & get_device_info() const
return information on the currently attached devices
void * get_handle() const
return handle of vr kit
const vr_driver * get_driver() const
return driver
const std::string & get_name() const
return name of vr_kit
virtual void set_controller_input_config(int controller_index, int input_index, const controller_input_config &cic)
set the configuration of a controller input
void * handle
handle for internal use
bool skip_calibration
whether to skip driver calibration - defaults to false
vr_driver * driver
pointer to driver that created the vr kit
void clear_tracking_reference_states()
remove all reference states
virtual bool query_state_impl(vr_kit_state &state, int pose_query)=0
derived kits implement this without caring about calibration; vr_kit::query_state() will apply driver...
virtual void put_eye_to_head_matrix(int eye, float *pose_matrix) const =0
access to 3x4 matrix in column major format for transformation from eye (0..left, 1....
vr_camera * camera
pointer to camera
virtual void submit_frame()=0
submit the rendered stereo frame to the hmd
void mark_tracking_references_as_untracked()
mark all reference states as untracked
std::string name
name in case driver provides this information (not reliable)
vr_tracking_system_info & ref_tracking_system_info()
write access to tracking system info
virtual void put_projection_matrix(int eye, float z_near, float z_far, float *projection_matrix, const float *hmd_pose=0) const =0
access to 4x4 matrix in column major format for perspective transformation from eye (0....
the vr namespace for virtual reality support
information provided for a vr kit
structure that stores all information describing the state of a VR kit
a trackable knows whether it is tracked and its 6d pose stored as 3x4 matrix in column major format
information provided for tracking system
defines camera class for camera provided by vr_kit
defines types to store the state vr::vr_kit_state of a vr kit, which is split into sub states for the...