cgv
cgv::render::gl::image_drawable Class Reference

base class of drawables that show static or animated images More...

#include <image_drawable.h>

Inheritance diagram for cgv::render::gl::image_drawable:
cgv::render::drawable cgv::base::traverse_policy

Public Types

typedef cgv::math::fvec< cgv::type::int32_type, 2 > vec2i
 type of pixel coordinates
 
typedef cgv::media::axis_aligned_box< cgv::type::int32_type, 2 > box2i
 type of a pixel box
 
typedef cgv::media::color< float, cgv::media::RGB > rgb
 declare rgb color type
 
typedef cgv::media::color< float, cgv::media::RGB, cgv::media::OPACITY > rgba
 declare rgba color type
 
typedef cgv::media::color< cgv::type::uint8_type, cgv::media::RGB > rgb8
 declare rgb color type
 
typedef cgv::media::color< cgv::type::uint8_type, cgv::media::RGB, cgv::media::OPACITY > rgba8
 declare rgba color type
 
typedef cgv::math::fvec< float, 2 > vec2
 declare type of 2d vectors
 
typedef cgv::math::fvec< float, 3 > vec3
 declare type of 3d vectors
 
typedef cgv::math::fvec< float, 4 > vec4
 declare type of homogeneous vectors
 
typedef cgv::math::vec< float > vecn
 declare type of vector with varying dimension
 
typedef cgv::math::fmat< float, 2, 2 > mat2
 declare type of 2x2 matrices
 
typedef cgv::math::fmat< float, 3, 3 > mat3
 declare type of 3x3 matrices
 
typedef cgv::math::fmat< float, 4, 4 > mat4
 declare type of 4x4 matrices
 
typedef cgv::math::fmat< float, 3, 4 > mat34
 declare type of 3x4 matrices which are often used to store a pose
 
typedef cgv::math::mat< float > matn
 declare type of matrices of varying dimensions
 
typedef cgv::math::fvec< double, 2 > dvec2
 declare type of 2d vectors
 
typedef cgv::math::fvec< double, 3 > dvec3
 declare type of 3d vectors
 
typedef cgv::math::fvec< double, 4 > dvec4
 declare type of homogeneous vectors
 
typedef cgv::math::vec< double > dvecn
 declare type of vector with varying dimension
 
typedef cgv::math::fmat< double, 2, 2 > dmat2
 declare type of 2x2 matrices
 
typedef cgv::math::fmat< double, 3, 3 > dmat3
 declare type of 3x3 matrices
 
typedef cgv::math::fmat< double, 4, 4 > dmat4
 declare type of 4x4 matrices
 
typedef cgv::math::fmat< double, 3, 4 > dmat34
 declare type of 3x4 matrices which are often used to store a pose
 
typedef cgv::math::mat< double > dmatn
 declare type of matrices of varying dimensions
 
typedef cgv::media::axis_aligned_box< float, 2 > box2
 declare type of 2d boxes
 
typedef cgv::media::axis_aligned_box< float, 3 > box3
 declare type of 3d boxes
 
typedef cgv::media::axis_aligned_box< float, 4 > box4
 declare type of 4d boxes
 
typedef cgv::media::axis_aligned_box< double, 2 > dbox2
 declare type of 2d boxes
 
typedef cgv::media::axis_aligned_box< double, 3 > dbox3
 declare type of 3d boxes
 
typedef cgv::media::axis_aligned_box< double, 4 > dbox4
 declare type of 4d boxes
 
typedef cgv::math::quaternion< float > quat
 declare type of quaternion
 
typedef cgv::math::quaternion< double > dquat
 declare type of double quaternion
 
typedef cgv::math::fvec< int32_t, 2 > ivec2
 declare type of 2d integer vectors
 
typedef cgv::math::fvec< int32_t, 3 > ivec3
 declare type of 3d integer vectors
 
typedef cgv::math::fvec< int32_t, 4 > ivec4
 declare type of 4d integer vectors
 
typedef cgv::math::fvec< uint32_t, 2 > uvec2
 declare type of 2d unsigned integer vectors
 
typedef cgv::math::fvec< uint32_t, 3 > uvec3
 declare type of 3d unsigned integer vectors
 
typedef cgv::math::fvec< uint32_t, 4 > uvec4
 declare type of 4d unsigned integer vectors
 

Public Member Functions

 image_drawable ()
 construct base image drawable
 
void timer_event (double t, double dt)
 timer event that can be used for animation, connect this to some animation trigger
 
bool read_image (const std::string &_file_name)
 function to read a single image
 
bool read_images (const std::string &_file_name, const std::vector< std::string > &_files)
 function to read a list of images
 
bool save_images (const std::string &output_file_name)
 function to save all images
 
unsigned get_nr_images () const
 return the number of loaded subimages
 
bool init (context &)
 construct shader program
 
void draw (context &)
 draw the image
 
void clear (context &)
 destruct textures and shader program
 
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
 
cgv::render::viewfind_view_as_node (size_t view_idx=0) const
 convenience function to find the view control in the current hierarchy More...
 
bool get_world_location (int x, int y, const cgv::render::view &V, cgv::math::fvec< double, 3 > &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) More...
 
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 More...
 
virtual void init_frame (context &)
 this method is called in one pass over all drawables before the draw method
 
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 finish_frame (context &)
 this method is called in one pass over all drawables after drawing
 
virtual void after_finish (cgv::render::context &)
 this method is called in one pass over all drawables after finish frame
 
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
 

Protected Attributes

box2i selection
 extent selection box
 
bool show_selection
 whether to show the selection rectangle
 
int W
 extent of image
 

Detailed Description

base class of drawables that show static or animated images

Member Function Documentation

◆ find_view_as_node()

cgv::render::view * cgv::render::drawable::find_view_as_node ( size_t  view_idx = 0) const
inherited

convenience function to find the view control in the current hierarchy

this only works if your class inherits from the cgv::base::node class.

◆ get_world_location()

bool cgv::render::drawable::get_world_location ( int  x,
int  y,
const cgv::render::view V,
cgv::math::fvec< double, 3 > &  world_location,
double *  window_z_ptr = 0 
) const
inherited

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)

returns true if a world location could be computed which is the case when the context pointer of the drawable has been set and when the mouse location points inside a valid view panel.

◆ resize()

void cgv::render::drawable::resize ( unsigned int  w,
unsigned int  h 
)
virtualinherited

callback to announce resizing of the output window

callback to anounce resizing of the output window


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