VTK  9.3.20240328
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
49 #include "vtkPolyDataAlgorithm.h"
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 
67 VTK_ABI_NAMESPACE_BEGIN
68 class vtkPoints;
70 class vtkCellArray;
71 
72 class VTKFILTERSSOURCES_EXPORT vtkGlyphSource2D : public vtkPolyDataAlgorithm
73 {
74 public:
76  void PrintSelf(ostream& os, vtkIndent indent) override;
77 
82  static vtkGlyphSource2D* New();
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 
232 protected:
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 
254  void ConvertColor();
255  unsigned char RGB[3];
256 
258  void CreateDash(vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys,
259  vtkUnsignedCharArray* colors, double scale);
260  void CreateCross(vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys,
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 
281 private:
282  vtkGlyphSource2D(const vtkGlyphSource2D&) = delete;
283  void operator=(const vtkGlyphSource2D&) = delete;
284 };
285 
286 VTK_ABI_NAMESPACE_END
287 #endif
object to represent cell connectivity
Definition: vtkCellArray.h:285
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)
static vtkGlyphSource2D * New()
Construct a vertex glyph centered at the origin, scale 1.0, white in color, filled,...
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)
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:138
Superclass for algorithms that produce only polydata as output.
dynamic, self-adjusting array of unsigned char
@ Color
Definition: vtkX3D.h:46
@ scale
Definition: vtkX3D.h:229
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