VMTK
vtkvmtkPolyDataStencilFlowFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: VMTK
4  Module: $RCSfile: vtkvmtkPolyDataStencilFlowFilter.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 __vtkvmtkPolyDataStencilFlowFilter_h
29 #define __vtkvmtkPolyDataStencilFlowFilter_h
30 
31 #include "vtkPolyDataAlgorithm.h"
32 #include "vtkvmtkConstants.h"
33 //#include "vtkvmtkDifferentialGeometryWin32Header.h"
34 #include "vtkvmtkWin32Header.h"
35 
36 class vtkvmtkStencils;
37 
38 class VTK_VMTK_DIFFERENTIAL_GEOMETRY_EXPORT vtkvmtkPolyDataStencilFlowFilter : public vtkPolyDataAlgorithm
39 {
40 public:
42  vtkTypeMacro(vtkvmtkPolyDataStencilFlowFilter,vtkPolyDataAlgorithm);
43 
44  vtkSetMacro(StencilType,int);
45  vtkGetMacro(StencilType,int);
47  {this->SetStencilType(VTK_VMTK_UMBRELLA_STENCIL);};
49  {this->SetStencilType(VTK_VMTK_AREA_WEIGHTED_UMBRELLA_STENCIL);};
51  {this->SetStencilType(VTK_VMTK_FE_LAPLACE_BELTRAMI_STENCIL);};
53  {this->SetStencilType(VTK_VMTK_FVFE_LAPLACE_BELTRAMI_STENCIL);};
54 
55  vtkSetMacro(NumberOfIterations,int);
56  vtkGetMacro(NumberOfIterations,int);
57 
58  vtkSetMacro(RelaxationFactor,double);
59  vtkGetMacro(RelaxationFactor,double);
60 
61  vtkSetMacro(ProcessBoundary,int);
62  vtkGetMacro(ProcessBoundary,int);
63  vtkBooleanMacro(ProcessBoundary,int);
64 
65  vtkSetMacro(ConstrainOnSurface,int);
66  vtkGetMacro(ConstrainOnSurface,int);
67  vtkBooleanMacro(ConstrainOnSurface,int);
68 
69  vtkSetMacro(MaximumDisplacement,double);
70  vtkGetMacro(MaximumDisplacement,double);
71 
72 protected:
75 
76  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
77 
78  void ReleaseStencils();
79 
82 
85 
87 
90 
91 private:
93  void operator=(const vtkvmtkPolyDataStencilFlowFilter&); // Not implemented.
94 };
95 
96 #endif
97 
Create an empty, umbrella, area weighted umbrella, finite-element LP, or finite-volume finite-element...
Displace points of a surface with an iterative algorithm based on stencil weighting.