VTK  9.2.6
vtkGlyph3DMapper.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkGlyph3DMapper.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=========================================================================*/
27
28#ifndef vtkGlyph3DMapper_h
29#define vtkGlyph3DMapper_h
30
31#include "vtkGlyph3D.h" // for the constants (VTK_SCALE_BY_SCALAR, ...).
32#include "vtkMapper.h"
33#include "vtkRenderingCoreModule.h" // For export macro
34#include "vtkWeakPointer.h" // needed for vtkWeakPointer.
35
38
39class VTKRENDERINGCORE_EXPORT vtkGlyph3DMapper : public vtkMapper
40{
41public:
44 void PrintSelf(ostream& os, vtkIndent indent) override;
45
54
60 void SetSourceConnection(int idx, vtkAlgorithmOutput* algOutput);
62 {
63 this->SetSourceConnection(0, algOutput);
64 }
65
72
76 void SetSourceData(int idx, vtkPolyData* pd);
77
87
95
99 vtkPolyData* GetSource(int idx = 0);
100
105
107
112 vtkSetMacro(Scaling, bool);
113 vtkBooleanMacro(Scaling, bool);
114 vtkGetMacro(Scaling, bool);
116
118
124 vtkSetMacro(ScaleMode, int);
125 vtkGetMacro(ScaleMode, int);
127
129
133 vtkSetMacro(ScaleFactor, double);
134 vtkGetMacro(ScaleFactor, double);
136
143
147 const char* GetScaleModeAsString();
148
150
153 vtkSetVector2Macro(Range, double);
154 vtkGetVectorMacro(Range, double, 2);
156
158
163 vtkSetMacro(Orient, bool);
164 vtkGetMacro(Orient, bool);
165 vtkBooleanMacro(Orient, bool);
167
169
174 vtkSetClampMacro(OrientationMode, int, DIRECTION, QUATERNION);
175 vtkGetMacro(OrientationMode, int);
181
188
190
193 vtkSetMacro(Clamping, bool);
194 vtkGetMacro(Clamping, bool);
195 vtkBooleanMacro(Clamping, bool);
197
199
205 vtkSetMacro(SourceIndexing, bool);
206 vtkGetMacro(SourceIndexing, bool);
207 vtkBooleanMacro(SourceIndexing, bool);
209
211
216 vtkSetMacro(UseSourceTableTree, bool);
217 vtkGetMacro(UseSourceTableTree, bool);
218 vtkBooleanMacro(UseSourceTableTree, bool);
219
221
225 vtkSetMacro(UseSelectionIds, bool);
226 vtkBooleanMacro(UseSelectionIds, bool);
227 vtkGetMacro(UseSelectionIds, bool);
229
233 double* GetBounds() override;
234
238 void GetBounds(double bounds[6]) override;
239
243 void Render(vtkRenderer* ren, vtkActor* act) override;
244
246
254 vtkSetMacro(Masking, bool);
255 vtkGetMacro(Masking, bool);
256 vtkBooleanMacro(Masking, bool);
258
265 void SetMaskArray(const char* maskarrayname);
266
279 void SetMaskArray(int fieldAttributeType);
280
296 void SetOrientationArray(const char* orientationarrayname);
297
319 void SetOrientationArray(int fieldAttributeType);
320
326 void SetScaleArray(const char* scalarsarrayname);
327
333 void SetScaleArray(int fieldAttributeType);
334
341 void SetSourceIndexArray(const char* arrayname);
342
349 void SetSourceIndexArray(int fieldAttributeType);
350
360 void SetSelectionIdArray(const char* selectionIdArrayName);
361
371 void SetSelectionIdArray(int fieldAttributeType);
372
374
379 vtkSetMacro(SelectionColorId, unsigned int);
380 vtkGetMacro(SelectionColorId, unsigned int);
382
384
396
398
402 vtkSetMacro(CullingAndLOD, bool);
403 vtkGetMacro(CullingAndLOD, bool);
404
412
418 virtual void SetNumberOfLOD(vtkIdType vtkNotUsed(nb)) {}
419
431 vtkIdType vtkNotUsed(index), float vtkNotUsed(distance), float vtkNotUsed(targetReduction))
432 {
433 }
434
439 vtkSetMacro(LODColoring, bool);
440 vtkGetMacro(LODColoring, bool);
442
449 bool GetSupportsSelection() override { return true; }
450
451protected:
454
456 vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo);
457
458 int FillInputPortInformation(int port, vtkInformation* info) override;
459
462
464
474
476 bool Scaling; // Determine whether scaling of geometry is performed
477 double ScaleFactor; // Scale factor to use to scale geometry
478 int ScaleMode; // Scale by scalar value or vector magnitude
479
480 double Range[2]; // Range to use to perform scalar scaling
481 bool Orient; // boolean controls whether to "orient" data
482 bool Clamping; // whether to clamp scale factor
483 bool SourceIndexing; // Enable/disable indexing into the glyph table
484 bool UseSelectionIds; // Enable/disable custom pick ids
485 bool Masking; // Enable/disable masking.
487
488 bool UseSourceTableTree; // Map DataObjectTree glyph source into table
489
490 unsigned int SelectionColorId;
491
492 bool CullingAndLOD = false; // Disable culling
493 std::vector<std::pair<float, float>> LODs;
494 bool LODColoring = false;
495
496private:
497 vtkGlyph3DMapper(const vtkGlyph3DMapper&) = delete;
498 void operator=(const vtkGlyph3DMapper&) = delete;
499
503 bool GetBoundsInternal(vtkDataSet* ds, double ds_bounds[6]);
504};
505
506#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:46
Proxy object to connect input/output ports.
Rendering attributes for a multi-block dataset.
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:57
void SetOrientationModeToQuaternion()
Orientation mode indicates if the OrientationArray provides the direction vector for the orientation ...
virtual void SetScaleMode(int)
Either scale by individual components (SCALE_BY_COMPONENTS) or magnitude (SCALE_BY_MAGNITUDE) of the ...
vtkDataObjectTree * GetSourceTableTree()
Convenience method to get the source table tree, if it exists.
virtual vtkIdType GetMaxNumberOfLOD()
Get the maximum number of LOD.
void SetScaleModeToScaleByVectorComponents()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
~vtkGlyph3DMapper() override
void SetSourceData(vtkPolyData *pd)
Set the source to use for he glyph.
void SetSourceData(int idx, vtkPolyData *pd)
Specify a source object at a specified table location.
void SetMaskArray(const char *maskarrayname)
Set the name of the point array to use as a mask for generating the glyphs.
vtkPolyData * GetSource(int idx, vtkInformationVector *sourceInfo)
vtkDataArray * GetScaleArray(vtkDataSet *input)
Convenience methods to get each of the arrays.
void SetSourceConnection(int idx, vtkAlgorithmOutput *algOutput)
Specify a source object at a specified table location.
double * GetBounds() override
Redefined to take into account the bounds of the scaled glyphs.
void SetScaleModeToScaleByMagnitude()
virtual int RequestUpdateExtent(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
void SetScaleArray(int fieldAttributeType)
Convenience method to set the array to scale with.
vtkDataArray * GetSelectionIdArray(vtkDataSet *input)
Convenience methods to get each of the arrays.
void SetSourceIndexArray(const char *arrayname)
Convenience method to set the array to use as index within the sources.
vtkCompositeDataDisplayAttributes * BlockAttributes
virtual void SetOrientationMode(int)
Orientation mode indicates if the OrientationArray provides the direction vector for the orientation ...
vtkDataArray * GetOrientationArray(vtkDataSet *input)
Convenience methods to get each of the arrays.
void SetInputData(vtkDataObject *)
Assign a data object as input.
void SetScaleModeToNoDataScaling()
virtual void SetNumberOfLOD(vtkIdType vtkNotUsed(nb))
Set the number of LOD.
const char * GetScaleModeAsString()
void SetOrientationArray(int fieldAttributeType)
Tells the mapper to use an orientation array if Orient is true.
void SetOrientationArray(const char *orientationarrayname)
Tells the mapper to use an orientation array if Orient is true.
void SetSelectionIdArray(int fieldAttributeType)
Convenience method to set the array used for selection IDs.
unsigned int SelectionColorId
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
void SetOrientationModeToDirection()
Orientation mode indicates if the OrientationArray provides the direction vector for the orientation ...
vtkPolyData * GetSourceTable(int idx, vtkInformationVector *sourceInfo)
vtkUnsignedCharArray * GetColors(vtkDataSet *input)
Convenience methods to get each of the arrays.
const char * GetOrientationModeAsString()
Orientation mode indicates if the OrientationArray provides the direction vector for the orientation ...
virtual void SetBlockAttributes(vtkCompositeDataDisplayAttributes *attr)
When the input data object (not the source) is composite data, it is possible to control visibility a...
vtkDataArray * GetSourceIndexArray(vtkDataSet *input)
Convenience methods to get each of the arrays.
std::vector< std::pair< float, float > > LODs
void Render(vtkRenderer *ren, vtkActor *act) override
All the work is done is derived classes.
void SetMaskArray(int fieldAttributeType)
Set the point attribute to use as a mask for generating the glyphs.
vtkPolyData * GetSource(int idx=0)
Get a pointer to a source object at a specified table location.
bool GetSupportsSelection() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
void SetOrientationModeToRotation()
Orientation mode indicates if the OrientationArray provides the direction vector for the orientation ...
vtkDataArray * GetMaskArray(vtkDataSet *input)
Convenience methods to get each of the arrays.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void GetBounds(double bounds[6]) override
Same as superclass.
void SetSelectionIdArray(const char *selectionIdArrayName)
Convenience method to set the array used for selection IDs.
void SetSourceTableTree(vtkDataObjectTree *tree)
Specify a data object tree that will be used for the source table.
void SetScaleArray(const char *scalarsarrayname)
Convenience method to set the array to scale with.
void SetSourceIndexArray(int fieldAttributeType)
Convenience method to set the array to use as index within the sources.
virtual void SetLODDistanceAndTargetReduction(vtkIdType vtkNotUsed(index), float vtkNotUsed(distance), float vtkNotUsed(targetReduction))
Configure LODs.
static vtkGlyph3DMapper * New()
a simple class to control print indentation
Definition vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:85
abstract specification for renderers
Definition vtkRenderer.h:67
dynamic, self-adjusting array of unsigned char
#define vtkDataArray
int vtkIdType
Definition vtkType.h:332