libVFRendering  0.14.0

A vector field rendering library
ArrowRenderer.hxx
1 #ifndef VFRENDERING_ARROW_RENDERER_HXX
2 #define VFRENDERING_ARROW_RENDERER_HXX
3 
4 #include <VFRendering/GlyphRenderer.hxx>
5 
6 namespace VFRendering {
7 class ArrowRenderer : public GlyphRenderer {
8 public:
9  enum Option {
10  CONE_RADIUS = 200,
11  CONE_HEIGHT,
12  CYLINDER_RADIUS,
13  CYLINDER_HEIGHT,
14  LEVEL_OF_DETAIL
15  };
16 
17  ArrowRenderer(const View& view, const VectorField& vf);
18  virtual void optionsHaveChanged(const std::vector<int>& changed_options) override;
19 };
20 
21 namespace Utilities {
22 template<>
23 struct Options::Option<ArrowRenderer::Option::CONE_RADIUS> {
24  float default_value = 0.25f;
25 };
26 
27 
28 template<>
29 struct Options::Option<ArrowRenderer::Option::CONE_HEIGHT> {
30  float default_value = 0.6f;
31 };
32 
33 
34 template<>
35 struct Options::Option<ArrowRenderer::Option::CYLINDER_RADIUS> {
36  float default_value = 0.125f;
37 };
38 
39 
40 template<>
41 struct Options::Option<ArrowRenderer::Option::CYLINDER_HEIGHT> {
42  float default_value = 0.7f;
43 };
44 
45 
46 template<>
47 struct Options::Option<ArrowRenderer::Option::LEVEL_OF_DETAIL> {
48  unsigned int default_value = 20;
49 };
50 }
51 }
52 
53 #endif
VFRendering::VectorField
Definition: VectorField.hxx:16
VFRendering::ArrowRenderer
Definition: ArrowRenderer.hxx:7
VFRendering::View
Definition: View.hxx:23
VFRendering::GlyphRenderer
Definition: GlyphRenderer.hxx:7