cgv
Loading...
Searching...
No Matches
cgv::app::gizmo Class Referenceabstract
Inheritance diagram for cgv::app::gizmo:
cgv::base::node cgv::gui::event_handler cgv::render::drawable cgv::base::named cgv::base::traverse_policy cgv::base::traverse_policy cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag cgv::app::transformation_gizmo

Public Member Functions

std::string get_type_name () const override
 overload to return the type name of this object. By default the type interface is queried over get_type.
 
bool init (cgv::render::context &) override=0
 this method is called after creation or recreation of the context, return whether all necessary functionality is supported
 
void clear (cgv::render::context &) override=0
 clear all objects living in the context like textures or display lists
 
void finish_frame (cgv::render::context &) override
 this method is called in one pass over all drawables after drawing
 
bool handle (cgv::gui::event &e) override
 overload and implement this method to handle events
 
void stream_help (std::ostream &os) override
 overload to stream help information to the given output stream
 
GizmoOrientation get_orientation () const
 
void set_orientation (GizmoOrientation orientation)
 
vec3 get_position () const
 
void set_position (const vec3 &position)
 
quat get_rotation () const
 
void set_rotation (const quat &rotation)
 
- 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 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
 
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::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::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::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 init_frame (context &)
 this method is called in one pass over all drawables before the draw method
 
virtual void draw (context &)
 overload to draw the content of this drawable
 
virtual void finish_draw (context &)
 this method is called when the current drawable is left in a tree traversal that calls the draw method
 
virtual void after_finish (context &)
 this method is called in one pass over all drawables after finish frame
 

Public Attributes

float size_scale = 1.0f
 
bool keep_screen_size_constant = true
 
bool lock_size_during_interaction = false
 

Protected Types

enum class  InteractionFeature { kNone = 0 , kAxis , kPlane , kCenter }
 
enum class  AxisId { kX = 0 , kY = 1 , kZ = 2 }
 

Protected Member Functions

float get_size () const
 
const cgv::render::viewget_view () const
 
void set_geometry_out_of_date ()
 
bool captured_mouse () const
 
bool is_hovered () const
 
int axis_id_to_index (AxisId axis) const
 
AxisId index_to_axis_id (int idx) const
 
vec3 get_axis (int index) const
 
vec3 get_axis_mask (InteractionFeature feature, AxisId axis_id) const
 
- 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 Attributes

InteractionFeature _interaction_feature = InteractionFeature::kNone
 
AxisId _interaction_axis_id = AxisId::kX
 
plane _interaction_plane
 
cgv::math::ray3 _drag_start_ray
 
float _drag_start_t = 0.0f
 
- 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
 

Additional Inherited Members

- 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 36 of file gizmo.h.

Member Enumeration Documentation

◆ AxisId

enum class cgv::app::gizmo::AxisId
strongprotected

Definition at line 77 of file gizmo.h.

◆ InteractionFeature

enum class cgv::app::gizmo::InteractionFeature
strongprotected

Definition at line 70 of file gizmo.h.

Member Function Documentation

◆ axis_id_to_index()

int cgv::app::gizmo::axis_id_to_index ( AxisId  axis) const
protected

Definition at line 207 of file gizmo.cxx.

◆ captured_mouse()

bool cgv::app::gizmo::captured_mouse ( ) const
protected

Definition at line 179 of file gizmo.cxx.

◆ clear()

void cgv::app::gizmo::clear ( cgv::render::context )
overridepure virtual

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

Reimplemented from cgv::render::drawable.

Implemented in cgv::app::transformation_gizmo.

◆ finish_frame()

◆ get_axis()

vec3 cgv::app::gizmo::get_axis ( int  index) const
protected

Definition at line 187 of file gizmo.cxx.

◆ get_axis_mask()

vec3 cgv::app::gizmo::get_axis_mask ( InteractionFeature  feature,
AxisId  axis_id 
) const
protected

Definition at line 194 of file gizmo.cxx.

◆ get_orientation()

GizmoOrientation cgv::app::gizmo::get_orientation ( ) const

Definition at line 140 of file gizmo.cxx.

◆ get_position()

vec3 cgv::app::gizmo::get_position ( ) const

Definition at line 149 of file gizmo.cxx.

◆ get_rotation()

quat cgv::app::gizmo::get_rotation ( ) const

Definition at line 158 of file gizmo.cxx.

◆ get_size()

float cgv::app::gizmo::get_size ( ) const
protected

Definition at line 167 of file gizmo.cxx.

◆ get_type_name()

std::string cgv::app::gizmo::get_type_name ( ) const
inlineoverridevirtual

overload to return the type name of this object. By default the type interface is queried over get_type.

overload to return the type name of this object

Reimplemented from cgv::base::base.

Reimplemented in cgv::app::transformation_gizmo.

Definition at line 41 of file gizmo.h.

◆ get_view()

const cgv::render::view * cgv::app::gizmo::get_view ( ) const
protected

Definition at line 171 of file gizmo.cxx.

◆ handle()

◆ index_to_axis_id()

gizmo::AxisId cgv::app::gizmo::index_to_axis_id ( int  idx) const
protected

Definition at line 211 of file gizmo.cxx.

◆ init()

bool cgv::app::gizmo::init ( cgv::render::context )
overridepure virtual

this method is called after creation or recreation of the context, return whether all necessary functionality is supported

Reimplemented from cgv::render::drawable.

Implemented in cgv::app::transformation_gizmo.

◆ is_hovered()

bool cgv::app::gizmo::is_hovered ( ) const
protected

Definition at line 183 of file gizmo.cxx.

◆ set_geometry_out_of_date()

void cgv::app::gizmo::set_geometry_out_of_date ( )
protected

Definition at line 175 of file gizmo.cxx.

◆ set_orientation()

void cgv::app::gizmo::set_orientation ( GizmoOrientation  orientation)

Definition at line 144 of file gizmo.cxx.

◆ set_position()

void cgv::app::gizmo::set_position ( const vec3 position)

Definition at line 153 of file gizmo.cxx.

◆ set_rotation()

void cgv::app::gizmo::set_rotation ( const quat rotation)

Definition at line 162 of file gizmo.cxx.

◆ stream_help()

void cgv::app::gizmo::stream_help ( std::ostream &  os)
inlineoverridevirtual

overload to stream help information to the given output stream

Implements cgv::gui::event_handler.

Definition at line 51 of file gizmo.h.

Member Data Documentation

◆ _drag_start_ray

cgv::math::ray3 cgv::app::gizmo::_drag_start_ray
protected

Definition at line 86 of file gizmo.h.

◆ _drag_start_t

float cgv::app::gizmo::_drag_start_t = 0.0f
protected

Definition at line 87 of file gizmo.h.

◆ _interaction_axis_id

AxisId cgv::app::gizmo::_interaction_axis_id = AxisId::kX
protected

Definition at line 84 of file gizmo.h.

◆ _interaction_feature

InteractionFeature cgv::app::gizmo::_interaction_feature = InteractionFeature::kNone
protected

Definition at line 83 of file gizmo.h.

◆ _interaction_plane

plane cgv::app::gizmo::_interaction_plane
protected

Definition at line 85 of file gizmo.h.

◆ keep_screen_size_constant

bool cgv::app::gizmo::keep_screen_size_constant = true

Definition at line 66 of file gizmo.h.

◆ lock_size_during_interaction

bool cgv::app::gizmo::lock_size_during_interaction = false

Definition at line 67 of file gizmo.h.

◆ size_scale

float cgv::app::gizmo::size_scale = 1.0f

Definition at line 65 of file gizmo.h.


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