VMTK
vtkvmtkPolyDataCenterlineMetricFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: VMTK
4  Module: $RCSfile: vtkvmtkPolyDataCenterlineMetricFilter.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 __vtkvmtkPolyDataCenterlineMetricFilter_h
29 #define __vtkvmtkPolyDataCenterlineMetricFilter_h
30 
31 #include "vtkPolyDataAlgorithm.h"
32 //#include "vtkvmtkComputationalGeometryWin32Header.h"
33 #include "vtkvmtkWin32Header.h"
34 
35 #include "vtkPolyData.h"
36 
37 class vtkDataArray;
38 
39 class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkPolyDataCenterlineMetricFilter : public vtkPolyDataAlgorithm
40 {
41 public:
42  vtkTypeMacro(vtkvmtkPolyDataCenterlineMetricFilter,vtkPolyDataAlgorithm);
43 
44  vtkSetStringMacro(MetricArrayName);
45  vtkGetStringMacro(MetricArrayName);
46 
47  vtkSetStringMacro(GroupIdsArrayName);
48  vtkGetStringMacro(GroupIdsArrayName);
49 
50  vtkSetObjectMacro(Centerlines,vtkPolyData);
51  vtkGetObjectMacro(Centerlines,vtkPolyData);
52 
53  vtkSetMacro(UseRadiusInformation,int);
54  vtkGetMacro(UseRadiusInformation,int);
55  vtkBooleanMacro(UseRadiusInformation,int);
56 
57  vtkSetStringMacro(RadiusArrayName);
58  vtkGetStringMacro(RadiusArrayName);
59 
60  vtkSetStringMacro(CenterlineGroupIdsArrayName);
61  vtkGetStringMacro(CenterlineGroupIdsArrayName);
62 
63  vtkSetStringMacro(CenterlineIdsArrayName);
64  vtkGetStringMacro(CenterlineIdsArrayName);
65 
66  vtkSetStringMacro(CenterlineTractIdsArrayName);
67  vtkGetStringMacro(CenterlineTractIdsArrayName);
68 
69  vtkSetStringMacro(BlankingArrayName);
70  vtkGetStringMacro(BlankingArrayName);
71 
72  vtkSetMacro(IncludeBifurcations,int);
73  vtkGetMacro(IncludeBifurcations,int);
74  vtkBooleanMacro(IncludeBifurcations,int);
75 
76 protected:
79 
80  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
81 
82  virtual void EvaluateMetric(vtkIdType pointId, double point[3], vtkIdType groupId, vtkDataArray* metricArray) = 0;
83 
86 
88 
89  vtkPolyData* Centerlines;
90 
95 
98 
99 private:
101  void operator=(const vtkvmtkPolyDataCenterlineMetricFilter&); // Not implemented.
102 };
103 
104 #endif
105 
Base class for evaluating metrics over a centerline onto a surface.