00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00026 #ifndef __vtkImageEllipsoidSource_h
00027 #define __vtkImageEllipsoidSource_h
00028 
00029 #include "vtkImageAlgorithm.h"
00030 
00031 class VTK_IMAGING_EXPORT vtkImageEllipsoidSource : public vtkImageAlgorithm
00032 {
00033 public:
00034   static vtkImageEllipsoidSource *New();
00035   vtkTypeMacro(vtkImageEllipsoidSource,vtkImageAlgorithm);
00036   void PrintSelf(ostream& os, vtkIndent indent);   
00037   
00039 
00040   void SetWholeExtent(int extent[6]);
00041   void SetWholeExtent(int minX, int maxX, int minY, int maxY, 
00042                             int minZ, int maxZ);
00043   void GetWholeExtent(int extent[6]);
00044   int *GetWholeExtent() {return this->WholeExtent;}
00046   
00048 
00049   vtkSetVector3Macro(Center, double);
00050   vtkGetVector3Macro(Center, double);
00052   
00054 
00055   vtkSetVector3Macro(Radius, double);
00056   vtkGetVector3Macro(Radius, double);
00058 
00060 
00061   vtkSetMacro(InValue,double);
00062   vtkGetMacro(InValue,double);
00064 
00066 
00067   vtkSetMacro(OutValue,double);
00068   vtkGetMacro(OutValue,double);
00070   
00072 
00073   vtkSetMacro(OutputScalarType,int);
00074   vtkGetMacro(OutputScalarType,int);
00075   void SetOutputScalarTypeToFloat()
00076     {this->SetOutputScalarType(VTK_FLOAT);}
00077   void SetOutputScalarTypeToDouble()
00078     {this->SetOutputScalarType(VTK_DOUBLE);}
00079   void SetOutputScalarTypeToLong()
00080     {this->SetOutputScalarType(VTK_LONG);}
00081   void SetOutputScalarTypeToUnsignedLong()
00082     {this->SetOutputScalarType(VTK_UNSIGNED_LONG);};
00083   void SetOutputScalarTypeToInt()
00084     {this->SetOutputScalarType(VTK_INT);}
00085   void SetOutputScalarTypeToUnsignedInt()
00086     {this->SetOutputScalarType(VTK_UNSIGNED_INT);}
00087   void SetOutputScalarTypeToShort()
00088     {this->SetOutputScalarType(VTK_SHORT);}
00089   void SetOutputScalarTypeToUnsignedShort()
00090     {this->SetOutputScalarType(VTK_UNSIGNED_SHORT);}
00091   void SetOutputScalarTypeToChar()
00092     {this->SetOutputScalarType(VTK_CHAR);}
00093   void SetOutputScalarTypeToUnsignedChar()
00094     {this->SetOutputScalarType(VTK_UNSIGNED_CHAR);}
00096   
00097 protected:
00098   vtkImageEllipsoidSource();
00099   ~vtkImageEllipsoidSource();
00100 
00101   int WholeExtent[6];
00102   double Center[3];
00103   double Radius[3];
00104   double InValue;
00105   double OutValue;
00106   int OutputScalarType;
00107   
00108   virtual int RequestInformation (vtkInformation *, 
00109                                   vtkInformationVector **, 
00110                                   vtkInformationVector *);
00111 
00112   virtual int RequestData(vtkInformation *, 
00113                           vtkInformationVector **, vtkInformationVector *);
00114 
00115 private:
00116   vtkImageEllipsoidSource(const vtkImageEllipsoidSource&);  
00117   void operator=(const vtkImageEllipsoidSource&);  
00118 };
00119 
00120 
00121 #endif
00122 
00123