cgv
Loading...
Searching...
No Matches
vr_test Class Reference
Inheritance diagram for vr_test:
cgv::base::node cgv::render::drawable cgv::gui::event_handler cgv::gui::provider cgv::base::named cgv::base::traverse_policy cgv::base::traverse_policy cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag

Public Member Functions

void init_cameras (vr::vr_kit *kit_ptr)
 
void start_camera ()
 
void stop_camera ()
 
void compute_intersections (const vec3 &origin, const vec3 &direction, int ci, const rgb &color)
 compute intersection points of controller ray with movable boxes
 
void on_status_change (void *kit_handle, int ci, vr::VRStatus old_status, vr::VRStatus new_status)
 keep track of status changes
 
void on_device_change (void *kit_handle, bool attach)
 register on device change events
 
void construct_table (float tw, float td, float th, float tW)
 construct boxes that represent a table of dimensions tw,td,th and leg width tW
 
void construct_room (float w, float d, float h, float W, bool walls, bool ceiling)
 construct boxes that represent a room of dimensions w,d,h and wall width W
 
void construct_environment (float s, float ew, float ed, float w, float d, float h)
 construct boxes for environment
 
void construct_movable_boxes (float tw, float td, float th, float tW, size_t nr)
 construct boxes that represent a table of dimensions tw,td,th and leg width tW
 
void build_scene (float w, float d, float h, float W, float tw, float td, float th, float tW)
 construct a scene with a table
 
std::string get_type_name ()
 
void stream_help (std::ostream &os)
 overload to stream help information to the given output stream
 
void on_set (void *member_ptr)
 this callback is called when the set_void method has changed a member and can be overloaded in derived class
 
bool handle (cgv::gui::event &e)
 overload and implement this method to handle events
 
bool init (cgv::render::context &ctx)
 this method is called after creation or recreation of the context, return whether all necessary functionality is supported
 
void clear (cgv::render::context &ctx)
 clear all objects living in the context like textures or display lists
 
void init_frame (cgv::render::context &ctx)
 this method is called in one pass over all drawables before the draw method
 
void draw (cgv::render::context &ctx)
 overload to draw the content of this drawable
 
void finish_draw (cgv::render::context &ctx)
 this method is called when the current drawable is left in a tree traversal that calls the draw method
 
void create_gui ()
 you must overload this for gui creation
 
bool save_boxes (const std::string fn, const std::vector< box3 > &boxes, const std::vector< rgb > &box_colors, const std::vector< vec3 > &box_translations, const std::vector< quat > &box_rotations)
 stores configuration of the movable boxes inside a file
 
bool load_boxes (const std::string fn, std::vector< box3 > &boxes, std::vector< rgb > &box_colors, std::vector< vec3 > &box_translations, std::vector< quat > &box_rotations)
 loads boxes stored by the save_boxes method from a file
 
- Public Member Functions inherited from cgv::base::node
 node (const std::string &name="")
 construct from name
 
node_ptr get_parent () const
 return the parent node
 
base_ptr get_root () const
 return the root node by traversing parents until no more parent is available
 
void set_parent (node_ptr _parent)
 set a new parent node
 
node_ptr get_node ()
 cast upward to node
 
const_node_ptr get_node_const ()
 cast upward to const node
 
std::string get_type_name () const
 overload to return the type name of this object
 
- Public Member Functions inherited from cgv::base::named
 named (const std::string &name="")
 construct from name
 
const std::string & get_name () const
 return the parent node
 
void set_name (const std::string &_name)
 set a new parent node
 
named_ptr get_named ()
 cast upward to named
 
const_named_ptr get_named_const ()
 cast upward to const named
 
- Public Member Functions inherited from cgv::base::base
virtual std::string get_default_options () const
 overload to provide default options for registration
 
std::string get_name_or_type_name () const
 determine name of instance by checking cgv::base::named interface and in failure fallback to get_type_name()
 
virtual void on_register ()
 overload to handle register events that is sent after the instance has been registered
 
virtual void unregister ()
 overload to handle unregistration of instances
 
virtual bool on_exit_request ()
 overload to handle the appication exit request, return true if exiting is allowed and false otherwise
 
virtual void stream_stats (std::ostream &)
 overload to show the content of this object
 
virtual data::ref_ptr< group, trueget_group ()
 perform downcast to group
 
virtual data::ref_ptr< const named, trueget_named_const () const
 perform downcast to const named
 
virtual data::ref_ptr< const node, trueget_node_const () const
 perform downcast to const node
 
virtual data::ref_ptr< const group, trueget_group_const () const
 perform downcast to const group
 
template<class T >
data::ref_ptr< T, truecast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
data::ref_ptr< const T, truecast_const ()
 const cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
Tget_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const Tget_const_interface () const
 use dynamic type cast to check for the given interface
 
virtual void update ()
 this virtual update allows for example to ask a view to update the viewed value. The default implementation is empty.
 
