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 "vtkDataSetToUnstructuredGridFilter.h"
00031
00032 class VTK_GRAPHICS_EXPORT vtkReflectionFilter :
public vtkDataSetToUnstructuredGridFilter
00033 {
00034
public:
00035
static vtkReflectionFilter *
New();
00036
00037 vtkTypeRevisionMacro(vtkReflectionFilter,
vtkDataSetToUnstructuredGridFilter);
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
00077
protected:
00078 vtkReflectionFilter();
00079 ~vtkReflectionFilter();
00080
00081
void Execute();
00082
00083 int Plane;
00084 double Center;
00085
00086
void FlipVector(
double tuple[3],
int mirrorDir[3]);
00087
00088
private:
00089 vtkReflectionFilter(
const vtkReflectionFilter&);
00090
void operator=(
const vtkReflectionFilter&);
00091 };
00092
00093
#endif
00094
00095