VectorSettings.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: UnstructGrid
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2011, Ceetron AS
8 // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Ceetron AS. The contents of this file may
9 // not be disclosed to third parties, copied or duplicated in any form, in whole or in part,
10 // without the prior written permission of Ceetron AS.
11 //##################################################################################################
12 
13 #pragma once
14 
15 #include "CeeUnstructGrid/Base.h"
16 
17 #include "CeeCore/RefCountedObject.h"
18 #include "CeeCore/Color3f.h"
19 
20 namespace cee {
21 namespace ug {
22 
23 
24 //==================================================================================================
25 //
26 //
27 //
28 //==================================================================================================
29 class CEE_UG_EXPORT VectorSettings : public RefCountedObject
30 {
31 public:
32  enum ColorMode
33  {
35  COLOR_BY_FRINGES
36  };
37 
38  enum ScaleMode
39  {
41  RELATIVE_SCALING
42  };
43 
44  enum DrawMode
45  {
47  SIMPLE
48  };
49 
50 
51 public:
52  virtual ~VectorSettings();
53 
54  ScaleMode scaleMode() const;
55  double scaleFactor() const;
56  void setScaleFactor(ScaleMode mode, double scaleFactor);
57 
58  bool resultInLocalCoordinates() const;
59  void setResultInLocalCoordinates(bool localCoordinates);
60 
61  ColorMode colorMode() const;
62  void setColorMode(ColorMode colorMode);
63  Color3f singleVectorColor() const;
64  void setSingleVectorColor(const Color3f& color);
65 
66  int simpleVectorLineWidth() const;
67  void setSimpleVectorLineWidth(int width);
68 
69  DrawMode drawMode() const;
70  void setDrawMode(DrawMode mode);
71 
72  double arrowShaftRelativeRadius() const;
73  void setArrowShaftRelativeRadius(double shaftRelativeRadius);
74  double arrowHeadRelativeRadius() const;
75  void setArrowHeadRelativeRadius(double headRelativeRadius);
76  double arrowHeadRelativeLength() const;
77  void setArrowHeadRelativeLength(double headRelativeLength);
78 
79  bool isClampingEnabled() const;
80  double clampingRangeMinimum() const;
81  double clampingRangeMaximum() const;
82  void setClampingRange(double min, double max);
83  void disableClamping();
84 
85  bool isLengthFilteringEnabled() const;
86  double lengthFilteringMinimum() const;
87  double lengthFilteringMaximum() const;
88  void setLengthFilteringRange(double min, double max);
89  void disableLengthFiltering();
90 
91  bool showInteriorVectors() const;
92  void setShowInteriorVectors(bool show);
93 
94  unsigned int drawSkipBy() const;
95  void setDrawSkipBy(unsigned int skipBy);
96 
97  size_t drawMaximumCount() const;
98  void setDrawMaximumCount(size_t maximumCount);
99 
100 private:
101  VectorSettings();
102  CEE_PRIVATE_F(UnstructGridModel);
103  CEE_PRIVATE_IMPL(VectorSettings);
104  CEE_DISALLOW_COPY_AND_ASSIGN(VectorSettings);
105 };
106 
107 } // namespace ug
108 } // namespace cee
109 
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
ScaleMode
List of vector scaling modes.
Definition: VectorSettings.h:38
Single vector color.
Definition: VectorSettings.h:34
3D primitive with shading
Definition: VectorSettings.h:46
Base class for all reference counted objects with built-in support for intrusive reference counting...
Definition: RefCountedObject.h:34
Class for storing an RGB color triplet.
Definition: Color3f.h:25
Absolute scaling of vectors.
Definition: VectorSettings.h:40
DrawMode
List of vector draw modes.
Definition: VectorSettings.h:44
UnstructGridModel is a subclass of Model which adds specific model structure and functionality for re...
Definition: UnstructGridModel.h:72
Settings for a specific vector result.
Definition: VectorSettings.h:29
ColorMode
List of vector color modes.
Definition: VectorSettings.h:32