virtual voidget_user_data () const
 this virtual method allows to pass application specific data for internal purposes
 
virtual bool self_reflect (cgv::reflect::reflection_handler &)
 used for simple self reflection
 
virtual std::string get_property_declarations ()
 return a semicolon separated list of property declarations
 
virtual bool set_void (const std::string &property, const std::string &value_type, const void *value_ptr)
 abstract interface for the setter of a dynamic property.
 
virtual bool get_void (const std::string &property, const std::string &value_type, void *value_ptr)
 abstract interface for the getter of a dynamic property.
 
virtual bool call_void (const std::string &method, const std::vector< std::string > &param_value_types, const std::vector< const void * > &param_value_ptrs, const std::string &result_type="", void *result_value_ptr=0)
 abstract interface to call an action
 
void set (const std::string &property, const char *value)
 specialization of set method to support const char* as strings
 
template<typename T >
void set (const std::string &property, const T &value)
 set a property of the element to the given value and perform standard conversions if necessary.
 
template<typename T >
T get (const std::string &property)
 query a property of the element and perform standard conversions if necessary.
 
void multi_set (const std::string &property_assignments, bool report_error=true)
 set several properties
 
bool is_property (const std::string &property_name, std::string *type_name=0)
 check if the given name specifies a property.
 
voidfind_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name.
 
- Public Member Functions inherited from cgv::data::ref_counted
int get_ref_count () const
 read access to current count
 
- Public Member Functions inherited from cgv::render::drawable
 drawable ()
 default construction
 
void hide ()
 hide the drawable
 
void show ()
 show the drawable
 
bool is_visible () const
 check whether the drawable is visible
 
contextget_context () const
 access the current context. The context will be available latestly in the init method but not in the contructor.
 
void set_context (context *_ctx)
 set the current focus context, this should only be called by the context itself
 
viewfind_view_as_node (size_t view_idx=0) const
 convenience function to find the view control in the current hierarchy
 
bool get_world_location (int x, int y, const view &V, dvec3 &world_location, double *window_z_ptr=0) const
 use given view together with depth buffer of context in order to compute the world location of the point at mouse pointer location (x,y)
 
void post_redraw ()
 posts a redraw event to the current context if one is available
 
void force_redraw ()
 forces a redraw right now. This cannot be called from init, init_frame, draw, finish_draw, finish_frame and clear
 
virtual void resize (unsigned int w, unsigned int h)
 callback to announce resizing of the output window
 
virtual void finish_frame (context &)
 this method is called in one pass over all drawables after drawing
 
virtual void after_finish (context &)
 this method is called in one pass over all drawables after finish frame
 
- Public Member Functions inherited from cgv::base::traverse_policy
 traverse_policy (int _policy=TP_ALL+TP_STOP_ON_SUCCESS, bool _active=true, int _focus=-1)
 construct default traverse policy that visits everything
 
int get_policy () const
 return the policy without the stop on success flag
 
bool stop_on_success () const
 return whether to stop on success
 
bool stop_on_failure () const
 return whether to stop on failure
 
void set_policy (int _policy)
 set a new policy, always add stop on success flag if needed
 
int get_focused_child () const
 return the focused child or -1 if none is focused
 
void set_focused_child (int _focused_child)
 set the focused child
 
bool get_active () const
 return whether the current node is active
 
void set_active (bool _active)
 set the active flag of the current node
 
- Public Member Functions inherited from cgv::gui::event_handler
 event_handler ()
 default construction
 
bool grab_focus ()
 grab the focus in all parent nodes
 
bool add_key_control (const std::string &property, const std::string &options, cgv::base::group_ptr group=cgv::base::group_ptr())
 add a key control for the given property with the given options.
 
- Public Member Functions inherited from cgv::gui::provider
void remove_element (cgv::base::base_ptr)
 remove a single element from the gui
 
void remove_all_elements ()
 this method removes all elements from the gui and can be used in a method that rebuilds the complete gui
 
cgv::base::base_ptr find_element (const std::string &name)
 find a gui element by name in the current group, return empty pointer if not found
 
template<typename T >
data::ref_ptr< view< T > > find_view (const T &value, int *idx_ptr=0)
 find a view of a given class member
 
template<typename T >
data::ref_ptr< control< T > > find_control (T &value, int *idx_ptr=0)
 find a control of a given class member
 
control_ptr find_control_void (void *value_ptr, int *idx_ptr)
 access to control of untyped member pointer
 
view_ptr find_view_void (void *value_ptr, int *idx_ptr)
 access to view of untyped member pointer
 
template<typename T >
void set_control_property (T &value, const std::string &property_name, const std::string &property_value)
 Set the property value of all controls of a given class member.
 
gui_group_ptr get_parent_group () const
 use the parent group to append to be managed elements that should be destroyed in a post_recreate_gui event
 
