VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Imaging/Sources/vtkImageCanvasSource2D.h
Go to the documentation of this file.
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 "vtkImagingSourcesModule.h" // For export macro
00033 #include "vtkImageAlgorithm.h"
00034 
00035 class VTKIMAGINGSOURCES_EXPORT vtkImageCanvasSource2D : public vtkImageAlgorithm
00036 {
00037 public:
00039   static vtkImageCanvasSource2D *New();
00040 
00041   vtkTypeMacro(vtkImageCanvasSource2D,vtkImageAlgorithm);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00043 
00045 
00047   vtkSetVector4Macro(DrawColor, double);
00048   vtkGetVector4Macro(DrawColor, double);
00050 
00052   void SetDrawColor(double a) {this->SetDrawColor(a, 0.0, 0.0, 0.0);}
00053 
00055   void SetDrawColor(double a,double b) {this->SetDrawColor(a, b, 0.0, 0.0);}
00056 
00058 
00059   void SetDrawColor(double a, double b, double c) {
00060     this->SetDrawColor(a, b, c, 0.0);}
00062 
00064   void InitializeCanvasVolume(vtkImageData *volume);
00065 
00067 
00069   void FillBox(int min0, int max0, int min1, int max1);
00070   void FillTube(int x0, int y0, int x1, int y1, double radius);
00071   void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
00072   void DrawCircle(int c0, int c1, double radius);
00073   void DrawPoint(int p0, int p1);
00074   void DrawSegment(int x0, int y0, int x1, int y1);
00075   void DrawSegment3D(double *p0, double *p1);
00076   void DrawSegment3D(double x1, double y1, double z1,
00077                      double x2, double y2, double z2)
00078     { double p1[3], p2[3];
00079     p1[0] = x1; p1[1] = y1; p1[2] = z1; p2[0] = x2; p2[1] = y2; p2[2] = z2;
00080     this->DrawSegment3D(p1, p2);}
00082 
00084 
00086   void DrawImage(int x0, int y0, vtkImageData* i)
00087     { this->DrawImage(x0, y0, i, -1, -1, -1, -1); }
00088   void DrawImage(int x0, int y0, vtkImageData*, int sx, int sy,
00089                  int width, int height);
00091 
00095   void FillPixel(int x, int y);
00096 
00098 
00101   void SetExtent(int *extent);
00102   void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
00104 
00106 
00109   vtkSetMacro(DefaultZ, int);
00110   vtkGetMacro(DefaultZ, int);
00112 
00114 
00117   vtkSetVector3Macro(Ratio, double);
00118   vtkGetVector3Macro(Ratio, double);
00120 
00122 
00123   virtual void SetNumberOfScalarComponents(int i);
00124   virtual int GetNumberOfScalarComponents() const;
00126 
00128 
00133   void SetScalarTypeToFloat(){this->SetScalarType(VTK_FLOAT);};
00134   void SetScalarTypeToDouble(){this->SetScalarType(VTK_DOUBLE);};
00135   void SetScalarTypeToInt(){this->SetScalarType(VTK_INT);};
00136   void SetScalarTypeToUnsignedInt()
00137     {this->SetScalarType(VTK_UNSIGNED_INT);};
00138   void SetScalarTypeToLong(){this->SetScalarType(VTK_LONG);};
00139   void SetScalarTypeToUnsignedLong()
00140     {this->SetScalarType(VTK_UNSIGNED_LONG);};
00141   void SetScalarTypeToShort(){this->SetScalarType(VTK_SHORT);};
00142   void SetScalarTypeToUnsignedShort()
00143     {this->SetScalarType(VTK_UNSIGNED_SHORT);};
00144   void SetScalarTypeToUnsignedChar()
00145     {this->SetScalarType(VTK_UNSIGNED_CHAR);};
00146   void SetScalarTypeToChar()
00147     {this->SetScalarType(VTK_CHAR);};
00148   void SetScalarType(int);
00149   int GetScalarType() const;
00151 
00152 protected:
00153   vtkImageCanvasSource2D();
00154   // Destructor: Deleting a vtkImageCanvasSource2D automatically deletes the
00155   // associated vtkImageData.  However, since the data is reference counted,
00156   // it may not actually be deleted.
00157   ~vtkImageCanvasSource2D();
00158 
00159   vtkImageData *ImageData;
00160   int WholeExtent[6];
00161   double DrawColor[4];
00162   int DefaultZ;
00163   double Ratio[3];
00164 
00165   int ClipSegment(int &a0, int &a1, int &b0, int &b1);
00166 
00167   virtual int RequestInformation (vtkInformation *,
00168                                   vtkInformationVector**,
00169                                   vtkInformationVector *);
00170   virtual int RequestData (vtkInformation *,
00171                            vtkInformationVector**,
00172                            vtkInformationVector *);
00173 
00174 private:
00175   vtkImageCanvasSource2D(const vtkImageCanvasSource2D&);  // Not implemented.
00176   void operator=(const vtkImageCanvasSource2D&);  // Not implemented.
00177 };
00178 
00179 
00180 
00181 #endif
00182 
00183