00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkImageCanvasSource2D_h
00027 #define __vtkImageCanvasSource2D_h
00028
00029 #include "vtkImageAlgorithm.h"
00030
00031 class VTK_IMAGING_EXPORT vtkImageCanvasSource2D : public vtkImageAlgorithm
00032 {
00033 public:
00035 static vtkImageCanvasSource2D *New();
00036
00037 vtkTypeRevisionMacro(vtkImageCanvasSource2D,vtkImageAlgorithm);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039
00041
00043 vtkSetVector4Macro(DrawColor, double);
00044 vtkGetVector4Macro(DrawColor, double);
00045 void SetDrawColor(double a) {this->SetDrawColor(a, 0.0, 0.0, 0.0);}
00046 void SetDrawColor(double a,double b) {this->SetDrawColor(a, b, 0.0, 0.0);}
00047 void SetDrawColor(double a, double b, double c) {
00048 this->SetDrawColor(a, b, c, 0.0);}
00050
00051 void FillBox(int min0, int max0, int min1, int max1);
00052 void FillTube(int x0, int y0, int x1, int y1, double radius);
00053 void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
00054 void DrawCircle(int c0, int c1, double radius);
00055 void DrawPoint(int p0, int p1);
00056 void DrawSegment(int x0, int y0, int x1, int y1);
00057 void DrawSegment3D(double *p0, double *p1);
00058 void DrawSegment3D(double x1, double y1, double z1,
00059 double x2, double y2, double z2)
00060 { double p1[3], p2[3];
00061 p1[0] = x1; p1[1] = y1; p1[2] = z1; p2[0] = x2; p2[1] = y2; p2[2] = z2;
00062 this->DrawSegment3D(p1, p2);}
00063
00065
00067 void DrawImage(int x0, int y0, vtkImageData* i)
00068 { this->DrawImage(x0, y0, i, -1, -1, -1, -1); }
00069 void DrawImage(int x0, int y0, vtkImageData*, int sx, int sy,
00070 int width, int height);
00072
00076 void FillPixel(int x, int y);
00077
00079
00082 void SetExtent(int *extent);
00083 void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
00085
00087
00090 vtkSetMacro(DefaultZ, int);
00091 vtkGetMacro(DefaultZ, int);
00093
00095
00097 vtkSetVector3Macro(Ratio, double);
00098 vtkGetVector3Macro(Ratio, double);
00100
00102
00103 virtual void SetNumberOfScalarComponents(int i);
00104 virtual int GetNumberOfScalarComponents() const;
00106
00108
00113 void SetScalarTypeToFloat(){this->SetScalarType(VTK_FLOAT);};
00114 void SetScalarTypeToDouble(){this->SetScalarType(VTK_DOUBLE);};
00115 void SetScalarTypeToInt(){this->SetScalarType(VTK_INT);};
00116 void SetScalarTypeToUnsignedInt()
00117 {this->SetScalarType(VTK_UNSIGNED_INT);};
00118 void SetScalarTypeToLong(){this->SetScalarType(VTK_LONG);};
00119 void SetScalarTypeToUnsignedLong()
00120 {this->SetScalarType(VTK_UNSIGNED_LONG);};
00121 void SetScalarTypeToShort(){this->SetScalarType(VTK_SHORT);};
00122 void SetScalarTypeToUnsignedShort()
00123 {this->SetScalarType(VTK_UNSIGNED_SHORT);};
00124 void SetScalarTypeToUnsignedChar()
00125 {this->SetScalarType(VTK_UNSIGNED_CHAR);};
00126 void SetScalarTypeToChar()
00127 {this->SetScalarType(VTK_CHAR);};
00128 void SetScalarType(int);
00129 int GetScalarType() const;
00131
00132 protected:
00133 vtkImageCanvasSource2D();
00134
00135
00136
00137 ~vtkImageCanvasSource2D();
00138
00139 vtkImageData *ImageData;
00140 int WholeExtent[6];
00141 double DrawColor[4];
00142 int DefaultZ;
00143 double Ratio[3];
00144
00145 int ClipSegment(int &a0, int &a1, int &b0, int &b1);
00146
00147 virtual int RequestInformation (vtkInformation *,
00148 vtkInformationVector**,
00149 vtkInformationVector *);
00150 virtual int RequestData (vtkInformation *,
00151 vtkInformationVector**,
00152 vtkInformationVector *);
00153
00154 private:
00155 vtkImageCanvasSource2D(const vtkImageCanvasSource2D&);
00156 void operator=(const vtkImageCanvasSource2D&);
00157 };
00158
00159
00160
00161 #endif
00162
00163