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=========================================================================*/
30
31#ifndef vtkGlyph3DMapper_h
32#define vtkGlyph3DMapper_h
33
34#include "vtkGlyph3D.h" // for the constants (VTK_SCALE_BY_SCALAR, ...).
35#include "vtkMapper.h"
36#include "vtkRenderingCoreModule.h" // For export macro
37#include "vtkWeakPointer.h" // needed for vtkWeakPointer.
38
41
42class VTKRENDERINGCORE_EXPORT vtkGlyph3DMapper : public vtkMapper
43{
44public:
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
57
63 void SetSourceConnection(int idx, vtkAlgorithmOutput* algOutput);
65 {
66 this->SetSourceConnection(0, algOutput);
67 }
68
75
79 void SetSourceData(int idx, vtkPolyData* pd);
80
90
98
102 vtkPolyData* GetSource(int idx = 0);
103
108
110
115 vtkSetMacro(Scaling, bool);
116 vtkBooleanMacro(Scaling, bool);
117 vtkGetMacro(Scaling, bool);
119
121
127 vtkSetMacro(ScaleMode, int);
128 vtkGetMacro(ScaleMode, int);
130
132
136 vtkSetMacro(ScaleFactor, double);
137 vtkGetMacro(ScaleFactor, double);
139
146
150 const char* GetScaleModeAsString();
151
153
156 vtkSetVector2Macro(Range, double);
157 vtkGetVectorMacro(Range, double, 2);
159
161
166 vtkSetMacro(Orient, bool);
167 vtkGetMacro(Orient, bool);
168 vtkBooleanMacro(Orient, bool);
170
172
177 vtkSetClampMacro(OrientationMode, int, DIRECTION, QUATERNION);
178 vtkGetMacro(OrientationMode, int);
184
191
193
196 vtkSetMacro(Clamping, bool);
197 vtkGetMacro(Clamping, bool);
198 vtkBooleanMacro(Clamping, bool);
200
202
208 vtkSetMacro(SourceIndexing, bool);
209 vtkGetMacro(SourceIndexing, bool);
210 vtkBooleanMacro(SourceIndexing, bool);
212
214
219 vtkSetMacro(UseSourceTableTree, bool);
220 vtkGetMacro(UseSourceTableTree, bool);
221 vtkBooleanMacro(UseSourceTableTree, bool);
222
224
228 vtkSetMacro(UseSelectionIds, bool);
229 vtkBooleanMacro(UseSelectionIds, bool);
230 vtkGetMacro(UseSelectionIds, bool);
232
236 double* GetBounds() override;
237
241 void GetBounds(double bounds[6]) override;
242
246 void Render(vtkRenderer* ren, vtkActor* act) override;
247
249
257 vtkSetMacro(Masking, bool);
258 vtkGetMacro(Masking, bool);
259 vtkBooleanMacro(Masking, bool);
261
268 void SetMaskArray(const char* maskarrayname);
269
282 void SetMaskArray(int fieldAttributeType);
283
299 void SetOrientationArray(const char* orientationarrayname);
300
322 void SetOrientationArray(int fieldAttributeType);
323
329 void SetScaleArray(const char* scalarsarrayname);
330
336 void SetScaleArray(int fieldAttributeType);
337
344 void SetSourceIndexArray(const char* arrayname);
345
352 void SetSourceIndexArray(int fieldAttributeType);
353
363 void SetSelectionIdArray(const char* selectionIdArrayName);
364
374 void SetSelectionIdArray(int fieldAttributeType);
375
377
382 vtkSetMacro(SelectionColorId, unsigned int);
383 vtkGetMacro(SelectionColorId, unsigned int);
385
387
399
401
405 vtkSetMacro(CullingAndLOD, bool);
406 vtkGetMacro(CullingAndLOD, bool);
407
415
421 virtual void SetNumberOfLOD(vtkIdType vtkNotUsed(nb)) {}
422
434 vtkIdType vtkNotUsed(index), float vtkNotUsed(distance), float vtkNotUsed(targetReduction))
435 {
436 }
437
442 vtkSetMacro(LODColoring, bool);
443 vtkGetMacro(LODColoring, bool);
445
452 bool GetSupportsSelection() override { return true; }
453
454protected:
457
459 vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo);
460
461 int FillInputPortInformation(int port, vtkInformation* info) override;
462
465
467
477
479 bool Scaling; // Determine whether scaling of geometry is performed
480 double ScaleFactor; // Scale factor to use to scale geometry
481 int ScaleMode; // Scale by scalar value or vector magnitude
482
483 double Range[2]; // Range to use to perform scalar scaling
484 bool Orient; // boolean controls whether to "orient" data
485 bool Clamping; // whether to clamp scale factor
486 bool SourceIndexing; // Enable/disable indexing into the glyph table
487 bool UseSelectionIds; // Enable/disable custom pick ids
488 bool Masking; // Enable/disable masking.
490
491 bool UseSourceTableTree; // Map DataObjectTree glyph source into table
492
493 unsigned int SelectionColorId;
494
495 bool CullingAndLOD = false; // Disable culling
496 std::vector<std::pair<float, float>> LODs;
497 bool LODColoring = false;
498
499private:
500 vtkGlyph3DMapper(const vtkGlyph3DMapper&) = delete;
501 void operator=(const vtkGlyph3DMapper&) = delete;
502
506 bool GetBoundsInternal(vtkDataSet* ds, double ds_bounds[6]);
507};
508
509#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:52
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:63
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:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:91
abstract specification for renderers
Definition vtkRenderer.h:73
dynamic, self-adjusting array of unsigned char
#define vtkDataArray
int vtkIdType
Definition vtkType.h:332