fieldVisualisationBase.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::fieldVisualisationBase
26 
27 Description
28 
29 SourceFiles
30  fieldVisualisationBase.C
31 
32 \*---------------------------------------------------------------------------*/
33 
34 #ifndef fieldVisualisationBase_H
35 #define fieldVisualisationBase_H
36 
37 #include "dictionary.H"
38 #include "Tuple2.H"
39 #include "NamedEnum.H"
40 #include "vector.H"
41 #include "HashPtrTable.H"
42 #include "DataEntry.H"
43 
44 #include "vtkSmartPointer.h"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 class vtkActor;
49 class vtkLookupTable;
50 class vtkPolyData;
51 class vtkPolyDataMapper;
52 class vtkRenderer;
53 
54 
55 class vtkMapper;
56 
57 namespace Foam
58 {
59 
60 class runTimePostProcessing;
61 
62 /*---------------------------------------------------------------------------*\
63  Class fieldVisualisationBase Declaration
64 \*---------------------------------------------------------------------------*/
65 
67 {
68 public:
69 
70  // Public enumerations
71 
72  enum colourByType
73  {
75  cbField
76  };
77 
79 
80  enum colourMapType
81  {
86  };
87 
89 
90 
91 private:
92 
93  // Private data
94 
95  //- Reference to the parent function object
97 
98 
99  // Private Member Functions
100 
101  //- Disallow default bitwise copy construct
103 
104  //- Disallow default bitwise assignment
105  void operator=(const fieldVisualisationBase&);
106 
107 
108 protected:
109 
110  // Protected data
111 
112  struct scalarBar
113  {
114  bool visible_;
115  bool vertical_;
117  string title_;
119  string labelFormat_;
121  };
122 
123  //- Colours
125 
126  //- Field name
128 
129  //- Colour by type
131 
132  //- Colour map type
134 
135  //- Range of values
137 
138  //- Scalar bar
140 
141 
142  // Protected Member Functions
143 
144  //- Set the colour map
145  void setColourMap(vtkLookupTable* lut) const;
146 
147  //- Add scalar bar to renderer
148  void addScalarBar
149  (
150  const scalar position,
151  vtkRenderer* renderer,
152  vtkLookupTable* lut
153  ) const;
154 
155  //- Set field/configure mapper, add scalar bar
156  void setField
157  (
158  const scalar position,
159  const word& colourFieldName,
160  vtkPolyDataMapper* mapper,
161  vtkRenderer* renderer
162  ) const;
163 
164  //- Add glyphs
165  void addGlyphs
166  (
167  const scalar position,
168  const word& scaleFieldName,
169  const word& colourFieldName,
170  const scalar maxGlyphLength,
171  vtkPolyData* data,
172  vtkActor* actor,
173  vtkRenderer* renderer
174  ) const;
175 
176 
177 public:
178 
179  // Constructors
180 
181  //- Construct from dictionary
183  (
184  const runTimePostProcessing& parent,
185  const dictionary& dict,
187  );
188 
189 
190  //- Destructor
191  virtual ~fieldVisualisationBase();
192 
193 
194  // Member Functions
195 
196  // Access
197 
198  //- Return the colours
200 
201  //- Return the field name
202  const word& fieldName() const;
203 };
204 
205 
206 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
207 
208 } // End namespace Foam
209 
210 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
211 
212 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
213 
214 #endif
215 
216 // ************************************************************************* //
Foam::fieldVisualisationBase::operator=
void operator=(const fieldVisualisationBase &)
Disallow default bitwise assignment.
Foam::fieldVisualisationBase::setColourMap
void setColourMap(vtkLookupTable *lut) const
Set the colour map.
Definition: fieldVisualisationBase.C:76
Foam::fieldVisualisationBase::scalarBar::title_
string title_
Definition: fieldVisualisationBase.H:116
Foam::word
A class for handling words, derived from string.
Definition: word.H:59
Foam::fieldVisualisationBase::setField
void setField(const scalar position, const word &colourFieldName, vtkPolyDataMapper *mapper, vtkRenderer *renderer) const
Set field/configure mapper, add scalar bar.
Definition: fieldVisualisationBase.C:242
Foam::fieldVisualisationBase::scalarBar::visible_
bool visible_
Definition: fieldVisualisationBase.H:113
Foam::fieldVisualisationBase::cmGreyscale
@ cmGreyscale
Definition: fieldVisualisationBase.H:84
Foam::fieldVisualisationBase::scalarBar::numberOfLabels_
label numberOfLabels_
Definition: fieldVisualisationBase.H:119
Tuple2.H
Foam::fieldVisualisationBase::cmRainbow
@ cmRainbow
Definition: fieldVisualisationBase.H:81
Foam::fieldVisualisationBase::cbField
@ cbField
Definition: fieldVisualisationBase.H:74
NamedEnum.H
Foam::fieldVisualisationBase::colourMap_
colourMapType colourMap_
Colour map type.
Definition: fieldVisualisationBase.H:132
Foam::fieldVisualisationBase::colourBy_
colourByType colourBy_
Colour by type.
Definition: fieldVisualisationBase.H:129
Foam::fieldVisualisationBase::colourMapType
colourMapType
Definition: fieldVisualisationBase.H:79
Foam::fieldVisualisationBase::scalarBar::position_
Tuple2< scalar, scalar > position_
Definition: fieldVisualisationBase.H:115
Foam::fieldVisualisationBase::scalarBar::fontSize_
label fontSize_
Definition: fieldVisualisationBase.H:117
Foam::runTimePostProcessing
Function object to generate images during run-time.
Definition: runTimePostProcessing.H:83
Foam::fieldVisualisationBase::cmBlueWhiteRed
@ cmBlueWhiteRed
Definition: fieldVisualisationBase.H:82
Foam::fieldVisualisationBase::~fieldVisualisationBase
virtual ~fieldVisualisationBase()
Destructor.
Definition: fieldVisualisationBase.C:486
Foam::fieldVisualisationBase::addGlyphs
void addGlyphs(const scalar position, const word &scaleFieldName, const word &colourFieldName, const scalar maxGlyphLength, vtkPolyData *data, vtkActor *actor, vtkRenderer *renderer) const
Add glyphs.
Definition: fieldVisualisationBase.C:287
Foam::fieldVisualisationBase::cmFire
@ cmFire
Definition: fieldVisualisationBase.H:83
Foam::fieldVisualisationBase::scalarBar
Definition: fieldVisualisationBase.H:111
Foam::fieldVisualisationBase::scalarBar_
scalarBar scalarBar_
Scalar bar.
Definition: fieldVisualisationBase.H:138
DataEntry.H
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
Foam::fieldVisualisationBase::range_
Tuple2< scalar, scalar > range_
Range of values.
Definition: fieldVisualisationBase.H:135
Foam::fieldVisualisationBase::colours
const HashPtrTable< DataEntry< vector >, word > & colours() const
Return the colours.
Definition: fieldVisualisationBase.C:493
Foam::fieldVisualisationBase::scalarBar::vertical_
bool vertical_
Definition: fieldVisualisationBase.H:114
Foam::fieldVisualisationBase
Definition: fieldVisualisationBase.H:65
Foam::fieldVisualisationBase::colourMapTypeNames
static const NamedEnum< colourMapType, 4 > colourMapTypeNames
Definition: fieldVisualisationBase.H:87
Foam::fieldVisualisationBase::colourByType
colourByType
Definition: fieldVisualisationBase.H:71
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::fieldVisualisationBase::parent_
const runTimePostProcessing & parent_
Reference to the parent function object.
Definition: fieldVisualisationBase.H:95
Foam::fieldVisualisationBase::fieldName
const word & fieldName() const
Return the field name.
Definition: fieldVisualisationBase.C:499
Foam::fieldVisualisationBase::fieldVisualisationBase
fieldVisualisationBase(const fieldVisualisationBase &)
Disallow default bitwise copy construct.
Foam::HashPtrTable
A HashTable specialization for hashing pointers.
Definition: HashPtrTable.H:50
HashPtrTable.H
dictionary.H
Foam::fieldVisualisationBase::colourByTypeNames
static const NamedEnum< colourByType, 2 > colourByTypeNames
Definition: fieldVisualisationBase.H:77
Foam::fieldVisualisationBase::cbColour
@ cbColour
Definition: fieldVisualisationBase.H:73
Foam::fieldVisualisationBase::colours_
const HashPtrTable< DataEntry< vector >, word > & colours_
Colours.
Definition: fieldVisualisationBase.H:123
vector.H
Foam::fieldVisualisationBase::addScalarBar
void addScalarBar(const scalar position, vtkRenderer *renderer, vtkLookupTable *lut) const
Add scalar bar to renderer.
Definition: fieldVisualisationBase.C:133
Foam::fieldVisualisationBase::fieldName_
word fieldName_
Field name.
Definition: fieldVisualisationBase.H:126
Foam::Tuple2< scalar, scalar >
Foam::fieldVisualisationBase::scalarBar::labelFormat_
string labelFormat_
Definition: fieldVisualisationBase.H:118
Foam::DataEntry
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
Definition: DataEntry.H:52
Foam::data
Database for solution data, solver performance and other reduced data.
Definition: data.H:52
Foam::NamedEnum< colourByType, 2 >