VTK  9.2.6
vtkGlyphSource2D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkGlyphSource2D.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=========================================================================*/
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
67class vtkPoints;
69class vtkCellArray;
70
71class VTKFILTERSSOURCES_EXPORT vtkGlyphSource2D : public vtkPolyDataAlgorithm
72{
73public:
75 void PrintSelf(ostream& os, vtkIndent indent) override;
76
82
84
87 vtkSetVector3Macro(Center, double);
88 vtkGetVectorMacro(Center, double, 3);
90
92
96 vtkSetClampMacro(Scale, double, 0.0, VTK_DOUBLE_MAX);
97 vtkGetMacro(Scale, double);
99
101
105 vtkSetClampMacro(Scale2, double, 0.0, VTK_DOUBLE_MAX);
106 vtkGetMacro(Scale2, double);
108
110
113 vtkSetVector3Macro(Color, double);
114 vtkGetVectorMacro(Color, double, 3);
116
118
123 vtkSetMacro(Filled, vtkTypeBool);
124 vtkGetMacro(Filled, vtkTypeBool);
125 vtkBooleanMacro(Filled, vtkTypeBool);
127
129
134 vtkSetMacro(Dash, vtkTypeBool);
135 vtkGetMacro(Dash, vtkTypeBool);
136 vtkBooleanMacro(Dash, vtkTypeBool);
138
140
145 vtkSetMacro(Cross, vtkTypeBool);
146 vtkGetMacro(Cross, vtkTypeBool);
147 vtkBooleanMacro(Cross, vtkTypeBool);
149
151
156 vtkSetMacro(RotationAngle, double);
157 vtkGetMacro(RotationAngle, double);
159
161
164 vtkSetClampMacro(Resolution, int, 3, VTK_MAX_CIRCLE_RESOLUTION);
165 vtkGetMacro(Resolution, int);
167
169
172 vtkSetClampMacro(GlyphType, int, VTK_NO_GLYPH, VTK_EDGEARROW_GLYPH);
173 vtkGetMacro(GlyphType, int);
174 void SetGlyphTypeToNone() { this->SetGlyphType(VTK_NO_GLYPH); }
175 void SetGlyphTypeToVertex() { this->SetGlyphType(VTK_VERTEX_GLYPH); }
176 void SetGlyphTypeToDash() { this->SetGlyphType(VTK_DASH_GLYPH); }
177 void SetGlyphTypeToCross() { this->SetGlyphType(VTK_CROSS_GLYPH); }
178 void SetGlyphTypeToThickCross() { this->SetGlyphType(VTK_THICKCROSS_GLYPH); }
179 void SetGlyphTypeToTriangle() { this->SetGlyphType(VTK_TRIANGLE_GLYPH); }
180 void SetGlyphTypeToSquare() { this->SetGlyphType(VTK_SQUARE_GLYPH); }
181 void SetGlyphTypeToCircle() { this->SetGlyphType(VTK_CIRCLE_GLYPH); }
182 void SetGlyphTypeToDiamond() { this->SetGlyphType(VTK_DIAMOND_GLYPH); }
183 void SetGlyphTypeToArrow() { this->SetGlyphType(VTK_ARROW_GLYPH); }
184 void SetGlyphTypeToThickArrow() { this->SetGlyphType(VTK_THICKARROW_GLYPH); }
185 void SetGlyphTypeToHookedArrow() { this->SetGlyphType(VTK_HOOKEDARROW_GLYPH); }
186 void SetGlyphTypeToEdgeArrow() { this->SetGlyphType(VTK_EDGEARROW_GLYPH); }
188
190
195 vtkSetMacro(OutputPointsPrecision, int);
196 vtkGetMacro(OutputPointsPrecision, int);
198
199protected:
201 ~vtkGlyphSource2D() override = default;
202
204
205 double Center[3];
206 double Scale;
207 double Scale2;
208 double Color[3];
216
219 unsigned char RGB[3];
220
223 vtkUnsignedCharArray* colors, double scale);
225 vtkUnsignedCharArray* colors, double scale);
227 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
229 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
231 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
233 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
235 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
237 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
239 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
241 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
243 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
244
245private:
246 vtkGlyphSource2D(const vtkGlyphSource2D&) = delete;
247 void operator=(const vtkGlyphSource2D&) = delete;
248};
249
250#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:49
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
represent and manipulate 3D points
Definition vtkPoints.h:49
Superclass for algorithms that produce only polydata as output.
dynamic, self-adjusting array of unsigned char
int vtkTypeBool
Definition vtkABI.h:69
#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:165