VTK  9.1.0
vtkIconGlyphFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkIconGlyphFilter.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 vtkIconGlyphFilter_h
40#define vtkIconGlyphFilter_h
41
42#include "vtkFiltersGeneralModule.h" // For export macro
44
45#define VTK_ICON_GRAVITY_TOP_RIGHT 1
46#define VTK_ICON_GRAVITY_TOP_CENTER 2
47#define VTK_ICON_GRAVITY_TOP_LEFT 3
48#define VTK_ICON_GRAVITY_CENTER_RIGHT 4
49#define VTK_ICON_GRAVITY_CENTER_CENTER 5
50#define VTK_ICON_GRAVITY_CENTER_LEFT 6
51#define VTK_ICON_GRAVITY_BOTTOM_RIGHT 7
52#define VTK_ICON_GRAVITY_BOTTOM_CENTER 8
53#define VTK_ICON_GRAVITY_BOTTOM_LEFT 9
54
55#define VTK_ICON_SCALING_OFF 0
56#define VTK_ICON_SCALING_USE_SCALING_ARRAY 1
57
58class VTKFILTERSGENERAL_EXPORT vtkIconGlyphFilter : public vtkPolyDataAlgorithm
59{
60public:
62
67 void PrintSelf(ostream& os, vtkIndent indent) override;
69
71
74 vtkSetVector2Macro(IconSize, int);
75 vtkGetVectorMacro(IconSize, int, 2);
77
79
82 vtkSetVector2Macro(IconSheetSize, int);
83 vtkGetVectorMacro(IconSheetSize, int, 2);
85
87
94 vtkSetVector2Macro(DisplaySize, int);
95 vtkGetVectorMacro(DisplaySize, int, 2);
97
99
103 vtkSetMacro(UseIconSize, bool);
104 vtkGetMacro(UseIconSize, bool);
105 vtkBooleanMacro(UseIconSize, bool);
107
109
114 vtkSetMacro(IconScaling, int);
115 vtkGetMacro(IconScaling, int);
116 void SetIconScalingToScalingOff() { this->SetIconScaling(VTK_ICON_SCALING_OFF); }
119
121
127 vtkSetMacro(PassScalars, bool);
128 vtkGetMacro(PassScalars, bool);
129 vtkBooleanMacro(PassScalars, bool);
131
133
138 vtkSetMacro(Gravity, int);
139 vtkGetMacro(Gravity, int);
142 void SetGravityToTopLeft() { this->SetGravity(VTK_ICON_GRAVITY_TOP_LEFT); }
150
152
156 vtkSetVector2Macro(Offset, int);
157 vtkGetVectorMacro(Offset, int, 2);
159
160protected:
163
165
166 int IconSize[2]; // Size in pixels of an icon in an icon sheet
167 int IconSheetSize[2]; // Size in pixels of the icon sheet
168 int DisplaySize[2]; // Size in pixels of the icon when displayed
169
174 int Offset[2];
175
176private:
177 vtkIconGlyphFilter(const vtkIconGlyphFilter&) = delete;
178 void operator=(const vtkIconGlyphFilter&) = delete;
179
180 void IconConvertIndex(int id, int& j, int& k);
181};
182
183inline void vtkIconGlyphFilter::IconConvertIndex(int id, int& j, int& k)
184{
185 int dimX = this->IconSheetSize[0] / this->IconSize[0];
186 int dimY = this->IconSheetSize[1] / this->IconSize[1];
187
188 j = id - dimX * static_cast<int>(id / dimX);
189 k = dimY - static_cast<int>(id / dimX) - 1;
190}
191
192#endif
Filter that generates a polydata consisting of quads with texture coordinates referring to a set of i...
void SetGravityToCenterLeft()
Specify if the input points define the center of the icon quad or one of top right corner,...
void SetIconScalingToScalingArray()
Specify how to specify individual icons.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK methods.
~vtkIconGlyphFilter() override
void SetGravityToTopLeft()
Specify if the input points define the center of the icon quad or one of top right corner,...
void SetGravityToTopCenter()
Specify if the input points define the center of the icon quad or one of top right corner,...
void SetGravityToCenterCenter()
Specify if the input points define the center of the icon quad or one of top right corner,...
void SetGravityToCenterRight()
Specify if the input points define the center of the icon quad or one of top right corner,...
void SetGravityToBottomRight()
Specify if the input points define the center of the icon quad or one of top right corner,...
static vtkIconGlyphFilter * New()
Standard VTK methods.
void SetGravityToBottomCenter()
Specify if the input points define the center of the icon quad or one of top right corner,...
void SetIconScalingToScalingOff()
Specify how to specify individual icons.
void SetGravityToTopRight()
Specify if the input points define the center of the icon quad or one of top right corner,...
void SetGravityToBottomLeft()
Specify if the input points define the center of the icon quad or one of top right corner,...
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
#define VTK_ICON_GRAVITY_BOTTOM_RIGHT
#define VTK_ICON_GRAVITY_CENTER_LEFT
#define VTK_ICON_SCALING_USE_SCALING_ARRAY
#define VTK_ICON_GRAVITY_TOP_RIGHT
#define VTK_ICON_GRAVITY_BOTTOM_LEFT
#define VTK_ICON_GRAVITY_TOP_LEFT
#define VTK_ICON_GRAVITY_BOTTOM_CENTER
#define VTK_ICON_GRAVITY_CENTER_CENTER
#define VTK_ICON_GRAVITY_TOP_CENTER
#define VTK_ICON_GRAVITY_CENTER_RIGHT
#define VTK_ICON_SCALING_OFF