VMTK
vtkvmtkPolyDataBifurcationSections.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkPolyDataBifurcationSections.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 =========================================================================*/
39 #ifndef __vtkvmtkPolyDataBifurcationSections_h
40 #define __vtkvmtkPolyDataBifurcationSections_h
41 
42 #include "vtkPolyDataAlgorithm.h"
43 //#include "vtkvmtkComputationalGeometryWin32Header.h"
44 #include "vtkvmtkWin32Header.h"
45 #include "vtkPolyData.h"
46 
47 class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkPolyDataBifurcationSections : public vtkPolyDataAlgorithm
48 {
49  public:
50  vtkTypeMacro(vtkvmtkPolyDataBifurcationSections,vtkPolyDataAlgorithm);
51  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
52 
54 
55  vtkSetStringMacro(GroupIdsArrayName);
56  vtkGetStringMacro(GroupIdsArrayName);
57 
58  vtkSetObjectMacro(Centerlines,vtkPolyData);
59  vtkGetObjectMacro(Centerlines,vtkPolyData);
60 
61  vtkSetStringMacro(CenterlineRadiusArrayName);
62  vtkGetStringMacro(CenterlineRadiusArrayName);
63 
64  vtkSetStringMacro(CenterlineGroupIdsArrayName);
65  vtkGetStringMacro(CenterlineGroupIdsArrayName);
66 
67  vtkSetStringMacro(CenterlineIdsArrayName);
68  vtkGetStringMacro(CenterlineIdsArrayName);
69 
70  vtkSetStringMacro(CenterlineTractIdsArrayName);
71  vtkGetStringMacro(CenterlineTractIdsArrayName);
72 
73  vtkSetStringMacro(BlankingArrayName);
74  vtkGetStringMacro(BlankingArrayName);
75 
76  vtkSetStringMacro(BifurcationSectionPointArrayName);
77  vtkGetStringMacro(BifurcationSectionPointArrayName);
78 
79  vtkSetStringMacro(BifurcationSectionNormalArrayName);
80  vtkGetStringMacro(BifurcationSectionNormalArrayName);
81 
82  vtkSetStringMacro(BifurcationSectionAreaArrayName);
83  vtkGetStringMacro(BifurcationSectionAreaArrayName);
84 
85  vtkSetStringMacro(BifurcationSectionMinSizeArrayName);
86  vtkGetStringMacro(BifurcationSectionMinSizeArrayName);
87 
88  vtkSetStringMacro(BifurcationSectionMaxSizeArrayName);
89  vtkGetStringMacro(BifurcationSectionMaxSizeArrayName);
90 
91  vtkSetStringMacro(BifurcationSectionShapeArrayName);
92  vtkGetStringMacro(BifurcationSectionShapeArrayName);
93 
94  vtkSetStringMacro(BifurcationSectionGroupIdsArrayName);
95  vtkGetStringMacro(BifurcationSectionGroupIdsArrayName);
96 
97  vtkSetStringMacro(BifurcationSectionBifurcationGroupIdsArrayName);
98  vtkGetStringMacro(BifurcationSectionBifurcationGroupIdsArrayName);
99 
100  vtkSetStringMacro(BifurcationSectionOrientationArrayName);
101  vtkGetStringMacro(BifurcationSectionOrientationArrayName);
102 
103  vtkSetStringMacro(BifurcationSectionDistanceSpheresArrayName);
104  vtkGetStringMacro(BifurcationSectionDistanceSpheresArrayName);
105 
106  vtkSetStringMacro(BifurcationSectionClosedArrayName);
107  vtkGetStringMacro(BifurcationSectionClosedArrayName);
108 
109  vtkSetMacro(NumberOfDistanceSpheres,int);
110  vtkGetMacro(NumberOfDistanceSpheres,int);
111 
112  protected:
115 
116  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
117 
118  void ComputeBifurcationSections(vtkPolyData* input, int bifurcationGroupId, vtkIdList* upStreamGroupIds, vtkIdList* downStreamGroupIds, vtkPolyData* output);
119 
120  vtkPolyData* Centerlines;
121 
128 
140 
142 
143  private:
145  void operator=(const vtkvmtkPolyDataBifurcationSections&); // Not implemented.
146 };
147 
148 #endif
Extract a set of vessel (cross) sections n-spheres away (upstream and downstream) from a bifurctation...