00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00039
#ifndef __vtkGlyphSource2D_h
00040
#define __vtkGlyphSource2D_h
00041
00042
#include "vtkPolyDataSource.h"
00043
00044 #define VTK_NO_GLYPH 0
00045 #define VTK_VERTEX_GLYPH 1
00046 #define VTK_DASH_GLYPH 2
00047 #define VTK_CROSS_GLYPH 3
00048 #define VTK_THICKCROSS_GLYPH 4
00049 #define VTK_TRIANGLE_GLYPH 5
00050 #define VTK_SQUARE_GLYPH 6
00051 #define VTK_CIRCLE_GLYPH 7
00052 #define VTK_DIAMOND_GLYPH 8
00053 #define VTK_ARROW_GLYPH 9
00054 #define VTK_THICKARROW_GLYPH 10
00055 #define VTK_HOOKEDARROW_GLYPH 11
00056
00057
class vtkPoints;
00058
class vtkUnsignedCharArray;
00059
class vtkCellArray;
00060
00061 class VTK_GRAPHICS_EXPORT vtkGlyphSource2D :
public vtkPolyDataSource
00062 {
00063
public:
00064 vtkTypeRevisionMacro(vtkGlyphSource2D,
vtkPolyDataSource);
00065
void PrintSelf(ostream& os,
vtkIndent indent);
00066
00069
static vtkGlyphSource2D *
New();
00070
00072
00073 vtkSetVector3Macro(Center,
float);
00074 vtkGetVectorMacro(Center,
float,3);
00076
00078
00080 vtkSetClampMacro(Scale,
float,0.0,VTK_LARGE_FLOAT);
00081 vtkGetMacro(Scale,
float);
00083
00085
00087 vtkSetClampMacro(Scale2,
float,0.0,VTK_LARGE_FLOAT);
00088 vtkGetMacro(Scale2,
float);
00090
00092
00093 vtkSetVector3Macro(Color,
float);
00094 vtkGetVectorMacro(Color,
float,3);
00096
00098
00101 vtkSetMacro(Filled,
int);
00102 vtkGetMacro(Filled,
int);
00103 vtkBooleanMacro(Filled,
int);
00105
00107
00110 vtkSetMacro(Dash,
int);
00111 vtkGetMacro(Dash,
int);
00112 vtkBooleanMacro(Dash,
int);
00114
00116
00119 vtkSetMacro(Cross,
int);
00120 vtkGetMacro(Cross,
int);
00121 vtkBooleanMacro(Cross,
int);
00123
00125
00128 vtkSetMacro(RotationAngle,
float);
00129 vtkGetMacro(RotationAngle,
float);
00131
00133
00134 vtkSetClampMacro(GlyphType,
int,VTK_NO_GLYPH,VTK_HOOKEDARROW_GLYPH);
00135 vtkGetMacro(GlyphType,
int);
00136 void SetGlyphTypeToNone() {this->SetGlyphType(
VTK_NO_GLYPH);}
00137 void SetGlyphTypeToVertex() {this->SetGlyphType(
VTK_VERTEX_GLYPH);}
00138 void SetGlyphTypeToDash() {this->SetGlyphType(
VTK_DASH_GLYPH);}
00139 void SetGlyphTypeToCross() {this->SetGlyphType(
VTK_CROSS_GLYPH);}
00140 void SetGlyphTypeToThickCross() {this->SetGlyphType(
VTK_THICKCROSS_GLYPH);}
00141 void SetGlyphTypeToTriangle() {this->SetGlyphType(
VTK_TRIANGLE_GLYPH);}
00142 void SetGlyphTypeToSquare() {this->SetGlyphType(
VTK_SQUARE_GLYPH);}
00143 void SetGlyphTypeToCircle() {this->SetGlyphType(
VTK_CIRCLE_GLYPH);}
00144 void SetGlyphTypeToDiamond() {this->SetGlyphType(
VTK_DIAMOND_GLYPH);}
00145 void SetGlyphTypeToArrow() {this->SetGlyphType(
VTK_ARROW_GLYPH);}
00146 void SetGlyphTypeToThickArrow() {this->SetGlyphType(
VTK_THICKARROW_GLYPH);}
00147 void SetGlyphTypeToHookedArrow() {this->SetGlyphType(
VTK_HOOKEDARROW_GLYPH);}
00149
00150
protected:
00151 vtkGlyphSource2D();
00152 ~vtkGlyphSource2D() {};
00153
00154
void Execute();
00155
00156 float Center[3];
00157 float Scale;
00158 float Scale2;
00159 float Color[3];
00160 int Filled;
00161 int Dash;
00162 int Cross;
00163 int GlyphType;
00164 float RotationAngle;
00165
00166
void TransformGlyph(
vtkPoints *pts);
00167
void ConvertColor();
00168 unsigned char RGB[3];
00169
00170
void CreateVertex(
vtkPoints *pts,
vtkCellArray *verts,
00171
vtkUnsignedCharArray *colors);
00172
void CreateDash(
vtkPoints *pts,
vtkCellArray *lines,
00173
vtkCellArray *polys,
vtkUnsignedCharArray *colors,
float scale);
00174
void CreateCross(
vtkPoints *pts,
vtkCellArray *lines,
00175
vtkCellArray *polys,
vtkUnsignedCharArray *colors,
float scale);
00176
void CreateThickCross(
vtkPoints *pts,
vtkCellArray *lines,
00177
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00178
void CreateTriangle(
vtkPoints *pts,
vtkCellArray *lines,
00179
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00180
void CreateSquare(
vtkPoints *pts,
vtkCellArray *lines,
00181
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00182
void CreateCircle(
vtkPoints *pts,
vtkCellArray *lines,
00183
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00184
void CreateDiamond(
vtkPoints *pts,
vtkCellArray *lines,
00185
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00186
void CreateArrow(
vtkPoints *pts,
vtkCellArray *lines,
00187
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00188
void CreateThickArrow(
vtkPoints *pts,
vtkCellArray *lines,
00189
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00190
void CreateHookedArrow(
vtkPoints *pts,
vtkCellArray *lines,
00191
vtkCellArray *polys,
vtkUnsignedCharArray *colors);
00192
00193
private:
00194 vtkGlyphSource2D(
const vtkGlyphSource2D&);
00195
void operator=(
const vtkGlyphSource2D&);
00196 };
00197
00198
#endif
00199
00200