cgv
image_drawable.h
1 #pragma once
2 
3 #include <cgv/render/drawable.h>
4 #include <cgv/render/shader_program.h>
5 #include <cgv/render/vertex_buffer.h>
6 #include <cgv/render/attribute_array_binding.h>
7 
8 #include "lib_begin.h"
9 
10 namespace cgv {
11  namespace render {
12  namespace gl {
13 
15 class CGV_API image_drawable : public drawable
16 {
17 public:
22 protected:
23  std::vector<unsigned> tex_ids;
24  std::vector<float> durations;
25  unsigned current_image;
26  std::string file_name;
27  std::vector<std::string> files;
30 
31  double start_time;
32  double anim_time;
33  double aspect;
34 
35  bool animate;
36  bool use_blending;
37  bool wireframe;
38 
39  float tess_level;
40 
43 
46 
48  int W,H;
49 
50  vec4 min_value;
51  vec4 max_value;
52  vec4 gamma4;
53 
54  float checker_lambda, k1, k2, k3, k4, k5, k6, p1, p2, cx, cy, s;
55 
56  // mixing
57  bool use_mixing;
58  unsigned mix_with;
59  float mix_param;
60 
61  // sperical projection
62  bool spherical;
63  vec2 pan_tilt;
64  float scale;
65 
67 public:
71  void timer_event(double t, double dt);
73  bool read_image(const std::string& _file_name);
75  bool read_images(const std::string& _file_name, const std::vector<std::string>& _files);
77  bool save_images(const std::string& output_file_name);
79  unsigned get_nr_images() const { return (unsigned) tex_ids.size(); }
81  bool init(context&);
83  void draw(context&);
85  void clear(context&);
86 };
87 
88  }
89  }
90 }
91 
92 #include <cgv/config/lib_end.h>
cgv::render::attribute_array_binding
Definition: attribute_array_binding.h:20
cgv::math::fvec
Definition: fvec.h:18
cgv::render::vertex_buffer
Definition: vertex_buffer.h:13
cgv::render::gl::image_drawable::vec2i
cgv::math::fvec< cgv::type::int32_type, 2 > vec2i
type of pixel coordinates
Definition: image_drawable.h:19
cgv::render::gl::image_drawable::get_nr_images
unsigned get_nr_images() const
return the number of loaded subimages
Definition: image_drawable.h:79
cgv::render::gl::image_drawable::box2i
cgv::media::axis_aligned_box< cgv::type::int32_type, 2 > box2i
type of a pixel box
Definition: image_drawable.h:21
cgv::render::shader_program
Definition: shader_program.h:25
cgv::media::axis_aligned_box< cgv::type::int32_type, 2 >
cgv::render::drawable
Definition: drawable.h:15
cgv::render::gl::image_drawable::W
int W
extent of image
Definition: image_drawable.h:48
cgv::render::gl::image_drawable::selection
box2i selection
extent selection box
Definition: image_drawable.h:42
cgv::render::gl::image_drawable
base class of drawables that show static or animated images
Definition: image_drawable.h:16
cgv::render::gl::image_drawable::show_selection
bool show_selection
whether to show the selection rectangle
Definition: image_drawable.h:45
cgv
the cgv namespace
Definition: vr_calib.cxx:9
cgv::render::context
Definition: context.h:525