00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00027 #ifndef __vtkCutMaterial_h
00028 #define __vtkCutMaterial_h
00029
00030 #include "vtkPolyDataAlgorithm.h"
00031
00032 class vtkPlane;
00033
00034 class VTK_PARALLEL_EXPORT vtkCutMaterial : public vtkPolyDataAlgorithm
00035 {
00036 public:
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038 vtkTypeMacro(vtkCutMaterial,vtkPolyDataAlgorithm);
00039 static vtkCutMaterial *New();
00040
00042
00043 vtkSetStringMacro(MaterialArrayName);
00044 vtkGetStringMacro(MaterialArrayName);
00046
00048
00049 vtkSetMacro(Material, int);
00050 vtkGetMacro(Material, int);
00052
00054
00055 vtkSetStringMacro(ArrayName);
00056 vtkGetStringMacro(ArrayName);
00058
00060
00061 vtkSetVector3Macro(UpVector, double);
00062 vtkGetVector3Macro(UpVector, double);
00064
00066
00068 vtkGetVector3Macro(MaximumPoint, double);
00069 vtkGetVector3Macro(CenterPoint, double);
00070 vtkGetVector3Macro(Normal, double);
00072
00073 protected:
00074 vtkCutMaterial();
00075 ~vtkCutMaterial();
00076
00077 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00078 virtual int FillInputPortInformation(int port, vtkInformation *info);
00079 void ComputeMaximumPoint(vtkDataSet *input);
00080 void ComputeNormal();
00081
00082 char *MaterialArrayName;
00083 int Material;
00084 char *ArrayName;
00085 double UpVector[3];
00086 double MaximumPoint[3];
00087 double CenterPoint[3];
00088 double Normal[3];
00089
00090 vtkPlane *PlaneFunction;
00091
00092 private:
00093 vtkCutMaterial(const vtkCutMaterial&);
00094 void operator=(const vtkCutMaterial&);
00095 };
00096
00097 #endif