VTK  9.1.0
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=========================================================================*/
39#ifndef vtkGlyphSource2D_h
40#define vtkGlyphSource2D_h
41
42#include "vtkFiltersSourcesModule.h" // For export macro
44
45#define VTK_NO_GLYPH 0
46#define VTK_VERTEX_GLYPH 1
47#define VTK_DASH_GLYPH 2
48#define VTK_CROSS_GLYPH 3
49#define VTK_THICKCROSS_GLYPH 4
50#define VTK_TRIANGLE_GLYPH 5
51#define VTK_SQUARE_GLYPH 6
52#define VTK_CIRCLE_GLYPH 7
53#define VTK_DIAMOND_GLYPH 8
54#define VTK_ARROW_GLYPH 9
55#define VTK_THICKARROW_GLYPH 10
56#define VTK_HOOKEDARROW_GLYPH 11
57#define VTK_EDGEARROW_GLYPH 12
58
59#define VTK_MAX_CIRCLE_RESOLUTION 1024
60
61class vtkPoints;
63class vtkCellArray;
64
65class VTKFILTERSSOURCES_EXPORT vtkGlyphSource2D : public vtkPolyDataAlgorithm
66{
67public:
69 void PrintSelf(ostream& os, vtkIndent indent) override;
70
76
78
81 vtkSetVector3Macro(Center, double);
82 vtkGetVectorMacro(Center, double, 3);
84
86
90 vtkSetClampMacro(Scale, double, 0.0, VTK_DOUBLE_MAX);
91 vtkGetMacro(Scale, double);
93
95
99 vtkSetClampMacro(Scale2, double, 0.0, VTK_DOUBLE_MAX);
100 vtkGetMacro(Scale2, double);
102
104
107 vtkSetVector3Macro(Color, double);
108 vtkGetVectorMacro(Color, double, 3);
110
112
117 vtkSetMacro(Filled, vtkTypeBool);
118 vtkGetMacro(Filled, vtkTypeBool);
119 vtkBooleanMacro(Filled, vtkTypeBool);
121
123
128 vtkSetMacro(Dash, vtkTypeBool);
129 vtkGetMacro(Dash, vtkTypeBool);
130 vtkBooleanMacro(Dash, vtkTypeBool);
132
134
139 vtkSetMacro(Cross, vtkTypeBool);
140 vtkGetMacro(Cross, vtkTypeBool);
141 vtkBooleanMacro(Cross, vtkTypeBool);
143
145
150 vtkSetMacro(RotationAngle, double);
151 vtkGetMacro(RotationAngle, double);
153
155
158 vtkSetClampMacro(Resolution, int, 3, VTK_MAX_CIRCLE_RESOLUTION);
159 vtkGetMacro(Resolution, int);
161
163
166 vtkSetClampMacro(GlyphType, int, VTK_NO_GLYPH, VTK_EDGEARROW_GLYPH);
167 vtkGetMacro(GlyphType, int);
168 void SetGlyphTypeToNone() { this->SetGlyphType(VTK_NO_GLYPH); }
169 void SetGlyphTypeToVertex() { this->SetGlyphType(VTK_VERTEX_GLYPH); }
170 void SetGlyphTypeToDash() { this->SetGlyphType(VTK_DASH_GLYPH); }
171 void SetGlyphTypeToCross() { this->SetGlyphType(VTK_CROSS_GLYPH); }
172 void SetGlyphTypeToThickCross() { this->SetGlyphType(VTK_THICKCROSS_GLYPH); }
173 void SetGlyphTypeToTriangle() { this->SetGlyphType(VTK_TRIANGLE_GLYPH); }
174 void SetGlyphTypeToSquare() { this->SetGlyphType(VTK_SQUARE_GLYPH); }
175 void SetGlyphTypeToCircle() { this->SetGlyphType(VTK_CIRCLE_GLYPH); }
176 void SetGlyphTypeToDiamond() { this->SetGlyphType(VTK_DIAMOND_GLYPH); }
177 void SetGlyphTypeToArrow() { this->SetGlyphType(VTK_ARROW_GLYPH); }
178 void SetGlyphTypeToThickArrow() { this->SetGlyphType(VTK_THICKARROW_GLYPH); }
179 void SetGlyphTypeToHookedArrow() { this->SetGlyphType(VTK_HOOKEDARROW_GLYPH); }
180 void SetGlyphTypeToEdgeArrow() { this->SetGlyphType(VTK_EDGEARROW_GLYPH); }
182
184
189 vtkSetMacro(OutputPointsPrecision, int);
190 vtkGetMacro(OutputPointsPrecision, int);
192
193protected:
195 ~vtkGlyphSource2D() override = default;
196
198
199 double Center[3];
200 double Scale;
201 double Scale2;
202 double Color[3];
210
213 unsigned char RGB[3];
214
217 vtkUnsignedCharArray* colors, double scale);
219 vtkUnsignedCharArray* colors, double scale);
221 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
223 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
225 vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
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);
238
239private:
240 vtkGlyphSource2D(const vtkGlyphSource2D&) = delete;
241 void operator=(const vtkGlyphSource2D&) = delete;
242};
243
244#endif
object to represent cell connectivity
Definition: vtkCellArray.h:190
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:43
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
represent and manipulate 3D points
Definition: vtkPoints.h:43
Superclass for algorithms that produce only polydata as output.
dynamic, self-adjusting array of unsigned char
@ Color
Definition: vtkX3D.h:52
@ scale
Definition: vtkX3D.h:235
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