VMTK
vtkvmtkPolyDataCenterlineGroupsClipper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkPolyDataCenterlineGroupsClipper.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 __vtkvmtkPolyDataCenterlineGroupsClipper_h
29 #define __vtkvmtkPolyDataCenterlineGroupsClipper_h
30 
31 #include "vtkPolyDataAlgorithm.h"
32 #include "vtkPolyData.h"
33 #include "vtkIdList.h"
34 //#include "vtkvmtkComputationalGeometryWin32Header.h"
35 #include "vtkvmtkWin32Header.h"
36 
37 class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkPolyDataCenterlineGroupsClipper : public vtkPolyDataAlgorithm
38 {
39  public:
40  vtkTypeMacro(vtkvmtkPolyDataCenterlineGroupsClipper,vtkPolyDataAlgorithm);
41  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
42 
44 
45  vtkSetObjectMacro(Centerlines,vtkPolyData);
46  vtkGetObjectMacro(Centerlines,vtkPolyData);
47 
48  vtkSetObjectMacro(CenterlineGroupIds,vtkIdList);
49  vtkGetObjectMacro(CenterlineGroupIds,vtkIdList);
50 
51  vtkSetStringMacro(CenterlineGroupIdsArrayName);
52  vtkGetStringMacro(CenterlineGroupIdsArrayName);
53 
54  vtkSetStringMacro(CenterlineRadiusArrayName);
55  vtkGetStringMacro(CenterlineRadiusArrayName);
56 
57  vtkSetStringMacro(GroupIdsArrayName);
58  vtkGetStringMacro(GroupIdsArrayName);
59 
60  vtkSetStringMacro(BlankingArrayName);
61  vtkGetStringMacro(BlankingArrayName);
62 
63  vtkSetMacro(ClipAllCenterlineGroupIds,int);
64  vtkGetMacro(ClipAllCenterlineGroupIds,int);
65  vtkBooleanMacro(ClipAllCenterlineGroupIds,int);
66 
67  vtkSetMacro(GenerateClippedOutput,int);
68  vtkGetMacro(GenerateClippedOutput,int);
69  vtkBooleanMacro(GenerateClippedOutput,int);
70 
71  vtkPolyData* GetClippedOutput();
72 
73  vtkSetMacro(CutoffRadiusFactor,double);
74  vtkGetMacro(CutoffRadiusFactor,double);
75 
76  vtkSetMacro(ClipValue,double);
77  vtkGetMacro(ClipValue,double);
78 
79  vtkSetMacro(UseRadiusInformation,int);
80  vtkGetMacro(UseRadiusInformation,int);
81  vtkBooleanMacro(UseRadiusInformation,int);
82 
83  protected:
86 
87  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
88 
89  vtkPolyData* Centerlines;
90 
91  vtkIdList* CenterlineGroupIds;
92 
95 
98 
101  double ClipValue;
102 
104 
106 
107  private:
109  void operator=(const vtkvmtkPolyDataCenterlineGroupsClipper&); // Not implemented.
110 };
111 
112 #endif
Split a surface into groups/branches corresponding to their proximity to the polyball line of a branc...