cgv
Loading...
Searching...
No Matches
cgv::render::callback_drawable Struct Reference

as a drawable can manage only a single context, this callback drawable is a work around for the case when a drawable should draw in several contexts (i.e. More...

#include <callback_drawable.h>

Inheritance diagram for cgv::render::callback_drawable:
cgv::base::node cgv::render::drawable cgv::base::named cgv::base::traverse_policy cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag

Public Member Functions

 callback_drawable (const std::string &name)
 
void resize (unsigned w, unsigned h)
 
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 finish_frame (cgv::render::context &ctx)
 this method is called in one pass over all drawables after drawing
 
void after_finish (cgv::render::context &ctx)
 this method is called in one pass over all drawables after finish frame
 
- 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::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
 
- 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 Attributes

cgv::signal::signal< unsigned, unsigned > resize_callback
 
cgv::signal::bool_signal< cgv::render::context & > init_callback
 
cgv::signal::signal< cgv::render::context & > clear_callback
 
cgv::signal::signal< cgv::render::context & > init_frame_callback
 
cgv::signal::signal< cgv::render::context & > draw_callback
 
cgv::signal::signal< cgv::render::context & > finish_draw_callback
 
cgv::signal::signal< cgv::render::context & > finish_frame_callback
 
cgv::signal::signal< cgv::render::context & > after_finish_callback
 

Additional Inherited Members

- 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
 
- 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
 
- 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
 

Detailed Description

as a drawable can manage only a single context, this callback drawable is a work around for the case when a drawable should draw in several contexts (i.e.

two windows). Then the callback drawable can be registered in the second window and its callback signals can be connected to methods in the primary drawable.

Definition at line 16 of file callback_drawable.h.

Constructor & Destructor Documentation

◆ callback_drawable()

cgv::render::callback_drawable::callback_drawable ( const std::string &  name)

Definition at line 6 of file callback_drawable.cxx.

Member Function Documentation

◆ after_finish()

void cgv::render::callback_drawable::after_finish ( cgv::render::context )
virtual

this method is called in one pass over all drawables after finish frame

Reimplemented from cgv::render::drawable.

Definition at line 37 of file callback_drawable.cxx.

◆ clear()

void cgv::render::callback_drawable::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 17 of file callback_drawable.cxx.

◆ draw()

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

overload to draw the content of this drawable

Reimplemented from cgv::render::drawable.

Definition at line 25 of file callback_drawable.cxx.

◆ finish_draw()

void cgv::render::callback_drawable::finish_draw ( cgv::render::context )
virtual

this method is called when the current drawable is left in a tree traversal that calls the draw method

Reimplemented from cgv::render::drawable.

Definition at line 29 of file callback_drawable.cxx.

◆ finish_frame()

void cgv::render::callback_drawable::finish_frame ( cgv::render::context )
virtual

this method is called in one pass over all drawables after drawing

Reimplemented from cgv::render::drawable.

Definition at line 33 of file callback_drawable.cxx.

◆ init()

bool cgv::render::callback_drawable::init ( cgv::render::context )
virtual

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

Reimplemented from cgv::render::drawable.

Definition at line 13 of file callback_drawable.cxx.

◆ init_frame()

void cgv::render::callback_drawable::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 21 of file callback_drawable.cxx.

◆ resize()

void cgv::render::callback_drawable::resize ( unsigned  w,
unsigned  h 
)

Definition at line 9 of file callback_drawable.cxx.

Member Data Documentation

◆ after_finish_callback

cgv::signal::signal<cgv::render::context&> cgv::render::callback_drawable::after_finish_callback

Definition at line 34 of file callback_drawable.h.

◆ clear_callback

cgv::signal::signal<cgv::render::context&> cgv::render::callback_drawable::clear_callback

Definition at line 24 of file callback_drawable.h.

◆ draw_callback

cgv::signal::signal<cgv::render::context&> cgv::render::callback_drawable::draw_callback

Definition at line 28 of file callback_drawable.h.

◆ finish_draw_callback

cgv::signal::signal<cgv::render::context&> cgv::render::callback_drawable::finish_draw_callback

Definition at line 30 of file callback_drawable.h.

◆ finish_frame_callback

cgv::signal::signal<cgv::render::context&> cgv::render::callback_drawable::finish_frame_callback

Definition at line 32 of file callback_drawable.h.

◆ init_callback

cgv::signal::bool_signal<cgv::render::context&> cgv::render::callback_drawable::init_callback

Definition at line 22 of file callback_drawable.h.

◆ init_frame_callback

cgv::signal::signal<cgv::render::context&> cgv::render::callback_drawable::init_frame_callback

Definition at line 26 of file callback_drawable.h.

◆ resize_callback

cgv::signal::signal<unsigned, unsigned> cgv::render::callback_drawable::resize_callback

Definition at line 20 of file callback_drawable.h.


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