VTK  9.3.20240424
vtkGlyphSource2D.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
45#ifndef vtkGlyphSource2D_h
46#define vtkGlyphSource2D_h
47
48#include "vtkFiltersSourcesModule.h" // For export macro
50
51#define VTK_NO_GLYPH 0
52#define VTK_VERTEX_GLYPH 1
53#define VTK_DASH_GLYPH 2
54#define VTK_CROSS_GLYPH 3
55#define VTK_THICKCROSS_GLYPH 4
56#define VTK_TRIANGLE_GLYPH 5
57#define VTK_SQUARE_GLYPH 6
58#define VTK_CIRCLE_GLYPH 7
59#define VTK_DIAMOND_GLYPH 8
60#define VTK_ARROW_GLYPH 9
61#define VTK_THICKARROW_GLYPH 10
62#define VTK_HOOKEDARROW_GLYPH 11
63#define VTK_EDGEARROW_GLYPH 12
64
65#define VTK_MAX_CIRCLE_RESOLUTION 1024
66
67VTK_ABI_NAMESPACE_BEGIN
68class vtkPoints;
70class vtkCellArray;
71
72class VTKFILTERSSOURCES_EXPORT vtkGlyphSource2D : public vtkPolyDataAlgorithm
73{
74public:
76 void PrintSelf(ostream& os, vtkIndent indent) override;
77
83
85
88 vtkSetVector3Macro(Center, double);
89 vtkGetVectorMacro(Center, double, 3);
91
93
97 vtkSetClampMacro(Scale, double, 0.0, VTK_DOUBLE_MAX);
98 vtkGetMacro(Scale, double);
100
102
106 vtkSetClampMacro(Scale2, double, 0.0, VTK_DOUBLE_MAX);
107 vtkGetMacro(Scale2, double);
109
111
114 vtkSetVector3Macro(Color, double);
115 vtkGetVectorMacro(Color, double, 3);
117
119
124 vtkSetMacro(Filled, vtkTypeBool);
125 vtkGetMacro(Filled, vtkTypeBool);
126 vtkBooleanMacro(Filled, vtkTypeBool);
128
130
135 vtkSetMacro(Dash, vtkTypeBool);
136 vtkGetMacro(Dash, vtkTypeBool);
137 vtkBooleanMacro(Dash, vtkTypeBool);
139
141
146 vtkSetMacro(Cross, vtkTypeBool);
147 vtkGetMacro(Cross, vtkTypeBool);
148 vtkBooleanMacro(Cross, vtkTypeBool);
150
152
157 vtkSetMacro(RotationAngle, double);
158 vtkGetMacro(RotationAngle, double);
160
162
165 vtkSetClampMacro(Resolution, int, 3, VTK_MAX_CIRCLE_RESOLUTION);
166 vtkGetMacro(Resolution, int);
168
170
173 vtkSetClampMacro(GlyphType, int, VTK_NO_GLYPH, VTK_EDGEARROW_GLYPH);
174 vtkGetMacro(GlyphType, int);
175 void SetGlyphTypeToNone() { this->SetGlyphType(VTK_NO_GLYPH); }
176 void SetGlyphTypeToVertex() { this->SetGlyphType(VTK_VERTEX_GLYPH); }
177 void SetGlyphTypeToDash() { this->SetGlyphType(VTK_DASH_GLYPH); }
178 void SetGlyphTypeToCross() { this->SetGlyphType(VTK_CROSS_GLYPH); }
179 void SetGlyphTypeToThickCross() { this->SetGlyphType(VTK_THICKCROSS_GLYPH); }
180 void SetGlyphTypeToTriangle() { this->SetGlyphType(VTK_TRIANGLE_GLYPH); }
181 void SetGlyphTypeToSquare() { this->SetGlyphType(VTK_SQUARE_GLYPH); }
182 void SetGlyphTypeToCircle() { this->SetGlyphType(VTK_CIRCLE_GLYPH); }
183 void SetGlyphTypeToDiamond() { this->SetGlyphType(VTK_DIAMOND_GLYPH); }
184 void SetGlyphTypeToArrow() { this->SetGlyphType(VTK_ARROW_GLYPH); }
185 void SetGlyphTypeToThickArrow() { this->SetGlyphType(VTK_THICKARROW_GLYPH); }
186 void SetGlyphTypeToHookedArrow() { this->SetGlyphType(VTK_HOOKEDARROW_GLYPH); }
187 void SetGlyphTypeToEdgeArrow() { this->SetGlyphType(VTK_EDGEARROW_GLYPH); }
189
191
196 vtkSetMacro(OutputPointsPrecision, int);
197 vtkGetMacro(OutputPointsPrecision, int);
199
201
206 vtkSetClampMacro(TipLength, double, 0.0, 1.0);
207 vtkGetMacro(TipLength, double);
209
211
216 vtkSetMacro(DoublePointed, bool);
217 vtkGetMacro(DoublePointed, bool);
218 vtkBooleanMacro(DoublePointed, bool);
220
222
227 vtkSetMacro(PointInwards, bool);
228 vtkGetMacro(PointInwards, bool);
229 vtkBooleanMacro(PointInwards, bool);
231
232protected:
234 ~vtkGlyphSource2D() override = default;
235
237
238 double Center[3] = { 0.0, 0.0, 0.0 };
239 double Scale = 1.0;
240 double Scale2 = 1.5;
241 double Color[3] = { 1.0, 1.0, 1.0 };
242 vtkTypeBool Filled = true;
243 vtkTypeBool Dash = false;
244 vtkTypeBool Cross = false;
245 int GlyphType = VTK_VERTEX_GLYPH;
246 double RotationAngle = 0.0;
247 int Resolution = 8;
248 int OutputPointsPrecision = SINGLE_PRECISION;
249 double TipLength = 0.3;
250 bool DoublePointed = false;
251 bool PointInwards = false;
252
255 unsigned char RGB[3];
256
259 vtkUnsignedCharArray* colors, double scale);
261 vtkUnsignedCharArray* colors, double scale);
263 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
265 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
267 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
269 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
271 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
273 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
275 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
277 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
279 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
280
281private:
282 vtkGlyphSource2D(const vtkGlyphSource2D&) = delete;
283 void operator=(const vtkGlyphSource2D&) = delete;
284};
285
286VTK_ABI_NAMESPACE_END
287#endif
object to represent cell connectivity
create 2D glyphs represented by vtkPolyData
void SetGlyphTypeToArrow()
Specify the type of glyph to generate.
void CreateThickArrow(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void SetGlyphTypeToSquare()
Specify the type of glyph to generate.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetGlyphTypeToTriangle()
Specify the type of glyph to generate.
void SetGlyphTypeToCross()
Specify the type of glyph to generate.
void SetGlyphTypeToThickArrow()
Specify the type of glyph to generate.
void SetGlyphTypeToEdgeArrow()
Specify the type of glyph to generate.
void CreateCross(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors, double scale)
void CreateThickCross(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void CreateDiamond(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void TransformGlyph(vtkPoints *pts)
void SetGlyphTypeToNone()
Specify the type of glyph to generate.
~vtkGlyphSource2D() override=default
void CreateCircle(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void CreateTriangle(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void SetGlyphTypeToCircle()
Specify the type of glyph to generate.
void SetGlyphTypeToHookedArrow()
Specify the type of glyph to generate.
void CreateEdgeArrow(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void CreateVertex(vtkPoints *pts, vtkCellArray *verts, vtkUnsignedCharArray *colors)
void CreateArrow(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void SetGlyphTypeToDash()
Specify the type of glyph to generate.
void SetGlyphTypeToDiamond()
Specify the type of glyph to generate.
void CreateHookedArrow(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
static vtkGlyphSource2D * New()
Construct a vertex glyph centered at the origin, scale 1.0, white in color, filled,...
void SetGlyphTypeToThickCross()
Specify the type of glyph to generate.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void CreateDash(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors, double scale)
void CreateSquare(vtkPoints *pts, vtkCellArray *lines, vtkCellArray *polys, vtkUnsignedCharArray *colors)
void SetGlyphTypeToVertex()
Specify the type of glyph to generate.
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
represent and manipulate 3D points
Definition vtkPoints.h:139
Superclass for algorithms that produce only polydata as output.
dynamic, self-adjusting array of unsigned char
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_DIAMOND_GLYPH
#define VTK_SQUARE_GLYPH
#define VTK_TRIANGLE_GLYPH
#define VTK_NO_GLYPH
#define VTK_MAX_CIRCLE_RESOLUTION
#define VTK_VERTEX_GLYPH
#define VTK_THICKCROSS_GLYPH
#define VTK_DASH_GLYPH
#define VTK_HOOKEDARROW_GLYPH
#define VTK_ARROW_GLYPH
#define VTK_EDGEARROW_GLYPH
#define VTK_CIRCLE_GLYPH
#define VTK_CROSS_GLYPH
#define VTK_THICKARROW_GLYPH
#define VTK_DOUBLE_MAX
Definition vtkType.h:154