Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vtkCurvatures.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkCurvatures.h,v $
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 =========================================================================*/
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   vtkTypeRevisionMacro(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);
00107 protected:
00108   vtkCurvatures();
00109 
00110   // Usual data generation method
00111   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00112 
00115   void GetGaussCurvature(vtkPolyData *output);
00116 
00117   // discrete Mean curvature (H) computation,
00118   // cf http://www-ipg.umds.ac.uk/p.batchelor/curvatures/curvatures.html
00119   void GetMeanCurvature(vtkPolyData *output);
00120   
00122   void GetMaximumCurvature(vtkPolyData *input, vtkPolyData *output);
00123   
00125   void GetMinimumCurvature(vtkPolyData *input, vtkPolyData *output);
00126   
00127 
00128   // Vars
00129   int CurvatureType;
00130   int InvertMeanCurvature;
00131 
00132 private:
00133   vtkCurvatures(const vtkCurvatures&);  // Not implemented.
00134   void operator=(const vtkCurvatures&);  // Not implemented.
00135 
00136 };
00137 
00138 #endif
00139 
00140 

Generated on Mon Jan 21 23:07:24 2008 for VTK by  doxygen 1.4.3-20050530