00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00029 #ifndef __vtkImageCanvasSource2D_h
00030 #define __vtkImageCanvasSource2D_h
00031
00032 #include "vtkImageAlgorithm.h"
00033
00034 class VTK_IMAGING_EXPORT vtkImageCanvasSource2D : public vtkImageAlgorithm
00035 {
00036 public:
00038 static vtkImageCanvasSource2D *New();
00039
00040 vtkTypeMacro(vtkImageCanvasSource2D,vtkImageAlgorithm);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00044
00046 vtkSetVector4Macro(DrawColor, double);
00047 vtkGetVector4Macro(DrawColor, double);
00049
00051 void SetDrawColor(double a) {this->SetDrawColor(a, 0.0, 0.0, 0.0);}
00052
00054 void SetDrawColor(double a,double b) {this->SetDrawColor(a, b, 0.0, 0.0);}
00055
00057
00058 void SetDrawColor(double a, double b, double c) {
00059 this->SetDrawColor(a, b, c, 0.0);}
00061
00063
00065 void FillBox(int min0, int max0, int min1, int max1);
00066 void FillTube(int x0, int y0, int x1, int y1, double radius);
00067 void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
00068 void DrawCircle(int c0, int c1, double radius);
00069 void DrawPoint(int p0, int p1);
00070 void DrawSegment(int x0, int y0, int x1, int y1);
00071 void DrawSegment3D(double *p0, double *p1);
00072 void DrawSegment3D(double x1, double y1, double z1,
00073 double x2, double y2, double z2)
00074 { double p1[3], p2[3];
00075 p1[0] = x1; p1[1] = y1; p1[2] = z1; p2[0] = x2; p2[1] = y2; p2[2] = z2;
00076 this->DrawSegment3D(p1, p2);}
00078
00080
00082 void DrawImage(int x0, int y0, vtkImageData* i)
00083 { this->DrawImage(x0, y0, i, -1, -1, -1, -1); }
00084 void DrawImage(int x0, int y0, vtkImageData*, int sx, int sy,
00085 int width, int height);
00087
00091 void FillPixel(int x, int y);
00092
00094
00097 void SetExtent(int *extent);
00098 void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
00100
00102
00105 vtkSetMacro(DefaultZ, int);
00106 vtkGetMacro(DefaultZ, int);
00108
00110
00113 vtkSetVector3Macro(Ratio, double);
00114 vtkGetVector3Macro(Ratio, double);
00116
00118
00119 virtual void SetNumberOfScalarComponents(int i);
00120 virtual int GetNumberOfScalarComponents() const;
00122
00124
00129 void SetScalarTypeToFloat(){this->SetScalarType(VTK_FLOAT);};
00130 void SetScalarTypeToDouble(){this->SetScalarType(VTK_DOUBLE);};
00131 void SetScalarTypeToInt(){this->SetScalarType(VTK_INT);};
00132 void SetScalarTypeToUnsignedInt()
00133 {this->SetScalarType(VTK_UNSIGNED_INT);};
00134 void SetScalarTypeToLong(){this->SetScalarType(VTK_LONG);};
00135 void SetScalarTypeToUnsignedLong()
00136 {this->SetScalarType(VTK_UNSIGNED_LONG);};
00137 void SetScalarTypeToShort(){this->SetScalarType(VTK_SHORT);};
00138 void SetScalarTypeToUnsignedShort()
00139 {this->SetScalarType(VTK_UNSIGNED_SHORT);};
00140 void SetScalarTypeToUnsignedChar()
00141 {this->SetScalarType(VTK_UNSIGNED_CHAR);};
00142 void SetScalarTypeToChar()
00143 {this->SetScalarType(VTK_CHAR);};
00144 void SetScalarType(int);
00145 int GetScalarType() const;
00147
00148 protected:
00149 vtkImageCanvasSource2D();
00150
00151
00152
00153 ~vtkImageCanvasSource2D();
00154
00155 vtkImageData *ImageData;
00156 int WholeExtent[6];
00157 double DrawColor[4];
00158 int DefaultZ;
00159 double Ratio[3];
00160
00161 int ClipSegment(int &a0, int &a1, int &b0, int &b1);
00162
00163 virtual int RequestInformation (vtkInformation *,
00164 vtkInformationVector**,
00165 vtkInformationVector *);
00166 virtual int RequestData (vtkInformation *,
00167 vtkInformationVector**,
00168 vtkInformationVector *);
00169
00170 private:
00171 vtkImageCanvasSource2D(const vtkImageCanvasSource2D&);
00172 void operator=(const vtkImageCanvasSource2D&);
00173 };
00174
00175
00176
00177 #endif
00178
00179