VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageCanvasSource2D.h,v $ 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 =========================================================================*/ 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 // Destructor: Deleting a vtkImageCanvasSource2D automatically deletes the 00135 // associated vtkImageData. However, since the data is reference counted, 00136 // it may not actually be deleted. 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&); // Not implemented. 00156 void operator=(const vtkImageCanvasSource2D&); // Not implemented. 00157 }; 00158 00159 00160 00161 #endif 00162 00163