view_ptr add_view_void (const std::string &label, const void *value_ptr, const std::string &value_type, const std::string &gui_type, const std::string &options, const std::string &align)
 add a newly created view to the group
 
control_ptr add_control_void (const std::string &label, void *value_ptr, abst_control_provider *acp, const std::string &value_type, const std::string &gui_type, const std::string &options, const std::string &align, void *user_data)
 add a newly created control to the group
 
 provider ()
 default construction
 
 ~provider ()
 ensure to remove posted recreation callbacks
 
virtual std::string get_gui_name () const
 Derive a name for this instance that can be used in the gui as heading.
 
virtual std::string get_parent_type () const
 Returns the group type that should be used by the class embedding the gui of the provider.
 
virtual bool ensure_selected_in_tab_group_parent ()
 ensure that my UI is selected in the parent group in case this is a tab group, otherwise return false
 
virtual void update_member (void *member_ptr)
 call this to update all views and controls of a member
 
virtual void update_all_members ()
 call this to update all views and controls of all member
 
virtual std::string get_menu_path () const
 return a path in the main menu to select the gui
 
virtual shortcut get_shortcut () const
 return a shortcut to activate the gui without menu navigation
 
virtual void recreate_gui ()
 Recreate the gui of this instance right now.
 
virtual void post_recreate_gui ()
 delayed recreation of gui
 
void align (const std::string &_align)
 send pure alignment information
 
std::string concat_enum_def (const std::vector< std::string > &names, const std::string &additional_first_name="", const std::string &additional_last_name="")
 add a new group to the given parent group, not supported yet
 
gui_group_ptr add_object_gui (cgv::base::base_ptr object, const std::string &label, const std::string &group_type, const std::string &options, const std::string &align)
 
void integrate_object_gui (cgv::base::base_ptr object)
 call this in create_gui() function to integrate gui of another provider object by setting the parent group and parent provider of the other object
 
void inline_object_gui (cgv::base::base_ptr object)
 integrate (if not explicitly done before) and inline the gui of another object that must be derived from provider
 
gui_group_ptr add_group (const std::string &label, const std::string &group_type, const std::string &options="", const std::string &align="\n")
 add a newly created subgroup to the group
 
cgv::base::base_ptr add_decorator (const std::string &label, const std::string &decorator_type, const std::string &options="", const std::string &align="\n")
 add a newly created decorator to the group
 
button_ptr add_button (const std::string &label, const std::string &options="", const std::string &align="\n")
 use the current gui driver to append a new button with the given label
 
