libVFRendering  0.14.0

A vector field rendering library
SurfaceRenderer.hxx
1 #ifndef VFRENDERING_SURFACE_RENDERER_HXX
2 #define VFRENDERING_SURFACE_RENDERER_HXX
3 
4 #include <array>
5 
6 #include <VFRendering/VectorFieldRenderer.hxx>
7 
8 namespace VFRendering {
9 
11 public:
12  SurfaceRenderer(const View& view, const VectorField& vf);
13  virtual ~SurfaceRenderer();
14  virtual void draw(float aspect_ratio) override;
15  virtual void optionsHaveChanged(const std::vector<int>& changed_options) override;
16 
17 protected:
18  virtual void update(bool keep_geometry) override;
19 
20 private:
21  void updateShaderProgram();
22  void updateSurfaceIndices();
23  void initialize();
24 
25  bool m_is_initialized = false;
26  unsigned int m_program = 0;
27  unsigned int m_vao = 0;
28  unsigned int m_ibo = 0;
29  unsigned int m_position_vbo = 0;
30  unsigned int m_direction_vbo = 0;
31  unsigned int m_num_indices = 0;
32 };
33 
34 }
35 
36 #endif
VFRendering::VectorField
Definition: VectorField.hxx:16
VFRendering::VectorFieldRenderer
Definition: VectorFieldRenderer.hxx:13
VFRendering::View
Definition: View.hxx:23
VFRendering::SurfaceRenderer
Definition: SurfaceRenderer.hxx:10