00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00031 #ifndef __vtkRotationFilter_h
00032 #define __vtkRotationFilter_h
00033
00034 #include "vtkUnstructuredGridAlgorithm.h"
00035
00036 class VTK_GRAPHICS_EXPORT vtkRotationFilter : public vtkUnstructuredGridAlgorithm
00037 {
00038 public:
00039 static vtkRotationFilter *New();
00040 vtkTypeMacro(vtkRotationFilter, vtkUnstructuredGridAlgorithm);
00041 void PrintSelf(ostream &os, vtkIndent indent);
00042
00043
00044 enum RotationAxis
00045 {
00046 USE_X = 0,
00047 USE_Y = 1,
00048 USE_Z = 2
00049 };
00050
00051
00053
00054 vtkSetClampMacro(Axis, int, 0, 2);
00055 vtkGetMacro(Axis, int);
00056 void SetAxisToX() { this->SetAxis(USE_X); };
00057 void SetAxisToY() { this->SetAxis(USE_Y); };
00058 void SetAxisToZ() { this->SetAxis(USE_Z); };
00060
00062
00063 vtkSetMacro(Angle, double);
00064 vtkGetMacro(Angle, double);
00066
00068
00069 vtkSetVector3Macro(Center,double);
00070 vtkGetVector3Macro(Center,double);
00072
00074
00077 vtkSetMacro(NumberOfCopies, int);
00078 vtkGetMacro(NumberOfCopies, int);
00080
00082
00084 vtkSetMacro(CopyInput, int);
00085 vtkGetMacro(CopyInput, int);
00086 vtkBooleanMacro(CopyInput, int);
00088
00089
00090 protected:
00091 vtkRotationFilter();
00092 ~vtkRotationFilter();
00093
00094 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00095 virtual int FillInputPortInformation(int port, vtkInformation *info);
00096
00097 int Axis;
00098 double Angle;
00099 double Center[3];
00100 int NumberOfCopies;
00101 int CopyInput;
00102
00103 private:
00104 vtkRotationFilter(const vtkRotationFilter&);
00105 void operator=(const vtkRotationFilter&);
00106 };
00107
00108 #endif
00109
00110