VMTK
vtkvmtkConstrainedLaplacianPolyDataFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkConstrainedLaplacianPolyDataFilter.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  Portions of this code are covered under the ITK copyright.
15  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm
16  for details.
17 
18  This software is distributed WITHOUT ANY WARRANTY; without even
19  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
20  PURPOSE. See the above copyright notices for more information.
21 
22 =========================================================================*/
23 
33 #ifndef __vtkvmtkConstrainedLaplacianPolyDataFilter_h
34 #define __vtkvmtkConstrainedLaplacianPolyDataFilter_h
35 
36 #include "vtkPolyDataToPolyDataFilter.h"
37 #include "vtkvmtkWin32Header.h"
38 
39 class vtkIdList;
40 
41 class VTK_VMTK_SEGMENTATION_EXPORT vtkvmtkConstrainedLaplacianPolyDataFilter : public vtkPolyDataToPolyDataFilter
42 {
43  public:
44  vtkTypeMacro(vtkvmtkConstrainedLaplacianPolyDataFilter,vtkPolyDataToPolyDataFilter);
45  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
46 
48 
49  vtkSetMacro(Convergence, double);
50  vtkGetMacro(Convergence, double);
51 
52  vtkSetMacro(RelaxationFactor, double);
53  vtkGetMacro(RelaxationFactor, double);
54 
55  vtkSetMacro(NumberOfIterations, int);
56  vtkGetMacro(NumberOfIterations, int);
57 
58  vtkSetMacro(BoundarySmoothing, int);
59  vtkGetMacro(BoundarySmoothing, int);
60  vtkBooleanMacro(BoundarySmoothing, int);
61 
62  virtual void SetConstrainedPointIds(vtkIdList *);
63  vtkGetObjectMacro(ConstrainedPointIds, vtkIdList);
64 
65  protected:
68 
69  void Execute();
70 
71  vtkIdList *ConstrainedPointIds;
72 
73  double Convergence;
77 
78  private:
80  void operator=(const vtkvmtkConstrainedLaplacianPolyDataFilter&); // Not implemented.
81 };
82 
83 #endif
smooth a surface mesh by constraining the motion of selected point ids.