00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00034 #ifndef __vtkImageCanvasSource2D_h
00035 #define __vtkImageCanvasSource2D_h
00036
00037 #include "vtkStructuredPoints.h"
00038
00039
00040
00041
00042
00043
00044
00045 class vtkImageCanvasSource2DPixel {
00046 public:
00047 static vtkImageCanvasSource2DPixel *New()
00048 { return new vtkImageCanvasSource2DPixel ;}
00049 int X;
00050 int Y;
00051 void *Pointer;
00052 vtkImageCanvasSource2DPixel *Next;
00053 };
00054
00055
00056
00057
00058 class VTK_IMAGING_EXPORT vtkImageCanvasSource2D : public vtkStructuredPoints
00059 {
00060 public:
00062 static vtkImageCanvasSource2D *New();
00063
00064 vtkTypeRevisionMacro(vtkImageCanvasSource2D,vtkStructuredPoints);
00065 void PrintSelf(ostream& os, vtkIndent indent);
00066
00068
00069 void SetImageData(vtkImageData *image);
00070 vtkGetObjectMacro(ImageData, vtkImageData);
00072
00074
00076 vtkSetVector4Macro(DrawColor, float);
00077 vtkGetVector4Macro(DrawColor, float);
00078 void SetDrawColor(float a) {this->SetDrawColor(a, 0.0, 0.0, 0.0);}
00079 void SetDrawColor(float a,float b) {this->SetDrawColor(a, b, 0.0, 0.0);}
00080 void SetDrawColor(float a, float b, float c) {this->SetDrawColor(a, b, c, 0.0);}
00082
00083 void FillBox(int min0, int max0, int min1, int max1);
00084 void FillTube(int x0, int y0, int x1, int y1, float radius);
00085 void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
00086 void DrawCircle(int c0, int c1, float radius);
00087 void DrawPoint(int p0, int p1);
00088 void DrawSegment(int x0, int y0, int x1, int y1);
00089 void DrawSegment3D(float *p0, float *p1);
00090 void DrawSegment3D(float x1, float y1, float z1, float x2, float y2, float z2)
00091 { float p1[3], p2[3];
00092 p1[0] = x1; p1[1] = y1; p1[2] = z1; p2[0] = x2; p2[1] = y2; p2[2] = z2;
00093 this->DrawSegment3D(p1, p2);}
00094
00096
00098 void DrawImage(int x0, int y0, vtkImageData* i)
00099 { this->DrawImage(x0, y0, i, -1, -1, -1, -1); }
00100 void DrawImage(int x0, int y0, vtkImageData*, int sx, int sy,
00101 int width, int height);
00103
00107 void FillPixel(int x, int y);
00108
00111 vtkImageData *GetOutput() {return this;}
00112
00114
00117 void SetExtent(int *extent);
00118 void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
00120
00122
00125 vtkSetMacro(DefaultZ, int);
00126 vtkGetMacro(DefaultZ, int);
00128
00130
00132 vtkSetVector3Macro(Ratio, float);
00133 vtkGetVector3Macro(Ratio, float);
00135
00136 protected:
00137 vtkImageCanvasSource2D();
00138
00139
00140
00141 ~vtkImageCanvasSource2D();
00142
00143 vtkImageData *ImageData;
00144 float DrawColor[4];
00145 int DefaultZ;
00146 float Ratio[3];
00147
00148 int ClipSegment(int &a0, int &a1, int &b0, int &b1);
00149 private:
00150 vtkImageCanvasSource2D(const vtkImageCanvasSource2D&);
00151 void operator=(const vtkImageCanvasSource2D&);
00152 };
00153
00154
00155
00156 #endif
00157
00158