VTK
vtkGlyph3D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkGlyph3D.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=========================================================================*/
86#ifndef vtkGlyph3D_h
87#define vtkGlyph3D_h
88
89#include "vtkFiltersCoreModule.h" // For export macro
91
92#define VTK_SCALE_BY_SCALAR 0
93#define VTK_SCALE_BY_VECTOR 1
94#define VTK_SCALE_BY_VECTORCOMPONENTS 2
95#define VTK_DATA_SCALING_OFF 3
96
97#define VTK_COLOR_BY_SCALE 0
98#define VTK_COLOR_BY_SCALAR 1
99#define VTK_COLOR_BY_VECTOR 2
100
101#define VTK_USE_VECTOR 0
102#define VTK_USE_NORMAL 1
103#define VTK_VECTOR_ROTATION_OFF 2
104
105#define VTK_INDEXING_OFF 0
106#define VTK_INDEXING_BY_SCALAR 1
107#define VTK_INDEXING_BY_VECTOR 2
108
109class vtkTransform;
110
111class VTKFILTERSCORE_EXPORT vtkGlyph3D : public vtkPolyDataAlgorithm
112{
113public:
115 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
116
123 static vtkGlyph3D *New();
124
131 void SetSourceData(vtkPolyData *pd) {this->SetSourceData(0,pd);};
132
139 void SetSourceData(int id, vtkPolyData *pd);
140
142
147 void SetSourceConnection(int id, vtkAlgorithmOutput* algOutput);
149 {
150 this->SetSourceConnection(0, algOutput);
151 }
153
158
160
163 vtkSetMacro(Scaling,int);
164 vtkBooleanMacro(Scaling,int);
165 vtkGetMacro(Scaling,int);
167
169
172 vtkSetMacro(ScaleMode,int);
173 vtkGetMacro(ScaleMode,int);
175 {this->SetScaleMode(VTK_SCALE_BY_SCALAR);};
177 {this->SetScaleMode(VTK_SCALE_BY_VECTOR);};
179 {this->SetScaleMode(VTK_SCALE_BY_VECTORCOMPONENTS);};
181 {this->SetScaleMode(VTK_DATA_SCALING_OFF);};
182 const char *GetScaleModeAsString();
184
186
189 vtkSetMacro(ColorMode,int);
190 vtkGetMacro(ColorMode,int);
192 {this->SetColorMode(VTK_COLOR_BY_SCALE);};
194 {this->SetColorMode(VTK_COLOR_BY_SCALAR);};
196 {this->SetColorMode(VTK_COLOR_BY_VECTOR);};
197 const char *GetColorModeAsString();
199
201
204 vtkSetMacro(ScaleFactor,double);
205 vtkGetMacro(ScaleFactor,double);
207
209
212 vtkSetVector2Macro(Range,double);
213 vtkGetVectorMacro(Range,double,2);
215
217
220 vtkSetMacro(Orient,int);
221 vtkBooleanMacro(Orient,int);
222 vtkGetMacro(Orient,int);
224
226
230 vtkSetMacro(Clamping,int);
231 vtkBooleanMacro(Clamping,int);
232 vtkGetMacro(Clamping,int);
234
236
239 vtkSetMacro(VectorMode,int);
240 vtkGetMacro(VectorMode,int);
241 void SetVectorModeToUseVector() {this->SetVectorMode(VTK_USE_VECTOR);};
242 void SetVectorModeToUseNormal() {this->SetVectorMode(VTK_USE_NORMAL);};
244 {this->SetVectorMode(VTK_VECTOR_ROTATION_OFF);};
245 const char *GetVectorModeAsString();
247
249
256 vtkSetMacro(IndexMode,int);
257 vtkGetMacro(IndexMode,int);
258 void SetIndexModeToScalar() {this->SetIndexMode(VTK_INDEXING_BY_SCALAR);};
259 void SetIndexModeToVector() {this->SetIndexMode(VTK_INDEXING_BY_VECTOR);};
260 void SetIndexModeToOff() {this->SetIndexMode(VTK_INDEXING_OFF);};
261 const char *GetIndexModeAsString();
263
265
271 vtkSetMacro(GeneratePointIds,int);
272 vtkGetMacro(GeneratePointIds,int);
273 vtkBooleanMacro(GeneratePointIds,int);
275
277
281 vtkSetStringMacro(PointIdsName);
282 vtkGetStringMacro(PointIdsName);
284
286
291 vtkSetMacro(FillCellData,int);
292 vtkGetMacro(FillCellData,int);
293 vtkBooleanMacro(FillCellData,int);
295
300 virtual int IsPointVisible(vtkDataSet*, vtkIdType) {return 1;};
301
303
309 vtkGetObjectMacro(SourceTransform, vtkTransform);
311
315 vtkMTimeType GetMTime() VTK_OVERRIDE;
316
317protected:
319 ~vtkGlyph3D() VTK_OVERRIDE;
320
321 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
322 int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
323 int FillInputPortInformation(int, vtkInformation *) VTK_OVERRIDE;
324
325 vtkPolyData* GetSource(int idx, vtkInformationVector *sourceInfo);
326
328
333 virtual bool Execute(vtkDataSet* input,
334 vtkInformationVector* sourceVector,
335 vtkPolyData* output);
336 virtual bool Execute(vtkDataSet* input,
337 vtkInformationVector* sourceVector,
338 vtkPolyData* output,
339 vtkDataArray *inSScalars,
340 vtkDataArray *inVectors);
342
343 vtkPolyData **Source; // Geometry to copy to each point
344 int Scaling; // Determine whether scaling of geometry is performed
345 int ScaleMode; // Scale by scalar value or vector magnitude
346 int ColorMode; // new scalars based on scale, scalar or vector
347 double ScaleFactor; // Scale factor to use to scale geometry
348 double Range[2]; // Range to use to perform scalar scaling
349 int Orient; // boolean controls whether to "orient" data
350 int VectorMode; // Orient/scale via normal or via vector data
351 int Clamping; // whether to clamp scale factor
352 int IndexMode; // what to use to index into glyph table
353 int GeneratePointIds; // produce input points ids for each output point
354 int FillCellData; // whether to fill output cell data
355 char *PointIdsName;
356 vtkTransform* SourceTransform;
357
358private:
359 vtkGlyph3D(const vtkGlyph3D&) VTK_DELETE_FUNCTION;
360 void operator=(const vtkGlyph3D&) VTK_DELETE_FUNCTION;
361};
362
364
367inline const char *vtkGlyph3D::GetScaleModeAsString(void)
368{
369 if ( this->ScaleMode == VTK_SCALE_BY_SCALAR )
370 {
371 return "ScaleByScalar";
372 }
373 else if ( this->ScaleMode == VTK_SCALE_BY_VECTOR )
374 {
375 return "ScaleByVector";
376 }
377 else
378 {
379 return "DataScalingOff";
380 }
381}
383
385
388inline const char *vtkGlyph3D::GetColorModeAsString(void)
389{
390 if ( this->ColorMode == VTK_COLOR_BY_SCALAR )
391 {
392 return "ColorByScalar";
393 }
394 else if ( this->ColorMode == VTK_COLOR_BY_VECTOR )
395 {
396 return "ColorByVector";
397 }
398 else
399 {
400 return "ColorByScale";
401 }
402}
404
406
409inline const char *vtkGlyph3D::GetVectorModeAsString(void)
410{
411 if ( this->VectorMode == VTK_USE_VECTOR)
412 {
413 return "UseVector";
414 }
415 else if ( this->VectorMode == VTK_USE_NORMAL)
416 {
417 return "UseNormal";
418 }
419 else
420 {
421 return "VectorRotationOff";
422 }
423}
425
427
430inline const char *vtkGlyph3D::GetIndexModeAsString(void)
431{
432 if ( this->IndexMode == VTK_INDEXING_OFF)
433 {
434 return "IndexingOff";
435 }
436 else if ( this->IndexMode == VTK_INDEXING_BY_SCALAR)
437 {
438 return "IndexingByScalar";
439 }
440 else
441 {
442 return "IndexingByVector";
443 }
444}
446
447#endif
Proxy object to connect input/output ports.
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
copy oriented and scaled glyph geometry to every input point
Definition: vtkGlyph3D.h:112
void SetIndexModeToScalar()
Definition: vtkGlyph3D.h:258
void SetSourceData(int id, vtkPolyData *pd)
Specify a source object at a specified table location.
void SetScaleModeToScaleByVector()
Definition: vtkGlyph3D.h:176
void SetVectorModeToUseNormal()
Definition: vtkGlyph3D.h:242
const char * GetVectorModeAsString()
Return the vector mode as a character string.
Definition: vtkGlyph3D.h:409
void SetScaleModeToScaleByVectorComponents()
Definition: vtkGlyph3D.h:178
void SetIndexModeToOff()
Definition: vtkGlyph3D.h:260
void SetScaleModeToScaleByScalar()
Definition: vtkGlyph3D.h:174
void SetColorModeToColorByScalar()
Definition: vtkGlyph3D.h:193
void SetSourceTransform(vtkTransform *)
When set, this is use to transform the source polydata before using it to generate the glyph.
const char * GetIndexModeAsString()
Return the index mode as a character string.
Definition: vtkGlyph3D.h:430
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetVectorModeToUseVector()
Definition: vtkGlyph3D.h:241
void SetScaleModeToDataScalingOff()
Definition: vtkGlyph3D.h:180
vtkMTimeType GetMTime() override
Overridden to include SourceTransform's MTime.
virtual int IsPointVisible(vtkDataSet *, vtkIdType)
This can be overwritten by subclass to return 0 when a point is blanked.
Definition: vtkGlyph3D.h:300
const char * GetColorModeAsString()
Return the method of coloring as a descriptive character string.
Definition: vtkGlyph3D.h:388
void SetSourceConnection(int id, vtkAlgorithmOutput *algOutput)
Specify a source object at a specified table location.
vtkPolyData * GetSource(int id=0)
Get a pointer to a source object at a specified table location.
void SetColorModeToColorByScale()
Definition: vtkGlyph3D.h:191
void SetColorModeToColorByVector()
Definition: vtkGlyph3D.h:195
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
Definition: vtkGlyph3D.h:148
void SetIndexModeToVector()
Definition: vtkGlyph3D.h:259
void SetSourceData(vtkPolyData *pd)
Set the source to use for the glyph.
Definition: vtkGlyph3D.h:131
void SetVectorModeToVectorRotationOff()
Definition: vtkGlyph3D.h:243
static vtkGlyph3D * New()
Construct object with scaling on, scaling mode is by scalar value, scale factor = 1....
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:61
#define VTK_COLOR_BY_VECTOR
Definition: vtkGlyph3D.h:99
#define VTK_SCALE_BY_SCALAR
Definition: vtkGlyph3D.h:92
#define VTK_INDEXING_BY_SCALAR
Definition: vtkGlyph3D.h:106
#define VTK_DATA_SCALING_OFF
Definition: vtkGlyph3D.h:95
#define VTK_VECTOR_ROTATION_OFF
Definition: vtkGlyph3D.h:103
#define VTK_COLOR_BY_SCALAR
Definition: vtkGlyph3D.h:98
#define VTK_USE_VECTOR
Definition: vtkGlyph3D.h:101
#define VTK_USE_NORMAL
Definition: vtkGlyph3D.h:102
#define VTK_INDEXING_BY_VECTOR
Definition: vtkGlyph3D.h:107
#define VTK_SCALE_BY_VECTOR
Definition: vtkGlyph3D.h:93
#define VTK_INDEXING_OFF
Definition: vtkGlyph3D.h:105
#define VTK_COLOR_BY_SCALE
Definition: vtkGlyph3D.h:97
#define VTK_SCALE_BY_VECTORCOMPONENTS
Definition: vtkGlyph3D.h:94
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
int vtkIdType
Definition: vtkType.h:287
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248