VMTK
vtkvmtkPolyDataLocalGeometry.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkPolyDataLocalGeometry.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 =========================================================================*/
41 #ifndef __vtkvmtkPolyDataLocalGeometry_h
42 #define __vtkvmtkPolyDataLocalGeometry_h
43 
44 #include "vtkPolyDataAlgorithm.h"
45 #include "vtkPolyData.h"
46 #include "vtkIdList.h"
47 //#include "vtkvmtkComputationalGeometryWin32Header.h"
48 #include "vtkvmtkWin32Header.h"
49 
50 class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkPolyDataLocalGeometry : public vtkPolyDataAlgorithm
51 {
52  public:
53  vtkTypeMacro(vtkvmtkPolyDataLocalGeometry,vtkPolyDataAlgorithm);
54  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
55 
56  static vtkvmtkPolyDataLocalGeometry *New();
57 
59 
60  vtkSetMacro(ComputePoleVectors,int);
61  vtkGetMacro(ComputePoleVectors,int);
62  vtkBooleanMacro(ComputePoleVectors,int);
64 
66 
67  vtkSetMacro(ComputeGeodesicDistance,int);
68  vtkGetMacro(ComputeGeodesicDistance,int);
69  vtkBooleanMacro(ComputeGeodesicDistance,int);
71 
73 
75  vtkSetStringMacro(GeodesicDistanceArrayName);
76  vtkGetStringMacro(GeodesicDistanceArrayName);
78 
80 
81  vtkSetMacro(ComputeNormalizedTangencyDeviation,int);
82  vtkGetMacro(ComputeNormalizedTangencyDeviation,int);
83  vtkBooleanMacro(ComputeNormalizedTangencyDeviation,int);
85 
87 
89  vtkSetStringMacro(NormalizedTangencyDeviationArrayName);
90  vtkGetStringMacro(NormalizedTangencyDeviationArrayName);
92 
94 
95  vtkSetMacro(ComputeEuclideanDistance,int);
96  vtkGetMacro(ComputeEuclideanDistance,int);
97  vtkBooleanMacro(ComputeEuclideanDistance,int);
99 
101 
102  vtkSetStringMacro(EuclideanDistanceArrayName);
103  vtkGetStringMacro(EuclideanDistanceArrayName);
105 
107 
108  vtkSetMacro(ComputeCenterlineVectors,int);
109  vtkGetMacro(ComputeCenterlineVectors,int);
110  vtkBooleanMacro(ComputeCenterlineVectors,int);
112 
114 
115  vtkSetStringMacro(CenterlineVectorsArrayName);
116  vtkGetStringMacro(CenterlineVectorsArrayName);
118 
120 
121  vtkSetMacro(ComputeCellIds,int);
122  vtkGetMacro(ComputeCellIds,int);
123  vtkBooleanMacro(ComputeCellIds,int);
125 
127 
128  vtkSetStringMacro(CellIdsArrayName);
129  vtkGetStringMacro(CellIdsArrayName);
131 
133 
134  vtkSetMacro(ComputePCoords,int);
135  vtkGetMacro(ComputePCoords,int);
136  vtkBooleanMacro(ComputePCoords,int);
138 
139  vtkSetMacro(AdjustBoundaryValues,int);
140  vtkGetMacro(AdjustBoundaryValues,int);
141  vtkBooleanMacro(AdjustBoundaryValues,int);
142 
144 
145  vtkSetStringMacro(PCoordsArrayName);
146  vtkGetStringMacro(PCoordsArrayName);
148 
150 
151  vtkSetObjectMacro(VoronoiDiagram,vtkPolyData);
152  vtkGetObjectMacro(VoronoiDiagram,vtkPolyData);
154 
156 
158  vtkSetStringMacro(VoronoiGeodesicDistanceArrayName);
159  vtkGetStringMacro(VoronoiGeodesicDistanceArrayName);
161 
163 
164  vtkSetStringMacro(VoronoiPoleCenterlineVectorsArrayName);
165  vtkGetStringMacro(VoronoiPoleCenterlineVectorsArrayName);
167 
169 
170  vtkSetStringMacro(VoronoiCellIdsArrayName);
171  vtkGetStringMacro(VoronoiCellIdsArrayName);
173 
175 
176  vtkSetStringMacro(VoronoiPCoordsArrayName);
177  vtkGetStringMacro(VoronoiPCoordsArrayName);
179 
181 
183  vtkSetObjectMacro(PoleIds,vtkIdList);
184  vtkGetObjectMacro(PoleIds,vtkIdList);
186 
188 
189  vtkSetStringMacro(PoleVectorsArrayName);
190  vtkGetStringMacro(PoleVectorsArrayName);
192 
193  protected:
196 
197  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
198 
199  void AdjustBoundaryQuantities(vtkPolyData* output);
200 
208 
210 
218 
223  vtkPolyData* VoronoiDiagram;
224  vtkIdList* PoleIds;
225 
226  private:
228  void operator=(const vtkvmtkPolyDataLocalGeometry&); // Not implemented.
229 };
230 
231 #endif
Compute shape-related quantities over a surface.