00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00065 #ifndef __vtkCurvatures_h
00066 #define __vtkCurvatures_h
00067
00068 #include "vtkPolyDataAlgorithm.h"
00069
00070 #define VTK_CURVATURE_GAUSS 0
00071 #define VTK_CURVATURE_MEAN 1
00072 #define VTK_CURVATURE_MAXIMUM 2
00073 #define VTK_CURVATURE_MINIMUM 3
00074
00075 class VTK_GRAPHICS_EXPORT vtkCurvatures : public vtkPolyDataAlgorithm
00076 {
00077 public:
00078 vtkTypeMacro(vtkCurvatures,vtkPolyDataAlgorithm);
00079 void PrintSelf(ostream& os, vtkIndent indent);
00080
00082 static vtkCurvatures *New();
00083
00085
00088 vtkSetMacro(CurvatureType,int);
00089 vtkGetMacro(CurvatureType,int);
00090 void SetCurvatureTypeToGaussian()
00091 { this->SetCurvatureType(VTK_CURVATURE_GAUSS); }
00092 void SetCurvatureTypeToMean()
00093 { this->SetCurvatureType(VTK_CURVATURE_MEAN); }
00094 void SetCurvatureTypeToMaximum()
00095 { this->SetCurvatureType(VTK_CURVATURE_MAXIMUM); }
00096 void SetCurvatureTypeToMinimum()
00097 { this->SetCurvatureType(VTK_CURVATURE_MINIMUM); }
00099
00101
00103 vtkSetMacro(InvertMeanCurvature,int);
00104 vtkGetMacro(InvertMeanCurvature,int);
00105 vtkBooleanMacro(InvertMeanCurvature,int);
00106 protected:
00107 vtkCurvatures();
00109
00110
00111 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00112
00115 void GetGaussCurvature(vtkPolyData *output);
00116
00117
00118
00119 void GetMeanCurvature(vtkPolyData *output);
00120
00122 void GetMaximumCurvature(vtkPolyData *input, vtkPolyData *output);
00123
00125 void GetMinimumCurvature(vtkPolyData *input, vtkPolyData *output);
00126
00127
00128
00129 int CurvatureType;
00130 int InvertMeanCurvature;
00131
00132 private:
00133 vtkCurvatures(const vtkCurvatures&);
00134 void operator=(const vtkCurvatures&);
00135
00136 };
00137
00138 #endif
00139
00140