00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00049 #ifndef __vtkGlyphSource2D_h
00050 #define __vtkGlyphSource2D_h
00051
00052 #include "vtkPolyDataSource.h"
00053
00054 #define VTK_NO_GLYPH 0
00055 #define VTK_VERTEX_GLYPH 1
00056 #define VTK_DASH_GLYPH 2
00057 #define VTK_CROSS_GLYPH 3
00058 #define VTK_THICKCROSS_GLYPH 4
00059 #define VTK_TRIANGLE_GLYPH 5
00060 #define VTK_SQUARE_GLYPH 6
00061 #define VTK_CIRCLE_GLYPH 7
00062 #define VTK_DIAMOND_GLYPH 8
00063 #define VTK_ARROW_GLYPH 9
00064 #define VTK_THICKARROW_GLYPH 10
00065 #define VTK_HOOKEDARROW_GLYPH 11
00066
00067 class vtkPoints;
00068 class vtkUnsignedCharArray;
00069 class vtkCellArray;
00070
00071 class VTK_GRAPHICS_EXPORT vtkGlyphSource2D : public vtkPolyDataSource
00072 {
00073 public:
00074 vtkTypeRevisionMacro(vtkGlyphSource2D,vtkPolyDataSource);
00075 void PrintSelf(ostream& os, vtkIndent indent);
00076
00079 static vtkGlyphSource2D *New();
00080
00082
00083 vtkSetVector3Macro(Center,float);
00084 vtkGetVectorMacro(Center,float,3);
00086
00088
00090 vtkSetClampMacro(Scale,float,0.0,VTK_LARGE_FLOAT);
00091 vtkGetMacro(Scale,float);
00093
00095
00097 vtkSetClampMacro(Scale2,float,0.0,VTK_LARGE_FLOAT);
00098 vtkGetMacro(Scale2,float);
00100
00102
00103 vtkSetVector3Macro(Color,float);
00104 vtkGetVectorMacro(Color,float,3);
00106
00108
00111 vtkSetMacro(Filled,int);
00112 vtkGetMacro(Filled,int);
00113 vtkBooleanMacro(Filled,int);
00115
00117
00120 vtkSetMacro(Dash,int);
00121 vtkGetMacro(Dash,int);
00122 vtkBooleanMacro(Dash,int);
00124
00126
00129 vtkSetMacro(Cross,int);
00130 vtkGetMacro(Cross,int);
00131 vtkBooleanMacro(Cross,int);
00133
00135
00138 vtkSetMacro(RotationAngle,float);
00139 vtkGetMacro(RotationAngle,float);
00141
00143
00144 vtkSetClampMacro(GlyphType,int,VTK_NO_GLYPH,VTK_HOOKEDARROW_GLYPH);
00145 vtkGetMacro(GlyphType,int);
00146 void SetGlyphTypeToNone() {this->SetGlyphType(VTK_NO_GLYPH);}
00147 void SetGlyphTypeToVertex() {this->SetGlyphType(VTK_VERTEX_GLYPH);}
00148 void SetGlyphTypeToDash() {this->SetGlyphType(VTK_DASH_GLYPH);}
00149 void SetGlyphTypeToCross() {this->SetGlyphType(VTK_CROSS_GLYPH);}
00150 void SetGlyphTypeToThickCross() {this->SetGlyphType(VTK_THICKCROSS_GLYPH);}
00151 void SetGlyphTypeToTriangle() {this->SetGlyphType(VTK_TRIANGLE_GLYPH);}
00152 void SetGlyphTypeToSquare() {this->SetGlyphType(VTK_SQUARE_GLYPH);}
00153 void SetGlyphTypeToCircle() {this->SetGlyphType(VTK_CIRCLE_GLYPH);}
00154 void SetGlyphTypeToDiamond() {this->SetGlyphType(VTK_DIAMOND_GLYPH);}
00155 void SetGlyphTypeToArrow() {this->SetGlyphType(VTK_ARROW_GLYPH);}
00156 void SetGlyphTypeToThickArrow() {this->SetGlyphType(VTK_THICKARROW_GLYPH);}
00157 void SetGlyphTypeToHookedArrow() {this->SetGlyphType(VTK_HOOKEDARROW_GLYPH);}
00159
00160 protected:
00161 vtkGlyphSource2D();
00162 ~vtkGlyphSource2D() {};
00163
00164 void Execute();
00165
00166 float Center[3];
00167 float Scale;
00168 float Scale2;
00169 float Color[3];
00170 int Filled;
00171 int Dash;
00172 int Cross;
00173 int GlyphType;
00174 float RotationAngle;
00175
00176 void TransformGlyph(vtkPoints *pts);
00177 void ConvertColor();
00178 unsigned char RGB[3];
00179
00180 void CreateVertex(vtkPoints *pts, vtkCellArray *verts,
00181 vtkUnsignedCharArray *colors);
00182 void CreateDash(vtkPoints *pts, vtkCellArray *lines,
00183 vtkCellArray *polys, vtkUnsignedCharArray *colors, float scale);
00184 void CreateCross(vtkPoints *pts, vtkCellArray *lines,
00185 vtkCellArray *polys, vtkUnsignedCharArray *colors, float scale);
00186 void CreateThickCross(vtkPoints *pts, vtkCellArray *lines,
00187 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00188 void CreateTriangle(vtkPoints *pts, vtkCellArray *lines,
00189 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00190 void CreateSquare(vtkPoints *pts, vtkCellArray *lines,
00191 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00192 void CreateCircle(vtkPoints *pts, vtkCellArray *lines,
00193 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00194 void CreateDiamond(vtkPoints *pts, vtkCellArray *lines,
00195 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00196 void CreateArrow(vtkPoints *pts, vtkCellArray *lines,
00197 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00198 void CreateThickArrow(vtkPoints *pts, vtkCellArray *lines,
00199 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00200 void CreateHookedArrow(vtkPoints *pts, vtkCellArray *lines,
00201 vtkCellArray *polys, vtkUnsignedCharArray *colors);
00202
00203 private:
00204 vtkGlyphSource2D(const vtkGlyphSource2D&);
00205 void operator=(const vtkGlyphSource2D&);
00206 };
00207
00208 #endif
00209
00210