VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkRotationFilter.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 =========================================================================*/ 00031 #ifndef __vtkRotationFilter_h 00032 #define __vtkRotationFilter_h 00033 00034 #include "vtkFiltersGeneralModule.h" // For export macro 00035 #include "vtkUnstructuredGridAlgorithm.h" 00036 00037 class VTKFILTERSGENERAL_EXPORT vtkRotationFilter : public vtkUnstructuredGridAlgorithm 00038 { 00039 public: 00040 static vtkRotationFilter *New(); 00041 vtkTypeMacro(vtkRotationFilter, vtkUnstructuredGridAlgorithm); 00042 void PrintSelf(ostream &os, vtkIndent indent); 00043 00044 //BTX 00045 enum RotationAxis 00046 { 00047 USE_X = 0, 00048 USE_Y = 1, 00049 USE_Z = 2 00050 }; 00051 //ETX 00052 00054 00055 vtkSetClampMacro(Axis, int, 0, 2); 00056 vtkGetMacro(Axis, int); 00057 void SetAxisToX() { this->SetAxis(USE_X); }; 00058 void SetAxisToY() { this->SetAxis(USE_Y); }; 00059 void SetAxisToZ() { this->SetAxis(USE_Z); }; 00061 00063 00064 vtkSetMacro(Angle, double); 00065 vtkGetMacro(Angle, double); 00067 00069 00070 vtkSetVector3Macro(Center,double); 00071 vtkGetVector3Macro(Center,double); 00073 00075 00078 vtkSetMacro(NumberOfCopies, int); 00079 vtkGetMacro(NumberOfCopies, int); 00081 00083 00085 vtkSetMacro(CopyInput, int); 00086 vtkGetMacro(CopyInput, int); 00087 vtkBooleanMacro(CopyInput, int); 00089 00090 00091 protected: 00092 vtkRotationFilter(); 00093 ~vtkRotationFilter(); 00094 00095 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00096 virtual int FillInputPortInformation(int port, vtkInformation *info); 00097 00098 int Axis; 00099 double Angle; 00100 double Center[3]; 00101 int NumberOfCopies; 00102 int CopyInput; 00103 00104 private: 00105 vtkRotationFilter(const vtkRotationFilter&); // Not implemented 00106 void operator=(const vtkRotationFilter&); // Not implemented 00107 }; 00108 00109 #endif 00110 00111