VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageCanvasSource2D.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 // Destructor: Deleting a vtkImageCanvasSource2D automatically deletes the 00151 // associated vtkImageData. However, since the data is reference counted, 00152 // it may not actually be deleted. 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&); // Not implemented. 00172 void operator=(const vtkImageCanvasSource2D&); // Not implemented. 00173 }; 00174 00175 00176 00177 #endif 00178 00179