00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00026 #ifndef __vtkOutlineSource_h
00027 #define __vtkOutlineSource_h
00028 
00029 #include "vtkPolyDataAlgorithm.h"
00030 
00031 #define VTK_BOX_TYPE_AXIS_ALIGNED 0
00032 #define VTK_BOX_TYPE_ORIENTED     1
00033 
00034 class VTK_GRAPHICS_EXPORT vtkOutlineSource : public vtkPolyDataAlgorithm 
00035 {
00036 public:
00037   static vtkOutlineSource *New();
00038   vtkTypeMacro(vtkOutlineSource,vtkPolyDataAlgorithm);
00039   void PrintSelf(ostream& os, vtkIndent indent);
00040 
00042 
00045   vtkSetMacro(BoxType,int);
00046   vtkGetMacro(BoxType,int);
00047   void SetBoxTypeToAxisAligned() 
00048     {this->SetBoxType(VTK_BOX_TYPE_AXIS_ALIGNED);}
00049   void SetBoxTypeToOriented() 
00050     {this->SetBoxType(VTK_BOX_TYPE_ORIENTED);}
00052 
00054 
00055   vtkSetVector6Macro(Bounds,double);
00056   vtkGetVectorMacro(Bounds,double,6);
00058 
00060 
00064   vtkSetVectorMacro(Corners,double,24);
00065   vtkGetVectorMacro(Corners,double,24);
00067 
00069 
00070   vtkSetMacro(GenerateFaces, int);
00071   vtkBooleanMacro(GenerateFaces, int);
00072   vtkGetMacro(GenerateFaces, int);
00074 
00075 protected:
00076   vtkOutlineSource();
00077   ~vtkOutlineSource() {}
00078 
00079   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00080   int   BoxType;
00081   int   GenerateFaces;
00082   double Bounds[6];
00083   double Corners[24];
00084 
00085 private:
00086   vtkOutlineSource(const vtkOutlineSource&);  
00087   void operator=(const vtkOutlineSource&);  
00088 };
00089 
00090 #endif