VMTK
vtkvmtkPolyDataMeanCurvature.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: VMTK
4  Module: $RCSfile: vtkvmtkPolyDataMeanCurvature.h,v $
5  Language: C++
6 
7  Copyright (c) Luca Antiga, David Steinman. All rights reserved.
8  See LICENSE file for details.
9 
10  Portions of this code are covered under the VTK copyright.
11  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm
12  for details.
13 
14  This software is distributed WITHOUT ANY WARRANTY; without even
15  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16  PURPOSE. See the above copyright notices for more information.
17 
18 =========================================================================*/
28 #ifndef __vtkvmtkPolyDataMeanCurvature_h
29 #define __vtkvmtkPolyDataMeanCurvature_h
30 
31 #include "vtkObject.h"
32 #include "vtkPolyDataAlgorithm.h"
33 #include "vtkvmtkStencils.h"
34 //#include "vtkvmtkDifferentialGeometryWin32Header.h"
35 #include "vtkvmtkWin32Header.h"
36 
37 class VTK_VMTK_DIFFERENTIAL_GEOMETRY_EXPORT vtkvmtkPolyDataMeanCurvature : public vtkPolyDataAlgorithm
38 {
39 public:
40 
41  static vtkvmtkPolyDataMeanCurvature *New();
42  vtkTypeMacro(vtkvmtkPolyDataMeanCurvature,vtkPolyDataAlgorithm);
43  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
44 
45  vtkSetMacro(StencilType,int);
46  vtkGetMacro(StencilType,int);
48  {this->SetStencilType(VTK_VMTK_UMBRELLA_STENCIL);};
50  {this->SetStencilType(VTK_VMTK_AREA_WEIGHTED_UMBRELLA_STENCIL);};
52  {this->SetStencilType(VTK_VMTK_FE_LAPLACE_BELTRAMI_STENCIL);};
54  {this->SetStencilType(VTK_VMTK_FVFE_LAPLACE_BELTRAMI_STENCIL);};
55 
56  vtkSetStringMacro(MeanCurvatureScalarsArrayName);
57  vtkGetStringMacro(MeanCurvatureScalarsArrayName);
58  vtkSetStringMacro(MeanCurvatureNormalsArrayName);
59  vtkGetStringMacro(MeanCurvatureNormalsArrayName);
60 
61  vtkSetMacro(ComputeMeanCurvatureScalars,int);
62  vtkGetMacro(ComputeMeanCurvatureScalars,int);
63  vtkBooleanMacro(ComputeMeanCurvatureScalars,int);
64 
65  vtkSetMacro(ComputeMeanCurvatureNormals,int);
66  vtkGetMacro(ComputeMeanCurvatureNormals,int);
67  vtkBooleanMacro(ComputeMeanCurvatureNormals,int);
68 
69 protected:
72 
73  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
74 
75  void ComputePointMeanCurvatureVector(vtkPolyData* input, vtkIdType pointId, double* meanCurvatureVector);
76  void ReleaseStencils();
77 
82 
85 
86 private:
88  void operator=(const vtkvmtkPolyDataMeanCurvature&); // Not implemented.
89 };
90 
91 #endif
92 
Compute the mean curvature and mean curvature normals of surface point neighborhoods with a particula...
Create an empty, umbrella, area weighted umbrella, finite-element LP, or finite-volume finite-element...