VTK  9.0.1
vtkGenericGlyph3DFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGenericGlyph3DFilter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
79 #ifndef vtkGenericGlyph3DFilter_h
80 #define vtkGenericGlyph3DFilter_h
81 
82 #include "vtkFiltersGenericModule.h" // For export macro
83 #include "vtkPolyDataAlgorithm.h"
84 
85 #define VTK_SCALE_BY_SCALAR 0
86 #define VTK_SCALE_BY_VECTOR 1
87 #define VTK_SCALE_BY_VECTORCOMPONENTS 2
88 #define VTK_DATA_SCALING_OFF 3
89 
90 #define VTK_COLOR_BY_SCALE 0
91 #define VTK_COLOR_BY_SCALAR 1
92 #define VTK_COLOR_BY_VECTOR 2
93 
94 #define VTK_USE_VECTOR 0
95 #define VTK_USE_NORMAL 1
96 #define VTK_VECTOR_ROTATION_OFF 2
97 
98 #define VTK_INDEXING_OFF 0
99 #define VTK_INDEXING_BY_SCALAR 1
100 #define VTK_INDEXING_BY_VECTOR 2
101 
102 class VTKFILTERSGENERIC_EXPORT vtkGenericGlyph3DFilter : public vtkPolyDataAlgorithm
103 {
104 public:
106  void PrintSelf(ostream& os, vtkIndent indent) override;
107 
114  static vtkGenericGlyph3DFilter* New();
115 
119  void SetSourceData(vtkPolyData* pd) { this->SetSourceData(0, pd); }
120 
124  void SetSourceData(int id, vtkPolyData* pd);
125 
129  vtkPolyData* GetSource(int id = 0);
130 
132 
135  vtkSetMacro(Scaling, vtkTypeBool);
136  vtkBooleanMacro(Scaling, vtkTypeBool);
137  vtkGetMacro(Scaling, vtkTypeBool);
139 
141 
144  vtkSetMacro(ScaleMode, int);
145  vtkGetMacro(ScaleMode, int);
146  void SetScaleModeToScaleByScalar() { this->SetScaleMode(VTK_SCALE_BY_SCALAR); }
147  void SetScaleModeToScaleByVector() { this->SetScaleMode(VTK_SCALE_BY_VECTOR); }
149  {
150  this->SetScaleMode(VTK_SCALE_BY_VECTORCOMPONENTS);
151  }
152  void SetScaleModeToDataScalingOff() { this->SetScaleMode(VTK_DATA_SCALING_OFF); }
153  const char* GetScaleModeAsString();
155 
157 
160  vtkSetMacro(ColorMode, int);
161  vtkGetMacro(ColorMode, int);
162  void SetColorModeToColorByScale() { this->SetColorMode(VTK_COLOR_BY_SCALE); }
163  void SetColorModeToColorByScalar() { this->SetColorMode(VTK_COLOR_BY_SCALAR); }
164  void SetColorModeToColorByVector() { this->SetColorMode(VTK_COLOR_BY_VECTOR); }
165  const char* GetColorModeAsString();
167 
169 
172  vtkSetMacro(ScaleFactor, double);
173  vtkGetMacro(ScaleFactor, double);
175 
177 
180  vtkSetVector2Macro(Range, double);
181  vtkGetVectorMacro(Range, double, 2);
183 
185 
188  vtkSetMacro(Orient, vtkTypeBool);
189  vtkBooleanMacro(Orient, vtkTypeBool);
190  vtkGetMacro(Orient, vtkTypeBool);
192 
194 
198  vtkSetMacro(Clamping, vtkTypeBool);
199  vtkBooleanMacro(Clamping, vtkTypeBool);
200  vtkGetMacro(Clamping, vtkTypeBool);
202 
204 
207  vtkSetMacro(VectorMode, int);
208  vtkGetMacro(VectorMode, int);
209  void SetVectorModeToUseVector() { this->SetVectorMode(VTK_USE_VECTOR); }
210  void SetVectorModeToUseNormal() { this->SetVectorMode(VTK_USE_NORMAL); }
212  const char* GetVectorModeAsString();
214 
216 
221  vtkSetMacro(IndexMode, int);
222  vtkGetMacro(IndexMode, int);
223  void SetIndexModeToScalar() { this->SetIndexMode(VTK_INDEXING_BY_SCALAR); }
224  void SetIndexModeToVector() { this->SetIndexMode(VTK_INDEXING_BY_VECTOR); }
225  void SetIndexModeToOff() { this->SetIndexMode(VTK_INDEXING_OFF); }
226  const char* GetIndexModeAsString();
228 
230 
236  vtkSetMacro(GeneratePointIds, vtkTypeBool);
237  vtkGetMacro(GeneratePointIds, vtkTypeBool);
238  vtkBooleanMacro(GeneratePointIds, vtkTypeBool);
240 
242 
246  vtkSetStringMacro(PointIdsName);
247  vtkGetStringMacro(PointIdsName);
249 
251 
255  vtkGetStringMacro(InputScalarsSelection);
256  void SelectInputScalars(const char* fieldName) { this->SetInputScalarsSelection(fieldName); }
258 
260 
264  vtkGetStringMacro(InputVectorsSelection);
265  void SelectInputVectors(const char* fieldName) { this->SetInputVectorsSelection(fieldName); }
267 
269 
273  vtkGetStringMacro(InputNormalsSelection);
274  void SelectInputNormals(const char* fieldName) { this->SetInputNormalsSelection(fieldName); }
276 
277 protected:
279  ~vtkGenericGlyph3DFilter() override;
280 
281  int FillInputPortInformation(int, vtkInformation*) override;
282 
286  vtkPolyData** Source; // Geometry to copy to each point
287  vtkTypeBool Scaling; // Determine whether scaling of geometry is performed
288  int ScaleMode; // Scale by scalar value or vector magnitude
289  int ColorMode; // new scalars based on scale, scalar or vector
290  double ScaleFactor; // Scale factor to use to scale geometry
291  double Range[2]; // Range to use to perform scalar scaling
292  vtkTypeBool Orient; // boolean controls whether to "orient" data
293  int VectorMode; // Orient/scale via normal or via vector data
294  vtkTypeBool Clamping; // whether to clamp scale factor
295  int IndexMode; // what to use to index into glyph table
296  vtkTypeBool GeneratePointIds; // produce input points ids for each output point
298 
302  vtkSetStringMacro(InputScalarsSelection);
303  vtkSetStringMacro(InputVectorsSelection);
304  vtkSetStringMacro(InputNormalsSelection);
305 
306 private:
308  void operator=(const vtkGenericGlyph3DFilter&) = delete;
309 };
310 
312 
316 {
317  if (this->ScaleMode == VTK_SCALE_BY_SCALAR)
318  {
319  return "ScaleByScalar";
320  }
321  else if (this->ScaleMode == VTK_SCALE_BY_VECTOR)
322  {
323  return "ScaleByVector";
324  }
325  else
326  {
327  return "DataScalingOff";
328  }
329 }
331 
333 
337 {
338  if (this->ColorMode == VTK_COLOR_BY_SCALAR)
339  {
340  return "ColorByScalar";
341  }
342  else if (this->ColorMode == VTK_COLOR_BY_VECTOR)
343  {
344  return "ColorByVector";
345  }
346  else
347  {
348  return "ColorByScale";
349  }
350 }
352 
354 
358 {
359  if (this->VectorMode == VTK_USE_VECTOR)
360  {
361  return "UseVector";
362  }
363  else if (this->VectorMode == VTK_USE_NORMAL)
364  {
365  return "UseNormal";
366  }
367  else
368  {
369  return "VectorRotationOff";
370  }
371 }
373 
375 
379 {
380  if (this->IndexMode == VTK_INDEXING_OFF)
381  {
382  return "IndexingOff";
383  }
384  else if (this->IndexMode == VTK_INDEXING_BY_SCALAR)
385  {
386  return "IndexingByScalar";
387  }
388  else
389  {
390  return "IndexingByVector";
391  }
392 }
394 
395 #endif
vtk::Range
auto Range(IterablePtr iterable, Options &&... opts) -> typename detail::IterableTraits< typename detail::StripPointers< IterablePtr >::type >::RangeType
Generate an iterable STL proxy object for a VTK container.
Definition: vtkRange.h:85
vtkGenericGlyph3DFilter::ScaleMode
int ScaleMode
Definition: vtkGenericGlyph3DFilter.h:288
VTK_USE_VECTOR
#define VTK_USE_VECTOR
Definition: vtkGenericGlyph3DFilter.h:94
vtkGenericGlyph3DFilter::SetIndexModeToScalar
void SetIndexModeToScalar()
Definition: vtkGenericGlyph3DFilter.h:223
vtkGenericGlyph3DFilter::InputVectorsSelection
char * InputVectorsSelection
Definition: vtkGenericGlyph3DFilter.h:300
vtkGenericGlyph3DFilter::SetSourceData
void SetSourceData(vtkPolyData *pd)
Set the source to use for the glyph.
Definition: vtkGenericGlyph3DFilter.h:119
vtkGenericGlyph3DFilter::SetVectorModeToVectorRotationOff
void SetVectorModeToVectorRotationOff()
Definition: vtkGenericGlyph3DFilter.h:211
vtkGenericGlyph3DFilter::SetColorModeToColorByScale
void SetColorModeToColorByScale()
Definition: vtkGenericGlyph3DFilter.h:162
vtkGenericGlyph3DFilter::InputScalarsSelection
char * InputScalarsSelection
Definition: vtkGenericGlyph3DFilter.h:299
vtkGenericGlyph3DFilter::Source
vtkPolyData ** Source
Definition: vtkGenericGlyph3DFilter.h:286
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:35
vtkGenericGlyph3DFilter::SetScaleModeToScaleByScalar
void SetScaleModeToScaleByScalar()
Definition: vtkGenericGlyph3DFilter.h:146
vtkGenericGlyph3DFilter::SetColorModeToColorByVector
void SetColorModeToColorByVector()
Definition: vtkGenericGlyph3DFilter.h:164
VTK_INDEXING_OFF
#define VTK_INDEXING_OFF
Definition: vtkGenericGlyph3DFilter.h:98
VTK_USE_NORMAL
#define VTK_USE_NORMAL
Definition: vtkGenericGlyph3DFilter.h:95
vtkPolyDataAlgorithm::RequestUpdateExtent
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkGenericGlyph3DFilter::SetScaleModeToScaleByVector
void SetScaleModeToScaleByVector()
Definition: vtkGenericGlyph3DFilter.h:147
vtkGenericGlyph3DFilter::GetVectorModeAsString
const char * GetVectorModeAsString()
Return the vector mode as a character string.
Definition: vtkGenericGlyph3DFilter.h:357
vtkGenericGlyph3DFilter::SelectInputNormals
void SelectInputNormals(const char *fieldName)
Definition: vtkGenericGlyph3DFilter.h:274
VTK_COLOR_BY_SCALAR
#define VTK_COLOR_BY_SCALAR
Definition: vtkGenericGlyph3DFilter.h:91
vtkGenericGlyph3DFilter::VectorMode
int VectorMode
Definition: vtkGenericGlyph3DFilter.h:293
vtkPolyDataAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
VTK_VECTOR_ROTATION_OFF
#define VTK_VECTOR_ROTATION_OFF
Definition: vtkGenericGlyph3DFilter.h:96
VTK_COLOR_BY_SCALE
#define VTK_COLOR_BY_SCALE
Definition: vtkGenericGlyph3DFilter.h:90
vtkGenericGlyph3DFilter::SelectInputScalars
void SelectInputScalars(const char *fieldName)
Definition: vtkGenericGlyph3DFilter.h:256
vtkPolyDataAlgorithm.h
vtkGenericGlyph3DFilter::IndexMode
int IndexMode
Definition: vtkGenericGlyph3DFilter.h:295
vtkGenericGlyph3DFilter::SelectInputVectors
void SelectInputVectors(const char *fieldName)
Definition: vtkGenericGlyph3DFilter.h:265
vtkGenericGlyph3DFilter::Orient
vtkTypeBool Orient
Definition: vtkGenericGlyph3DFilter.h:292
vtkGenericGlyph3DFilter::PointIdsName
char * PointIdsName
Definition: vtkGenericGlyph3DFilter.h:297
vtkGenericGlyph3DFilter::GetColorModeAsString
const char * GetColorModeAsString()
Return the method of coloring as a descriptive character string.
Definition: vtkGenericGlyph3DFilter.h:336
vtkPolyDataAlgorithm::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
VTK_SCALE_BY_SCALAR
#define VTK_SCALE_BY_SCALAR
Definition: vtkGenericGlyph3DFilter.h:85
VTK_SCALE_BY_VECTORCOMPONENTS
#define VTK_SCALE_BY_VECTORCOMPONENTS
Definition: vtkGenericGlyph3DFilter.h:87
vtkPolyDataAlgorithm::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkGenericGlyph3DFilter::Clamping
vtkTypeBool Clamping
Definition: vtkGenericGlyph3DFilter.h:294
vtkGenericGlyph3DFilter::Scaling
vtkTypeBool Scaling
Definition: vtkGenericGlyph3DFilter.h:287
vtkGenericGlyph3DFilter::GetIndexModeAsString
const char * GetIndexModeAsString()
Return the index mode as a character string.
Definition: vtkGenericGlyph3DFilter.h:378
vtkGenericGlyph3DFilter::SetVectorModeToUseNormal
void SetVectorModeToUseNormal()
Definition: vtkGenericGlyph3DFilter.h:210
vtkGenericGlyph3DFilter::SetVectorModeToUseVector
void SetVectorModeToUseVector()
Definition: vtkGenericGlyph3DFilter.h:209
VTK_INDEXING_BY_VECTOR
#define VTK_INDEXING_BY_VECTOR
Definition: vtkGenericGlyph3DFilter.h:100
VTK_INDEXING_BY_SCALAR
#define VTK_INDEXING_BY_SCALAR
Definition: vtkGenericGlyph3DFilter.h:99
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:73
VTK_COLOR_BY_VECTOR
#define VTK_COLOR_BY_VECTOR
Definition: vtkGenericGlyph3DFilter.h:92
vtkGenericGlyph3DFilter::SetScaleModeToDataScalingOff
void SetScaleModeToDataScalingOff()
Definition: vtkGenericGlyph3DFilter.h:152
vtkGenericGlyph3DFilter::ScaleFactor
double ScaleFactor
Definition: vtkGenericGlyph3DFilter.h:290
vtkGenericGlyph3DFilter::GetScaleModeAsString
const char * GetScaleModeAsString()
Return the method of scaling as a descriptive character string.
Definition: vtkGenericGlyph3DFilter.h:315
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkGenericGlyph3DFilter::SetColorModeToColorByScalar
void SetColorModeToColorByScalar()
Definition: vtkGenericGlyph3DFilter.h:163
vtkGenericGlyph3DFilter::SetScaleModeToScaleByVectorComponents
void SetScaleModeToScaleByVectorComponents()
Definition: vtkGenericGlyph3DFilter.h:148
VTK_SCALE_BY_VECTOR
#define VTK_SCALE_BY_VECTOR
Definition: vtkGenericGlyph3DFilter.h:86
vtkGenericGlyph3DFilter::ColorMode
int ColorMode
Definition: vtkGenericGlyph3DFilter.h:289
vtkGenericGlyph3DFilter
copy oriented and scaled glyph geometry to every input point
Definition: vtkGenericGlyph3DFilter.h:102
vtkGenericGlyph3DFilter::InputNormalsSelection
char * InputNormalsSelection
Definition: vtkGenericGlyph3DFilter.h:301
vtkGenericGlyph3DFilter::SetIndexModeToVector
void SetIndexModeToVector()
Definition: vtkGenericGlyph3DFilter.h:224
vtkGenericGlyph3DFilter::GeneratePointIds
vtkTypeBool GeneratePointIds
Definition: vtkGenericGlyph3DFilter.h:296
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkGenericGlyph3DFilter::SetIndexModeToOff
void SetIndexModeToOff()
Definition: vtkGenericGlyph3DFilter.h:225
vtkPolyDataAlgorithm::New
static vtkPolyDataAlgorithm * New()
vtkPolyDataAlgorithm::RequestInformation
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
VTK_DATA_SCALING_OFF
#define VTK_DATA_SCALING_OFF
Definition: vtkGenericGlyph3DFilter.h:88
vtkPolyDataAlgorithm
Superclass for algorithms that produce only polydata as output.
Definition: vtkPolyDataAlgorithm.h:41