VTK  9.4.20251007
vtkGlyph3DMapper.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
21
22#ifndef vtkGlyph3DMapper_h
23#define vtkGlyph3DMapper_h
24
25#include "vtkGlyph3D.h" // for the constants (VTK_SCALE_BY_SCALAR, ...).
26#include "vtkMapper.h"
27#include "vtkRenderingCoreModule.h" // For export macro
28#include "vtkWeakPointer.h" // needed for vtkWeakPointer.
29#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
30
31VTK_ABI_NAMESPACE_BEGIN
34
35class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkGlyph3DMapper : public vtkMapper
36{
37public:
40 void PrintSelf(ostream& os, vtkIndent indent) override;
41
50
56 void SetSourceConnection(int idx, vtkAlgorithmOutput* algOutput);
58 {
59 this->SetSourceConnection(0, algOutput);
60 }
61
68
72 void SetSourceData(int idx, vtkPolyData* pd);
73
83
91
95 vtkPolyData* GetSource(int idx = 0);
96
101
103
108 vtkSetMacro(Scaling, bool);
109 vtkBooleanMacro(Scaling, bool);
110 vtkGetMacro(Scaling, bool);
112
114
120 vtkSetMacro(ScaleMode, int);
121 vtkGetMacro(ScaleMode, int);
123
125
129 vtkSetMacro(ScaleFactor, double);
130 vtkGetMacro(ScaleFactor, double);
132
139
143 const char* GetScaleModeAsString();
144
146
149 vtkSetVector2Macro(Range, double);
150 vtkGetVectorMacro(Range, double, 2);
152
154
159 vtkSetMacro(Orient, bool);
160 vtkGetMacro(Orient, bool);
161 vtkBooleanMacro(Orient, bool);
163
165
170 vtkSetClampMacro(OrientationMode, int, DIRECTION, QUATERNION);
171 vtkGetMacro(OrientationMode, int);
177
184
186
189 vtkSetMacro(Clamping, bool);
190 vtkGetMacro(Clamping, bool);
191 vtkBooleanMacro(Clamping, bool);
193
195
201 vtkSetMacro(SourceIndexing, bool);
202 vtkGetMacro(SourceIndexing, bool);
203 vtkBooleanMacro(SourceIndexing, bool);
205
207
212 vtkSetMacro(UseSourceTableTree, bool);
213 vtkGetMacro(UseSourceTableTree, bool);
214 vtkBooleanMacro(UseSourceTableTree, bool);
215
217
221 vtkSetMacro(UseSelectionIds, bool);
222 vtkBooleanMacro(UseSelectionIds, bool);
223 vtkGetMacro(UseSelectionIds, bool);
225
229 double* GetBounds() override;
230
234 void GetBounds(double bounds[6]) override;
235
239 void Render(vtkRenderer* ren, vtkActor* act) override;
240
242
250 vtkSetMacro(Masking, bool);
251 vtkGetMacro(Masking, bool);
252 vtkBooleanMacro(Masking, bool);
254
261 void SetMaskArray(const char* maskarrayname);
262
275 void SetMaskArray(int fieldAttributeType);
276
292 void SetOrientationArray(const char* orientationarrayname);
293
315 void SetOrientationArray(int fieldAttributeType);
316
322 void SetScaleArray(const char* scalarsarrayname);
323
329 void SetScaleArray(int fieldAttributeType);
330
337 void SetSourceIndexArray(const char* arrayname);
338
345 void SetSourceIndexArray(int fieldAttributeType);
346
356 void SetSelectionIdArray(const char* selectionIdArrayName);
357
367 void SetSelectionIdArray(int fieldAttributeType);
368
370
375 vtkSetMacro(SelectionColorId, unsigned int);
376 vtkGetMacro(SelectionColorId, unsigned int);
378
380
392
394
398 vtkSetMacro(CullingAndLOD, bool);
399 vtkGetMacro(CullingAndLOD, bool);
400
408
414 virtual void SetNumberOfLOD(vtkIdType vtkNotUsed(nb)) {}
415
427 vtkIdType vtkNotUsed(index), float vtkNotUsed(distance), float vtkNotUsed(targetReduction))
428 {
429 }
430
435 vtkSetMacro(LODColoring, bool);
436 vtkGetMacro(LODColoring, bool);
438
445 bool GetSupportsSelection() override { return true; }
446
447protected:
450
452 vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo);
453
454 int FillInputPortInformation(int port, vtkInformation* info) override;
455
458
460
470
472 bool Scaling; // Determine whether scaling of geometry is performed
473 double ScaleFactor; // Scale factor to use to scale geometry
474 int ScaleMode; // Scale by scalar value or vector magnitude
475
476 double Range[2]; // Range to use to perform scalar scaling
477 bool Orient; // boolean controls whether to "orient" data
478 bool Clamping; // whether to clamp scale factor
479 bool SourceIndexing; // Enable/disable indexing into the glyph table
480 bool UseSelectionIds; // Enable/disable custom pick ids
481 bool Masking; // Enable/disable masking.
483
484 bool UseSourceTableTree; // Map DataObjectTree glyph source into table
485
486 unsigned int SelectionColorId;
487
488 bool CullingAndLOD = false; // Disable culling
489 std::vector<std::pair<float, float>> LODs;
490 bool LODColoring = false;
491
492private:
493 vtkGlyph3DMapper(const vtkGlyph3DMapper&) = delete;
494 void operator=(const vtkGlyph3DMapper&) = delete;
495
499 bool GetBoundsInternal(vtkDataSet* ds, double ds_bounds[6]);
500};
501
502VTK_ABI_NAMESPACE_END
503#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:42
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:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:72
abstract specification for renderers
Definition vtkRenderer.h:63
dynamic, self-adjusting array of unsigned char
#define vtkDataArray
int vtkIdType
Definition vtkType.h:315
#define VTK_MARSHALAUTO