00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00027 #ifndef __vtkReflectionFilter_h
00028 #define __vtkReflectionFilter_h
00029
00030 #include "vtkUnstructuredGridAlgorithm.h"
00031
00032 class VTK_GRAPHICS_EXPORT vtkReflectionFilter : public vtkUnstructuredGridAlgorithm
00033 {
00034 public:
00035 static vtkReflectionFilter *New();
00036
00037 vtkTypeRevisionMacro(vtkReflectionFilter, vtkUnstructuredGridAlgorithm);
00038 void PrintSelf(ostream &os, vtkIndent indent);
00039
00040
00041 enum ReflectionPlane
00042 {
00043 USE_X_MIN = 0,
00044 USE_Y_MIN = 1,
00045 USE_Z_MIN = 2,
00046 USE_X_MAX = 3,
00047 USE_Y_MAX = 4,
00048 USE_Z_MAX = 5,
00049 USE_X = 6,
00050 USE_Y = 7,
00051 USE_Z = 8
00052 };
00053
00054
00056
00057 vtkSetClampMacro(Plane, int, 0, 8);
00058 vtkGetMacro(Plane, int);
00059 void SetPlaneToX() { this->SetPlane(USE_X); };
00060 void SetPlaneToY() { this->SetPlane(USE_Y); };
00061 void SetPlaneToZ() { this->SetPlane(USE_Z); };
00062 void SetPlaneToXMin() { this->SetPlane(USE_X_MIN); };
00063 void SetPlaneToYMin() { this->SetPlane(USE_Y_MIN); };
00064 void SetPlaneToZMin() { this->SetPlane(USE_Z_MIN); };
00065 void SetPlaneToXMax() { this->SetPlane(USE_X_MAX); };
00066 void SetPlaneToYMax() { this->SetPlane(USE_Y_MAX); };
00067 void SetPlaneToZMax() { this->SetPlane(USE_Z_MAX); };
00069
00071
00073 vtkSetMacro(Center, double);
00074 vtkGetMacro(Center, double);
00076
00078
00080 vtkSetMacro(CopyInput, int);
00081 vtkGetMacro(CopyInput, int);
00082 vtkBooleanMacro(CopyInput, int);
00084
00085 protected:
00086 vtkReflectionFilter();
00087 ~vtkReflectionFilter();
00088
00089 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00090 virtual int FillInputPortInformation(int port, vtkInformation *info);
00091
00092 int Plane;
00093 double Center;
00094 int CopyInput;
00095
00096 void FlipVector(double tuple[3], int mirrorDir[3]);
00097
00098 private:
00099 vtkReflectionFilter(const vtkReflectionFilter&);
00100 void operator=(const vtkReflectionFilter&);
00101 };
00102
00103 #endif
00104
00105