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 "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 //BTX 00044 enum RotationAxis 00045 { 00046 USE_X = 0, 00047 USE_Y = 1, 00048 USE_Z = 2 00049 }; 00050 //ETX 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&); // Not implemented 00105 void operator=(const vtkRotationFilter&); // Not implemented 00106 }; 00107 00108 #endif 00109 00110