VTK
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 =========================================================================*/
41 #ifndef __vtkIconGlyphFilter_h
42 #define __vtkIconGlyphFilter_h
43 
44 #include "vtkPolyDataAlgorithm.h"
45 
46 #define VTK_ICON_GRAVITY_TOP_RIGHT 1
47 #define VTK_ICON_GRAVITY_TOP_CENTER 2
48 #define VTK_ICON_GRAVITY_TOP_LEFT 3
49 #define VTK_ICON_GRAVITY_CENTER_RIGHT 4
50 #define VTK_ICON_GRAVITY_CENTER_CENTER 5
51 #define VTK_ICON_GRAVITY_CENTER_LEFT 6
52 #define VTK_ICON_GRAVITY_BOTTOM_RIGHT 7
53 #define VTK_ICON_GRAVITY_BOTTOM_CENTER 8
54 #define VTK_ICON_GRAVITY_BOTTOM_LEFT 9
55 
56 #define VTK_ICON_SCALING_OFF 0
57 #define VTK_ICON_SCALING_USE_SCALING_ARRAY 1
58 
59 
61 {
62 public:
64 
65  static vtkIconGlyphFilter *New();
67  void PrintSelf(ostream& os, vtkIndent indent);
69 
71 
73  vtkSetVector2Macro(IconSize,int);
74  vtkGetVectorMacro(IconSize,int,2);
76 
78 
80  vtkSetVector2Macro(IconSheetSize,int);
81  vtkGetVectorMacro(IconSheetSize,int,2);
83 
85 
90  vtkSetVector2Macro(DisplaySize,int);
91  vtkGetVectorMacro(DisplaySize,int,2);
93 
95 
97  vtkSetMacro(UseIconSize,bool);
98  vtkGetMacro(UseIconSize,bool);
99  vtkBooleanMacro(UseIconSize, bool);
101 
103 
106  vtkSetMacro(IconScaling,int);
107  vtkGetMacro(IconScaling,int);
108  void SetIconScalingToScalingOff() {this->SetIconScaling(VTK_ICON_SCALING_OFF);}
110  {this->SetIconScaling(VTK_ICON_SCALING_USE_SCALING_ARRAY);}
112 
114 
118  vtkSetMacro(PassScalars,bool);
119  vtkGetMacro(PassScalars,bool);
120  vtkBooleanMacro(PassScalars,bool);
122 
124 
128  vtkSetMacro(Gravity, int);
129  vtkGetMacro(Gravity, int);
132  void SetGravityToTopLeft() {this->SetGravity(VTK_ICON_GRAVITY_TOP_LEFT);};
140 
142 
144  vtkSetVector2Macro(Offset,int);
145  vtkGetVectorMacro(Offset,int,2);
147 
148 protected:
151 
152  virtual int RequestData(vtkInformation *,
155 
156  int IconSize[2]; // Size in pixels of an icon in an icon sheet
157  int IconSheetSize[2]; // Size in pixels of the icon sheet
158  int DisplaySize[2]; // Size in pixels of the icon when displayed
159 
160  int Gravity;
164  int Offset[2];
165 
166 private:
167  vtkIconGlyphFilter(const vtkIconGlyphFilter&); // Not implemented.
168  void operator=(const vtkIconGlyphFilter&); // Not implemented.
169 
170  void IconConvertIndex(int id, int & j, int & k);
171 };
172 
173 inline void vtkIconGlyphFilter::IconConvertIndex(int id, int & j, int & k)
174 {
175  int dimX = this->IconSheetSize[0]/this->IconSize[0];
176  int dimY = this->IconSheetSize[1]/this->IconSize[1];
177 
178  j = id - dimX * static_cast<int>(id/dimX);
179  k = dimY - static_cast<int>(id/dimX) - 1;
180 }
181 
182 #endif
#define VTK_GRAPHICS_EXPORT
#define VTK_ICON_GRAVITY_BOTTOM_LEFT
Store vtkAlgorithm input/output information.
Filter that generates a polydata consisting of quads with texture coordinates referring to a set of i...
#define VTK_ICON_GRAVITY_BOTTOM_RIGHT
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
#define VTK_ICON_GRAVITY_CENTER_LEFT
#define VTK_ICON_GRAVITY_TOP_CENTER
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:37
#define VTK_ICON_GRAVITY_CENTER_CENTER
#define VTK_ICON_GRAVITY_TOP_LEFT
#define VTK_ICON_SCALING_USE_SCALING_ARRAY
#define VTK_ICON_GRAVITY_BOTTOM_CENTER
Store zero or more vtkInformation instances.
#define VTK_ICON_GRAVITY_TOP_RIGHT
#define VTK_ICON_GRAVITY_CENTER_RIGHT
#define VTK_ICON_SCALING_OFF