template<typename T >
data::ref_ptr< view< T > > add_view (const std::string &label, const T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 use this to add a new view to the gui with a given value type, gui type and init options
 
template<typename T >
data::ref_ptr< control< T > > add_control (const std::string &label, T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 use this to add a new control to the gui with a given value type, gui type and init options
 
template<typename T >
data::ref_ptr< control< T > > add_control (const std::string &label, control_provider< T > *provider, const std::string &gui_type="", const std::string &options="", const std::string &align="\n", void *user_data=0)
 use this to add a new control to the gui, where the control is implemented with a control provider class
 
template<typename T >
data::ref_ptr< control< T > > add_member_control (cgv::base::base *base_ptr, const std::string &label, T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 add control with callback to cgv::base::on_set method on cgv::gui::control::value_change
 
bool add_tree_node (const std::string &label, bool &toggle, int level, const std::string &a="\n", gui_group_ptr ggp=gui_group_ptr())
 add a collapsable node to the gui (deprecated)
 
template<typename T >
bool begin_tree_node (const std::string &label, const T &value, bool initial_visibility=false, const std::string &options="", gui_group_ptr ggp=gui_group_ptr())
 Begin a sub tree of a tree structured gui.
 
template<typename T >
void end_tree_node (const T &value)
 template specialization that allows to specify value reference plus node_instance by using the result of the function with_instance(value,idx) for the value argument finish a sub tree begun with begin_tree_node

 
template<typename T >
bool is_tree_node_visible (const T &value) const
 return whether the sub tree attached to a value is visible
 
template<typename T >
void set_tree_node_visibility (const T &value, bool is_visible)
 set the visibility status of sub tree attached to a value. This calls the post_recreate method if needed.
 
bool begin_tree_node_void (const std::string &label, const void *value_ptr, int index=-1, bool initial_visibility=false, const std::string &options="", gui_group_ptr ggp=gui_group_ptr())
 void version of the templated functions
 
void end_tree_node_void (const void *value_ptr, int index=-1)
 
bool is_tree_node_visible_void (const void *value_ptr, int index) const
 
void set_tree_node_visibility_void (const void *value_ptr, int index, bool is_visible)
 
template<typename T >
bool add_gui (const std::string &label, T &value, const std::string &gui_type="", const std::string &options="")
 Add a composed gui of the given gui_type for the given value.
 

Protected Types

enum  InteractionState { IS_NONE , IS_OVER , IS_GRAB }
 
using vec2 = cgv::vec2
 
using vec3 = cgv::vec3
 
using dvec2 = cgv::dvec2
 
using dvec3 = cgv::dvec3
 
using mat3 = cgv::mat3
 
using mat4 = cgv::mat4
 
using rgb = cgv::rgb
 
using rgba = cgv::rgba
 
using quat = cgv::quat
 
using dquat = cgv::dquat
 
using box3 = cgv::box3
 

Protected Attributes

std::vector< box3boxes
 
std::vector< rgbbox_colors
 
cgv::render::box_render_style style
 
cgv::render::cone_render_style cone_style
 
double mesh_scale
 
dvec3 mesh_location
 
dquat mesh_orientation
 
cgv::render::mesh_render_info MI
 
std::string label_text
 
int label_font_idx
 
bool label_upright
 
float label_size
 
rgb label_color
 
unsigned label_resolution
 
cgv::render::texture label_tex
 
cgv::render::frame_buffer label_fbo
 
std::vector< const char * > font_names
 
std::string font_enum_decl
 
cgv::media::font::font_face_ptr label_font_face
 
cgv::media::font::FontFaceAttributes label_face_type
 
std::vector< vr::controller_input_configleft_inp_cfg
 
void * last_kit_handle
 
float ray_length
 
vr_view_interactorvr_view_ptr
 
std::vector< box3movable_boxes
 
std::vector< rgbmovable_box_colors
 
std::vector< vec3movable_box_translations
 
std::vector< quatmovable_box_rotations
 
std::vector< box3frame_boxes
 
std::vector< rgbframe_box_colors
 
std::vector< vec3frame_box_translations
 
std::vector< quatframe_box_rotations
 
std::vector< vec3intersection_points
 
std::vector< rgbintersection_colors
 
std::vector< int > intersection_box_indices
 
std::vector< int > intersection_controller_indices
 
InteractionState state [4]
 
cgv::render::sphere_render_style srs
 
cgv::render::box_render_style movable_style
 
cgv::render::box_render_style wire_frame_style
 
int nr_cameras
 
int frame_width
 
int frame_height
 
int frame_split
 
float seethrough_gamma
 
mat4 camera_to_head_matrix [2]
 
cgv::math::fmat< float, 4, 4 > camera_projection_matrix [4]
 
vec2 focal_lengths [4]
 
vec2 camera_centers [4]
 
cgv::render::texture camera_tex
 
cgv::render::shader_program seethrough
 
GLuint camera_tex_id
 
bool undistorted
 
bool shared_texture
 
bool max_rectangle
 
float camera_aspect
 
bool show_seethrough
 
bool use_matrix
 
float background_distance
 
float background_extent
 
vec2 extent_texcrd
 
vec2 center_left
 
vec2 center_right
 
- Protected Attributes inherited from cgv::base::node
node_ptr parent
 store a pointer to the parent node
 
- Protected Attributes inherited from cgv::base::named
std::string name
 store the name as a string
 
- Protected Attributes inherited from cgv::base::traverse_policy
TraversePolicy policy
 
bool active
 
int focus
 
- Protected Attributes inherited from cgv::gui::provider
gui_group_ptr parent_group
 driver specific handle for the group gui element managing the gui built in the provider
 
providerparent_provider
 

Additional Inherited Members

- Static Public Member Functions inherited from cgv::gui::provider
template<typename T >
static bool & ref_tree_node_visible_flag (const T &value)
 return a reference to the boolean flag, that tells whether the tree node for the passed value is visible
 
static bool & ref_tree_node_visible_flag_void (const void *value_ptr, int index=-1)
 
- Protected Member Functions inherited from cgv::base::base
virtual ~base ()
 make destructor virtual and not accessible from outside
 
- Protected Member Functions inherited from cgv::data::ref_counted
 ref_counted ()
 constructor initializes the count to 0
 
void set_ref_count (int c) const
 write access is also const to allow ref counted pointers to const instances
 
- Protected Member Functions inherited from cgv::gui::provider
void set_parent (gui_group_ptr)
 the gui window sets the parent group through this method
 
void update_parent ()
 update the parent group
 
virtual void on_select ()
 called by selection_change_cb whenever the gui of this provider is selected
 
virtual void on_deselect ()
 called by selection_change_cb whenever the gui of this provider is deselected
 
virtual void selection_change_cb (cgv::base::base_ptr new_child, bool selected)
 this is called by the gui group when the selection changes
 
- Static Protected Member Functions inherited from cgv::base::base
template<class T >
static data::ref_ptr< T, truecast_dynamic (base *b)
 use dynamic cast for upcast to given class
 

Detailed Description

Definition at line 27 of file vr_test.h.

Member Typedef Documentation

◆ box3

using vr_test::box3 = cgv::box3
protected

Definition at line 43 of file vr_test.h.

◆ dquat

using vr_test::dquat = cgv::dquat
protected

Definition at line 42 of file vr_test.h.

◆ dvec2

using vr_test::dvec2 = cgv::dvec2
protected

Definition at line 35 of file vr_test.h.

◆ dvec3

using vr_test::dvec3 = cgv::dvec3
protected

Definition at line 36 of file vr_test.h.

◆ mat3

using vr_test::mat3 = cgv::mat3
protected

Definition at line 37 of file vr_test.h.

◆ mat4

using vr_test::mat4 = cgv::mat4
protected

Definition at line 38 of file vr_test.h.

◆ quat

using vr_test::quat = cgv::quat
protected

Definition at line 41 of file vr_test.h.

◆ rgb

using vr_test::rgb = cgv::rgb
protected

Definition at line 39 of file vr_test.h.

◆ rgba

using vr_test::rgba = cgv::rgba
protected

Definition at line 40 of file vr_test.h.

◆ vec2

using vr_test::vec2 = cgv::vec2
protected

Definition at line 33 of file vr_test.h.

◆ vec3

using vr_test::vec3 = cgv::vec3
protected

Definition at line 34 of file vr_test.h.

Member Enumeration Documentation

◆ InteractionState

enum vr_test::InteractionState
protected

Definition at line 46 of file vr_test.h.

Constructor & Destructor Documentation

◆ vr_test()

vr_test::vr_test ( )

Definition at line 259 of file vr_test.cxx.

Member Function Documentation

◆ build_scene()

void vr_test::build_scene ( float  w,
float  d,
float  h,
float  W,
float  tw,
float  td,
float  th,
float  tW 
)

construct a scene with a table

Definition at line 250 of file vr_test.cxx.

References construct_environment(), construct_movable_boxes(), construct_room(), and construct_table().

◆ clear()

void vr_test::clear ( cgv::render::context )
virtual

clear all objects living in the context like textures or display lists

Reimplemented from cgv::render::drawable.

Definition at line 521 of file vr_test.cxx.

References cgv::render::ref_box_renderer(), cgv::render::ref_cone_renderer(), and cgv::render::ref_sphere_renderer().

◆ compute_intersections()

void vr_test::compute_intersections ( const vec3 origin,
const vec3 direction,
int  ci,
const rgb color 
)

compute intersection points of controller ray with movable boxes

Definition at line 77 of file vr_test.cxx.

Referenced by handle().

◆ construct_environment()

void vr_test::construct_environment ( float  s,
float  ew,
float  ed,
float  w,
float  d,
float  h 
)

construct boxes for environment

Definition at line 195 of file vr_test.cxx.

Referenced by build_scene().

◆ construct_movable_boxes()

void vr_test::construct_movable_boxes ( float  tw,
float  td,
float  th,
float  tW,
size_t  nr 
)

construct boxes that represent a table of dimensions tw,td,th and leg width tW

construct boxes that can be moved around

Definition at line 221 of file vr_test.cxx.

Referenced by build_scene().

◆ construct_room()

void vr_test::construct_room ( float  w,
float  d,
float  h,
float  W,
bool  walls,
bool  ceiling 
)

construct boxes that represent a room of dimensions w,d,h and wall width W

Definition at line 172 of file vr_test.cxx.

Referenced by build_scene().

◆ construct_table()

void vr_test::construct_table ( float  tw,
float  td,
float  th,
float  tW 
)

construct boxes that represent a table of dimensions tw,td,th and leg width tW

Definition at line 153 of file vr_test.cxx.

Referenced by build_scene().

◆ create_gui()

◆ draw()

void vr_test::draw ( cgv::render::context )
virtual

overload to draw the content of this drawable

Reimplemented from cgv::render::drawable.

Definition at line 652 of file vr_test.cxx.

References vr::configure_seethrough_shader_program(), vr::vr_kit_state::controller, cgv::render::texture::disable(), cgv::render::shader_program::disable(), cgv::render::box_renderer::disable(), cgv::render::attribute_array_binding::disable_global_array(), cgv::render::box_renderer::draw(), cgv::render::render_info::draw_all(), cgv::render::texture::enable(), cgv::render::shader_program::enable(), cgv::render::attribute_array_binding::enable_global_array(), vr_view_interactor::get_current_vr_kit(), vr_view_interactor::get_current_vr_state(), vr_view_interactor::get_eye_of_kit(), vr_view_interactor::get_rendered_eye(), vr_view_interactor::get_rendered_vr_kit(), vr_view_interactor::get_view_dir_of_kit(), vr_view_interactor::get_view_up_dir_of_kit(), cgv::render::mesh_render_info::is_constructed(), cgv::render::render_component::is_created(), cgv::render::context::mul_modelview_matrix(), cgv::render::context::pop_modelview_matrix(), cgv::render::context::push_modelview_matrix(), cgv::math::quaternion< T >::put_homogeneous_matrix(), vr::vr_controller_state::put_ray(), cgv::render::ref_box_renderer(), cgv::render::ref_cone_renderer(), cgv::render::context::ref_default_shader_program(), cgv::render::ref_sphere_renderer(), cgv::render::renderer::render(), cgv::render::box_renderer::set_box_array(), cgv::render::context::set_color(), cgv::render::renderer::set_color_array(), cgv::render::attribute_array_binding::set_global_attribute_array(), cgv::render::renderer::set_render_style(), cgv::render::box_renderer::set_rotation_array(), cgv::render::box_renderer::set_translation_array(), cgv::render::shader_program::set_uniform(), vr::vr_trackable_state::status, cgv::render::renderer::validate_and_enable(), and vr::VRS_TRACKED.

◆ finish_draw()

◆ get_type_name()

std::string vr_test::get_type_name ( )
inline

Definition at line 179 of file vr_test.h.

◆ handle()

bool vr_test::handle ( cgv::gui::event e)
virtual

overload and implement this method to handle events

Parameters
eto be handled event (use e.get_kind() to check event type)
Returns
return true for handled events and false otherwise. Other event handlers (e.g. parents) only receive unhandled events if false is returned

Implements cgv::gui::event_handler.

Definition at line 328 of file vr_test.cxx.

References compute_intersections(), vr::vr_kit_state::controller, cgv::gui::EF_VR, cgv::gui::EID_KEY, cgv::gui::EID_POSE, cgv::gui::EID_STICK, cgv::gui::EID_THROTTLE, cgv::gui::key_event::get_action(), cgv::gui::stick_event::get_action(), cgv::gui::stick_event::get_controller_index(), cgv::gui::throttle_event::get_controller_index(), cgv::gui::vr_key_event::get_controller_index(), cgv::gui::event::get_flags(), cgv::gui::key_event::get_key(), cgv::gui::event::get_kind(), cgv::gui::pose_event::get_last_position(), cgv::gui::throttle_event::get_last_value(), cgv::gui::stick_event::get_last_x(), cgv::gui::stick_event::get_last_y(), cgv::gui::pose_event::get_position(), cgv::gui::pose_event::get_rotation_matrix(), cgv::gui::vr_event_extension::get_state(), cgv::gui::get_stick_action_string(), cgv::gui::stick_event::get_stick_index(), cgv::gui::throttle_event::get_throttle_index(), cgv::gui::pose_event::get_trackable_index(), cgv::gui::throttle_event::get_value(), cgv::gui::stick_event::get_x(), cgv::gui::stick_event::get_y(), cgv::gui::KA_RELEASE, cgv::render::drawable::post_redraw(), vr::vr_controller_state::put_ray(), cgv::gui::SA_DRAG, cgv::gui::SA_MOVE, cgv::gui::SA_PRESS, cgv::gui::SA_RELEASE, cgv::gui::SA_TOUCH, cgv::gui::SA_UNPRESS, vr::VR_DPAD_RIGHT, and vr::VR_GRIP.

◆ init()

◆ init_cameras()

void vr_test::init_cameras ( vr::vr_kit kit_ptr)

Definition at line 22 of file vr_test.cxx.

◆ init_frame()

void vr_test::init_frame ( cgv::render::context )
virtual

this method is called in one pass over all drawables before the draw method

Reimplemented from cgv::render::drawable.

Definition at line 528 of file vr_test.cxx.

References cgv::render::frame_buffer::attach(), cgv::render::shader_program::build_program(), cgv::data::CF_RGBA, cgv::render::frame_buffer::create(), cgv::render::texture::create(), cgv::render::frame_buffer::destruct(), cgv::render::texture::destruct(), cgv::render::frame_buffer::disable(), cgv::render::frame_buffer::enable(), cgv::render::context::enable_font_face(), cgv::render::texture::generate_mipmaps(), vr::vr_kit::get_camera(), vr_view_interactor::get_current_vr_kit(), vr::vr_camera::get_frame(), vr::vr_camera::get_frame_split(), vr::vr_camera::get_gl_texture_id(), cgv::data::data_format::get_height(), vr::vr_camera::get_last_error(), vr_view_interactor::get_rendered_eye(), vr_view_interactor::get_rendered_vr_kit(), vr::vr_camera::get_state(), cgv::data::data_format::get_width(), cgv::render::frame_buffer::get_width(), vr::vr_camera::has_error(), cgv::render::frame_buffer::is_complete(), cgv::render::render_component::is_created(), cgv::render::shader_program::is_linked(), cgv::gui::message(), cgv::render::context::output_stream(), cgv::render::context::pop_pixel_coords(), cgv::render::frame_buffer::pop_viewport(), cgv::render::context::push_pixel_coords(), cgv::render::frame_buffer::push_viewport(), cgv::media::axis_aligned_box< T, N >::ref_min_pnt(), cgv::render::texture::replace(), cgv::render::context::set_cursor(), cgv::render::texture::set_mag_filter(), cgv::render::texture::set_min_filter(), cgv::type::info::TI_UINT8, and cgv::gui::provider::update_member().

◆ load_boxes()

bool vr_test::load_boxes ( const std::string  fn,
std::vector< box3 > &  boxes,
std::vector< rgb > &  box_colors,
std::vector< vec3 > &  box_translations,
std::vector< quat > &  box_rotations 
)

loads boxes stored by the save_boxes method from a file

loads boxes stored by the save_boxes method. This method will append the box information from the file to the vectors given by the arguments.

Definition at line 1040 of file vr_test.cxx.

◆ on_device_change()

void vr_test::on_device_change ( void *  kit_handle,
bool  attach 
)

◆ on_set()

void vr_test::on_set ( void *  member_ptr)
virtual

this callback is called when the set_void method has changed a member and can be overloaded in derived class

Reimplemented from cgv::base::base.

Definition at line 307 of file vr_test.cxx.

References cgv::media::font::find_font(), vr::get_vr_kit(), cgv::render::drawable::post_redraw(), vr::vr_kit::set_controller_input_config(), and cgv::gui::provider::update_member().

◆ on_status_change()

void vr_test::on_status_change ( void *  kit_handle,
int  ci,
vr::VRStatus  old_status,
vr::VRStatus  new_status 
)

◆ save_boxes()

bool vr_test::save_boxes ( const std::string  fn,
const std::vector< box3 > &  boxes,
const std::vector< rgb > &  box_colors,
const std::vector< vec3 > &  box_translations,
const std::vector< quat > &  box_rotations 
)

stores configuration of the movable boxes inside a file

stores configuration of the movable boxes inside a file. All passed vectors in the arguments are reqired to have the same number of elements.

Parameters
fn: file for writing the configuration

Definition at line 1010 of file vr_test.cxx.

◆ start_camera()

void vr_test::start_camera ( )

Definition at line 48 of file vr_test.cxx.

◆ stop_camera()

void vr_test::stop_camera ( )

Definition at line 62 of file vr_test.cxx.

◆ stream_help()

void vr_test::stream_help ( std::ostream &  os)
virtual

overload to stream help information to the given output stream

Implements cgv::gui::event_handler.

Definition at line 303 of file vr_test.cxx.

Member Data Documentation

◆ background_distance

float vr_test::background_distance
protected

Definition at line 147 of file vr_test.h.

◆ background_extent

float vr_test::background_extent
protected

Definition at line 148 of file vr_test.h.

◆ box_colors

std::vector<rgb> vr_test::box_colors
protected

Definition at line 55 of file vr_test.h.

◆ boxes

std::vector<box3> vr_test::boxes
protected

Definition at line 54 of file vr_test.h.

◆ camera_aspect

float vr_test::camera_aspect
protected

Definition at line 144 of file vr_test.h.

◆ camera_centers

vec2 vr_test::camera_centers[4]
protected

Definition at line 137 of file vr_test.h.

◆ camera_projection_matrix

cgv::math::fmat<float, 4, 4> vr_test::camera_projection_matrix[4]
protected

Definition at line 135 of file vr_test.h.

◆ camera_tex

cgv::render::texture vr_test::camera_tex
protected

Definition at line 138 of file vr_test.h.

◆ camera_tex_id

GLuint vr_test::camera_tex_id
protected

Definition at line 140 of file vr_test.h.

◆ camera_to_head_matrix

mat4 vr_test::camera_to_head_matrix[2]
protected

Definition at line 134 of file vr_test.h.

◆ center_left

vec2 vr_test::center_left
protected

Definition at line 150 of file vr_test.h.

◆ center_right

vec2 vr_test::center_right
protected

Definition at line 151 of file vr_test.h.

◆ cone_style

cgv::render::cone_render_style vr_test::cone_style
protected

Definition at line 59 of file vr_test.h.

◆ extent_texcrd

vec2 vr_test::extent_texcrd
protected

Definition at line 149 of file vr_test.h.

◆ focal_lengths

vec2 vr_test::focal_lengths[4]
protected

Definition at line 136 of file vr_test.h.

◆ font_enum_decl

std::string vr_test::font_enum_decl
protected

Definition at line 86 of file vr_test.h.

◆ font_names

std::vector<const char*> vr_test::font_names
protected

Definition at line 85 of file vr_test.h.

◆ frame_box_colors

std::vector<rgb> vr_test::frame_box_colors
protected

Definition at line 112 of file vr_test.h.

◆ frame_box_rotations

std::vector<quat> vr_test::frame_box_rotations
protected

Definition at line 114 of file vr_test.h.

◆ frame_box_translations

std::vector<vec3> vr_test::frame_box_translations
protected

Definition at line 113 of file vr_test.h.

◆ frame_boxes

std::vector<box3> vr_test::frame_boxes
protected

Definition at line 111 of file vr_test.h.

◆ frame_height

int vr_test::frame_height
protected

Definition at line 131 of file vr_test.h.

◆ frame_split

int vr_test::frame_split
protected

Definition at line 132 of file vr_test.h.

◆ frame_width

int vr_test::frame_width
protected

Definition at line 131 of file vr_test.h.

◆ intersection_box_indices

std::vector<int> vr_test::intersection_box_indices
protected

Definition at line 119 of file vr_test.h.

◆ intersection_colors

std::vector<rgb> vr_test::intersection_colors
protected

Definition at line 118 of file vr_test.h.

◆ intersection_controller_indices

std::vector<int> vr_test::intersection_controller_indices
protected

Definition at line 120 of file vr_test.h.

◆ intersection_points

std::vector<vec3> vr_test::intersection_points
protected

Definition at line 117 of file vr_test.h.

◆ label_color

rgb vr_test::label_color
protected

Definition at line 74 of file vr_test.h.

◆ label_face_type

cgv::media::font::FontFaceAttributes vr_test::label_face_type
protected

Definition at line 90 of file vr_test.h.

◆ label_fbo

cgv::render::frame_buffer vr_test::label_fbo
protected

Definition at line 82 of file vr_test.h.

◆ label_font_face

cgv::media::font::font_face_ptr vr_test::label_font_face
protected

Definition at line 89 of file vr_test.h.

◆ label_font_idx

int vr_test::label_font_idx
protected

Definition at line 71 of file vr_test.h.

◆ label_resolution

unsigned vr_test::label_resolution
protected

Definition at line 80 of file vr_test.h.

◆ label_size

float vr_test::label_size
protected

Definition at line 73 of file vr_test.h.

◆ label_tex

cgv::render::texture vr_test::label_tex
protected

Definition at line 81 of file vr_test.h.

◆ label_text

std::string vr_test::label_text
protected

Definition at line 70 of file vr_test.h.

◆ label_upright

bool vr_test::label_upright
protected

Definition at line 72 of file vr_test.h.

◆ last_kit_handle

void* vr_test::last_kit_handle
protected

Definition at line 96 of file vr_test.h.

◆ left_inp_cfg

std::vector<vr::controller_input_config> vr_test::left_inp_cfg
protected

Definition at line 93 of file vr_test.h.

◆ max_rectangle

bool vr_test::max_rectangle
protected

Definition at line 143 of file vr_test.h.

◆ mesh_location

dvec3 vr_test::mesh_location
protected

Definition at line 63 of file vr_test.h.

◆ mesh_orientation

dquat vr_test::mesh_orientation
protected

Definition at line 64 of file vr_test.h.

◆ mesh_scale

double vr_test::mesh_scale
protected

Definition at line 62 of file vr_test.h.

◆ MI

cgv::render::mesh_render_info vr_test::MI
protected

Definition at line 67 of file vr_test.h.

◆ movable_box_colors

std::vector<rgb> vr_test::movable_box_colors
protected

Definition at line 106 of file vr_test.h.

◆ movable_box_rotations

std::vector<quat> vr_test::movable_box_rotations
protected

Definition at line 108 of file vr_test.h.

◆ movable_box_translations

std::vector<vec3> vr_test::movable_box_translations
protected

Definition at line 107 of file vr_test.h.

◆ movable_boxes

std::vector<box3> vr_test::movable_boxes
protected

Definition at line 105 of file vr_test.h.

◆ movable_style

cgv::render::box_render_style vr_test::movable_style
protected

Definition at line 127 of file vr_test.h.

◆ nr_cameras

int vr_test::nr_cameras
protected

Definition at line 130 of file vr_test.h.

◆ ray_length

float vr_test::ray_length
protected

Definition at line 99 of file vr_test.h.

◆ seethrough

cgv::render::shader_program vr_test::seethrough
protected

Definition at line 139 of file vr_test.h.

◆ seethrough_gamma

float vr_test::seethrough_gamma
protected

Definition at line 133 of file vr_test.h.

◆ shared_texture

bool vr_test::shared_texture
protected

Definition at line 142 of file vr_test.h.

◆ show_seethrough

bool vr_test::show_seethrough
protected

Definition at line 145 of file vr_test.h.

◆ srs

cgv::render::sphere_render_style vr_test::srs
protected

Definition at line 126 of file vr_test.h.

◆ state

InteractionState vr_test::state[4]
protected

Definition at line 123 of file vr_test.h.

◆ style

cgv::render::box_render_style vr_test::style
protected

Definition at line 58 of file vr_test.h.

◆ undistorted

bool vr_test::undistorted
protected

Definition at line 141 of file vr_test.h.

◆ use_matrix

bool vr_test::use_matrix
protected

Definition at line 146 of file vr_test.h.

◆ vr_view_ptr

vr_view_interactor* vr_test::vr_view_ptr
protected

Definition at line 102 of file vr_test.h.

◆ wire_frame_style

cgv::render::box_render_style vr_test::wire_frame_style
protected

Definition at line 128 of file vr_test.h.


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