VTK
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 =========================================================================*/
81 #ifndef vtkGenericGlyph3DFilter_h
82 #define vtkGenericGlyph3DFilter_h
83 
84 #include "vtkFiltersGenericModule.h" // For export macro
85 #include "vtkPolyDataAlgorithm.h"
86 
87 #define VTK_SCALE_BY_SCALAR 0
88 #define VTK_SCALE_BY_VECTOR 1
89 #define VTK_SCALE_BY_VECTORCOMPONENTS 2
90 #define VTK_DATA_SCALING_OFF 3
91 
92 #define VTK_COLOR_BY_SCALE 0
93 #define VTK_COLOR_BY_SCALAR 1
94 #define VTK_COLOR_BY_VECTOR 2
95 
96 #define VTK_USE_VECTOR 0
97 #define VTK_USE_NORMAL 1
98 #define VTK_VECTOR_ROTATION_OFF 2
99 
100 #define VTK_INDEXING_OFF 0
101 #define VTK_INDEXING_BY_SCALAR 1
102 #define VTK_INDEXING_BY_VECTOR 2
103 
105 {
106 public:
108  void PrintSelf(ostream& os, vtkIndent indent);
109 
115 
117  void SetSourceData(vtkPolyData *pd) {this->SetSourceData(0,pd);};
118 
120  void SetSourceData(int id, vtkPolyData *pd);
121 
123  vtkPolyData *GetSource(int id=0);
124 
126 
127  vtkSetMacro(Scaling,int);
128  vtkBooleanMacro(Scaling,int);
129  vtkGetMacro(Scaling,int);
131 
133 
134  vtkSetMacro(ScaleMode,int);
135  vtkGetMacro(ScaleMode,int);
137  {this->SetScaleMode(VTK_SCALE_BY_SCALAR);};
139  {this->SetScaleMode(VTK_SCALE_BY_VECTOR);};
141  {this->SetScaleMode(VTK_SCALE_BY_VECTORCOMPONENTS);};
143  {this->SetScaleMode(VTK_DATA_SCALING_OFF);};
144  const char *GetScaleModeAsString();
146 
148 
149  vtkSetMacro(ColorMode,int);
150  vtkGetMacro(ColorMode,int);
152  {this->SetColorMode(VTK_COLOR_BY_SCALE);};
154  {this->SetColorMode(VTK_COLOR_BY_SCALAR);};
156  {this->SetColorMode(VTK_COLOR_BY_VECTOR);};
157  const char *GetColorModeAsString();
159 
161 
162  vtkSetMacro(ScaleFactor,double);
163  vtkGetMacro(ScaleFactor,double);
165 
167 
168  vtkSetVector2Macro(Range,double);
169  vtkGetVectorMacro(Range,double,2);
171 
173 
174  vtkSetMacro(Orient,int);
175  vtkBooleanMacro(Orient,int);
176  vtkGetMacro(Orient,int);
178 
180 
182  vtkSetMacro(Clamping,int);
183  vtkBooleanMacro(Clamping,int);
184  vtkGetMacro(Clamping,int);
186 
188 
189  vtkSetMacro(VectorMode,int);
190  vtkGetMacro(VectorMode,int);
191  void SetVectorModeToUseVector() {this->SetVectorMode(VTK_USE_VECTOR);};
192  void SetVectorModeToUseNormal() {this->SetVectorMode(VTK_USE_NORMAL);};
194  {this->SetVectorMode(VTK_VECTOR_ROTATION_OFF);};
195  const char *GetVectorModeAsString();
197 
199 
202  vtkSetMacro(IndexMode,int);
203  vtkGetMacro(IndexMode,int);
204  void SetIndexModeToScalar() {this->SetIndexMode(VTK_INDEXING_BY_SCALAR);};
205  void SetIndexModeToVector() {this->SetIndexMode(VTK_INDEXING_BY_VECTOR);};
206  void SetIndexModeToOff() {this->SetIndexMode(VTK_INDEXING_OFF);};
207  const char *GetIndexModeAsString();
209 
211 
215  vtkSetMacro(GeneratePointIds,int);
216  vtkGetMacro(GeneratePointIds,int);
217  vtkBooleanMacro(GeneratePointIds,int);
219 
221 
224  vtkSetStringMacro(PointIdsName);
225  vtkGetStringMacro(PointIdsName);
227 
229 
232  vtkGetStringMacro(InputScalarsSelection);
233  void SelectInputScalars(const char *fieldName)
234  {this->SetInputScalarsSelection(fieldName);}
236 
238 
241  vtkGetStringMacro(InputVectorsSelection);
242  void SelectInputVectors(const char *fieldName)
243  {this->SetInputVectorsSelection(fieldName);}
245 
247 
250  vtkGetStringMacro(InputNormalsSelection);
251  void SelectInputNormals(const char *fieldName)
252  {this->SetInputNormalsSelection(fieldName);}
254 
255 protected:
258 
260 
264  vtkPolyData **Source; // Geometry to copy to each point
265  int Scaling; // Determine whether scaling of geometry is performed
266  int ScaleMode; // Scale by scalar value or vector magnitude
267  int ColorMode; // new scalars based on scale, scalar or vector
268  double ScaleFactor; // Scale factor to use to scale geometry
269  double Range[2]; // Range to use to perform scalar scaling
270  int Orient; // boolean controls whether to "orient" data
271  int VectorMode; // Orient/scale via normal or via vector data
272  int Clamping; // whether to clamp scale factor
273  int IndexMode; // what to use to index into glyph table
274  int GeneratePointIds; // produce input points ids for each output point
276 
280  vtkSetStringMacro(InputScalarsSelection);
281  vtkSetStringMacro(InputVectorsSelection);
282  vtkSetStringMacro(InputNormalsSelection);
283 
284 private:
285  vtkGenericGlyph3DFilter(const vtkGenericGlyph3DFilter&); // Not implemented.
286  void operator=(const vtkGenericGlyph3DFilter&); // Not implemented.
287 };
288 
290 
292 {
293  if ( this->ScaleMode == VTK_SCALE_BY_SCALAR )
294  {
295  return "ScaleByScalar";
296  }
297  else if ( this->ScaleMode == VTK_SCALE_BY_VECTOR )
298  {
299  return "ScaleByVector";
300  }
301  else
302  {
303  return "DataScalingOff";
304  }
305 }
307 
309 
311 {
312  if ( this->ColorMode == VTK_COLOR_BY_SCALAR )
313  {
314  return "ColorByScalar";
315  }
316  else if ( this->ColorMode == VTK_COLOR_BY_VECTOR )
317  {
318  return "ColorByVector";
319  }
320  else
321  {
322  return "ColorByScale";
323  }
324 }
326 
328 
330 {
331  if ( this->VectorMode == VTK_USE_VECTOR)
332  {
333  return "UseVector";
334  }
335  else if ( this->VectorMode == VTK_USE_NORMAL)
336  {
337  return "UseNormal";
338  }
339  else
340  {
341  return "VectorRotationOff";
342  }
343 }
345 
347 
349 {
350  if ( this->IndexMode == VTK_INDEXING_OFF)
351  {
352  return "IndexingOff";
353  }
354  else if ( this->IndexMode == VTK_INDEXING_BY_SCALAR)
355  {
356  return "IndexingByScalar";
357  }
358  else
359  {
360  return "IndexingByVector";
361  }
362 }
364 
365 #endif
vtkGenericGlyph3DFilter::ScaleMode
int ScaleMode
Definition: vtkGenericGlyph3DFilter.h:266
VTK_USE_VECTOR
#define VTK_USE_VECTOR
Definition: vtkGenericGlyph3DFilter.h:96
vtkGenericGlyph3DFilter::SetIndexModeToScalar
void SetIndexModeToScalar()
Definition: vtkGenericGlyph3DFilter.h:204
vtkGenericGlyph3DFilter::InputVectorsSelection
char * InputVectorsSelection
Definition: vtkGenericGlyph3DFilter.h:278
vtkSetVector2Macro
#define vtkSetVector2Macro(name, type)
Definition: vtkSetGet.h:254
vtkGenericGlyph3DFilter::SetSourceData
void SetSourceData(vtkPolyData *pd)
Definition: vtkGenericGlyph3DFilter.h:117
vtkFiltersGenericModule.h
vtkGenericGlyph3DFilter::SetVectorModeToVectorRotationOff
void SetVectorModeToVectorRotationOff()
Definition: vtkGenericGlyph3DFilter.h:193
vtkGenericGlyph3DFilter::SetColorModeToColorByScale
void SetColorModeToColorByScale()
Definition: vtkGenericGlyph3DFilter.h:151
vtkGenericGlyph3DFilter::InputScalarsSelection
char * InputScalarsSelection
Definition: vtkGenericGlyph3DFilter.h:277
vtkGenericGlyph3DFilter::Source
vtkPolyData ** Source
Definition: vtkGenericGlyph3DFilter.h:264
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkGenericGlyph3DFilter::GetSource
vtkPolyData * GetSource(int id=0)
vtkGenericGlyph3DFilter::SetScaleModeToScaleByScalar
void SetScaleModeToScaleByScalar()
Definition: vtkGenericGlyph3DFilter.h:136
vtkGenericGlyph3DFilter::SetColorModeToColorByVector
void SetColorModeToColorByVector()
Definition: vtkGenericGlyph3DFilter.h:155
VTK_INDEXING_OFF
#define VTK_INDEXING_OFF
Definition: vtkGenericGlyph3DFilter.h:100
VTK_USE_NORMAL
#define VTK_USE_NORMAL
Definition: vtkGenericGlyph3DFilter.h:97
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkGenericGlyph3DFilter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkGenericGlyph3DFilter::SetScaleModeToScaleByVector
void SetScaleModeToScaleByVector()
Definition: vtkGenericGlyph3DFilter.h:138
vtkGenericGlyph3DFilter::GetVectorModeAsString
const char * GetVectorModeAsString()
Definition: vtkGenericGlyph3DFilter.h:329
vtkGenericGlyph3DFilter::SelectInputNormals
void SelectInputNormals(const char *fieldName)
Definition: vtkGenericGlyph3DFilter.h:251
VTK_COLOR_BY_SCALAR
#define VTK_COLOR_BY_SCALAR
Definition: vtkGenericGlyph3DFilter.h:93
vtkGenericGlyph3DFilter::VectorMode
int VectorMode
Definition: vtkGenericGlyph3DFilter.h:271
vtkGetVectorMacro
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
VTK_VECTOR_ROTATION_OFF
#define VTK_VECTOR_ROTATION_OFF
Definition: vtkGenericGlyph3DFilter.h:98
vtkGenericGlyph3DFilter::~vtkGenericGlyph3DFilter
~vtkGenericGlyph3DFilter()
VTK_COLOR_BY_SCALE
#define VTK_COLOR_BY_SCALE
Definition: vtkGenericGlyph3DFilter.h:92
vtkGenericGlyph3DFilter::Orient
int Orient
Definition: vtkGenericGlyph3DFilter.h:270
vtkGenericGlyph3DFilter::SelectInputScalars
void SelectInputScalars(const char *fieldName)
Definition: vtkGenericGlyph3DFilter.h:233
vtkPolyDataAlgorithm.h
vtkGenericGlyph3DFilter::RequestUpdateExtent
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkGenericGlyph3DFilter::IndexMode
int IndexMode
Definition: vtkGenericGlyph3DFilter.h:273
vtkGenericGlyph3DFilter::SelectInputVectors
void SelectInputVectors(const char *fieldName)
Definition: vtkGenericGlyph3DFilter.h:242
vtkGenericGlyph3DFilter::PointIdsName
char * PointIdsName
Definition: vtkGenericGlyph3DFilter.h:275
vtkGenericGlyph3DFilter::GetColorModeAsString
const char * GetColorModeAsString()
Definition: vtkGenericGlyph3DFilter.h:310
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
VTK_SCALE_BY_SCALAR
#define VTK_SCALE_BY_SCALAR
Definition: vtkGenericGlyph3DFilter.h:87
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkGenericGlyph3DFilter::New
static vtkGenericGlyph3DFilter * New()
VTKFILTERSGENERIC_EXPORT
#define VTKFILTERSGENERIC_EXPORT
Definition: vtkFiltersGenericModule.h:15
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
VTK_SCALE_BY_VECTORCOMPONENTS
#define VTK_SCALE_BY_VECTORCOMPONENTS
Definition: vtkGenericGlyph3DFilter.h:89
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkGenericGlyph3DFilter::GetIndexModeAsString
const char * GetIndexModeAsString()
Definition: vtkGenericGlyph3DFilter.h:348
vtkGenericGlyph3DFilter::SetVectorModeToUseNormal
void SetVectorModeToUseNormal()
Definition: vtkGenericGlyph3DFilter.h:192
vtkGenericGlyph3DFilter::SetVectorModeToUseVector
void SetVectorModeToUseVector()
Definition: vtkGenericGlyph3DFilter.h:191
VTK_INDEXING_BY_VECTOR
#define VTK_INDEXING_BY_VECTOR
Definition: vtkGenericGlyph3DFilter.h:102
VTK_INDEXING_BY_SCALAR
#define VTK_INDEXING_BY_SCALAR
Definition: vtkGenericGlyph3DFilter.h:101
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
VTK_COLOR_BY_VECTOR
#define VTK_COLOR_BY_VECTOR
Definition: vtkGenericGlyph3DFilter.h:94
vtkGenericGlyph3DFilter::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkGenericGlyph3DFilter::SetScaleModeToDataScalingOff
void SetScaleModeToDataScalingOff()
Definition: vtkGenericGlyph3DFilter.h:142
vtkGenericGlyph3DFilter::ScaleFactor
double ScaleFactor
Definition: vtkGenericGlyph3DFilter.h:268
vtkGenericGlyph3DFilter::RequestInformation
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkGenericGlyph3DFilter::Clamping
int Clamping
Definition: vtkGenericGlyph3DFilter.h:272
vtkGenericGlyph3DFilter::GetScaleModeAsString
const char * GetScaleModeAsString()
Definition: vtkGenericGlyph3DFilter.h:291
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkGenericGlyph3DFilter::Scaling
int Scaling
Definition: vtkGenericGlyph3DFilter.h:265
vtkGenericGlyph3DFilter::SetSourceData
void SetSourceData(int id, vtkPolyData *pd)
vtkGenericGlyph3DFilter::SetColorModeToColorByScalar
void SetColorModeToColorByScalar()
Definition: vtkGenericGlyph3DFilter.h:153
vtkGenericGlyph3DFilter::SetScaleModeToScaleByVectorComponents
void SetScaleModeToScaleByVectorComponents()
Definition: vtkGenericGlyph3DFilter.h:140
VTK_SCALE_BY_VECTOR
#define VTK_SCALE_BY_VECTOR
Definition: vtkGenericGlyph3DFilter.h:88
vtkGenericGlyph3DFilter::FillInputPortInformation
int FillInputPortInformation(int, vtkInformation *)
vtkGenericGlyph3DFilter::ColorMode
int ColorMode
Definition: vtkGenericGlyph3DFilter.h:267
vtkGenericGlyph3DFilter
copy oriented and scaled glyph geometry to every input point
Definition: vtkGenericGlyph3DFilter.h:105
vtkGenericGlyph3DFilter::InputNormalsSelection
char * InputNormalsSelection
Definition: vtkGenericGlyph3DFilter.h:279
vtkGenericGlyph3DFilter::SetIndexModeToVector
void SetIndexModeToVector()
Definition: vtkGenericGlyph3DFilter.h:205
vtkGenericGlyph3DFilter::vtkGenericGlyph3DFilter
vtkGenericGlyph3DFilter()
vtkGenericGlyph3DFilter::SetIndexModeToOff
void SetIndexModeToOff()
Definition: vtkGenericGlyph3DFilter.h:206
vtkGenericGlyph3DFilter::GeneratePointIds
int GeneratePointIds
Definition: vtkGenericGlyph3DFilter.h:274
VTK_DATA_SCALING_OFF
#define VTK_DATA_SCALING_OFF
Definition: vtkGenericGlyph3DFilter.h:90
vtkPolyDataAlgorithm
Superclass for algorithms that produce only polydata as output.
Definition: vtkPolyDataAlgorithm.h:44