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 =========================================================================*/
49 #ifndef vtkGlyphSource2D_h
50 #define vtkGlyphSource2D_h
51 
52 #include "vtkFiltersSourcesModule.h" // For export macro
53 #include "vtkPolyDataAlgorithm.h"
54 
55 #define VTK_NO_GLYPH 0
56 #define VTK_VERTEX_GLYPH 1
57 #define VTK_DASH_GLYPH 2
58 #define VTK_CROSS_GLYPH 3
59 #define VTK_THICKCROSS_GLYPH 4
60 #define VTK_TRIANGLE_GLYPH 5
61 #define VTK_SQUARE_GLYPH 6
62 #define VTK_CIRCLE_GLYPH 7
63 #define VTK_DIAMOND_GLYPH 8
64 #define VTK_ARROW_GLYPH 9
65 #define VTK_THICKARROW_GLYPH 10
66 #define VTK_HOOKEDARROW_GLYPH 11
67 #define VTK_EDGEARROW_GLYPH 12
68 
69 #define VTK_MAX_CIRCLE_RESOLUTION 1024
70 
71 class vtkPoints;
73 class vtkCellArray;
74 
75 class VTKFILTERSSOURCES_EXPORT vtkGlyphSource2D : public vtkPolyDataAlgorithm
76 {
77 public:
79  void PrintSelf(ostream& os, vtkIndent indent) override;
80 
85  static vtkGlyphSource2D* New();
86 
88 
91  vtkSetVector3Macro(Center, double);
92  vtkGetVectorMacro(Center, double, 3);
94 
96 
100  vtkSetClampMacro(Scale, double, 0.0, VTK_DOUBLE_MAX);
101  vtkGetMacro(Scale, double);
103 
105 
109  vtkSetClampMacro(Scale2, double, 0.0, VTK_DOUBLE_MAX);
110  vtkGetMacro(Scale2, double);
112 
114 
117  vtkSetVector3Macro(Color, double);
118  vtkGetVectorMacro(Color, double, 3);
120 
122 
127  vtkSetMacro(Filled, vtkTypeBool);
128  vtkGetMacro(Filled, vtkTypeBool);
129  vtkBooleanMacro(Filled, vtkTypeBool);
131 
133 
138  vtkSetMacro(Dash, vtkTypeBool);
139  vtkGetMacro(Dash, vtkTypeBool);
140  vtkBooleanMacro(Dash, vtkTypeBool);
142 
144 
149  vtkSetMacro(Cross, vtkTypeBool);
150  vtkGetMacro(Cross, vtkTypeBool);
151  vtkBooleanMacro(Cross, vtkTypeBool);
153 
155 
160  vtkSetMacro(RotationAngle, double);
161  vtkGetMacro(RotationAngle, double);
163 
165 
168  vtkSetClampMacro(Resolution, int, 3, VTK_MAX_CIRCLE_RESOLUTION);
169  vtkGetMacro(Resolution, int);
171 
173 
176  vtkSetClampMacro(GlyphType, int, VTK_NO_GLYPH, VTK_EDGEARROW_GLYPH);
177  vtkGetMacro(GlyphType, int);
178  void SetGlyphTypeToNone() { this->SetGlyphType(VTK_NO_GLYPH); }
179  void SetGlyphTypeToVertex() { this->SetGlyphType(VTK_VERTEX_GLYPH); }
180  void SetGlyphTypeToDash() { this->SetGlyphType(VTK_DASH_GLYPH); }
181  void SetGlyphTypeToCross() { this->SetGlyphType(VTK_CROSS_GLYPH); }
182  void SetGlyphTypeToThickCross() { this->SetGlyphType(VTK_THICKCROSS_GLYPH); }
183  void SetGlyphTypeToTriangle() { this->SetGlyphType(VTK_TRIANGLE_GLYPH); }
184  void SetGlyphTypeToSquare() { this->SetGlyphType(VTK_SQUARE_GLYPH); }
185  void SetGlyphTypeToCircle() { this->SetGlyphType(VTK_CIRCLE_GLYPH); }
186  void SetGlyphTypeToDiamond() { this->SetGlyphType(VTK_DIAMOND_GLYPH); }
187  void SetGlyphTypeToArrow() { this->SetGlyphType(VTK_ARROW_GLYPH); }
188  void SetGlyphTypeToThickArrow() { this->SetGlyphType(VTK_THICKARROW_GLYPH); }
189  void SetGlyphTypeToHookedArrow() { this->SetGlyphType(VTK_HOOKEDARROW_GLYPH); }
190  void SetGlyphTypeToEdgeArrow() { this->SetGlyphType(VTK_EDGEARROW_GLYPH); }
192 
194 
199  vtkSetMacro(OutputPointsPrecision, int);
200  vtkGetMacro(OutputPointsPrecision, int);
202 
203 protected:
205  ~vtkGlyphSource2D() override = default;
206 
208 
209  double Center[3];
210  double Scale;
211  double Scale2;
212  double Color[3];
220 
222  void ConvertColor();
223  unsigned char RGB[3];
224 
226  void CreateDash(vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys,
227  vtkUnsignedCharArray* colors, double scale);
228  void CreateCross(vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys,
229  vtkUnsignedCharArray* colors, double scale);
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);
245  vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
247  vtkPoints* pts, vtkCellArray* lines, vtkCellArray* polys, vtkUnsignedCharArray* colors);
248 
249 private:
250  vtkGlyphSource2D(const vtkGlyphSource2D&) = delete;
251  void operator=(const vtkGlyphSource2D&) = delete;
252 };
253 
254 #endif
object to represent cell connectivity
Definition: vtkCellArray.h:290
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:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
represent and manipulate 3D points
Definition: vtkPoints.h:143
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