VMTK
vtkvmtkCenterlineSplitExtractor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkCenterlineSplitExtractor.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 __vtkvmtkCenterlineSplitExtractor_h
29 #define __vtkvmtkCenterlineSplitExtractor_h
30 
32 #include "vtkvmtkWin32Header.h"
33 
34 class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkCenterlineSplitExtractor : public vtkvmtkCenterlineSplittingAndGroupingFilter
35 {
36  public:
38  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
39 
40  static vtkvmtkCenterlineSplitExtractor *New();
41 
42  vtkSetVectorMacro(SplitPoint,double,3);
43  vtkGetVectorMacro(SplitPoint,double,3);
44 
45  vtkSetMacro(Tolerance,double);
46  vtkGetMacro(Tolerance,double);
47 
48  vtkSetMacro(GapLength,double);
49  vtkGetMacro(GapLength,double);
50 
51  vtkSetVectorMacro(SplitPoint2,double,3);
52  vtkGetVectorMacro(SplitPoint2,double,3);
53 
54  vtkSetMacro(SplittingMode,int);
55  vtkGetMacro(SplittingMode,int);
57  { this->SetSplittingMode(POINTANDGAP); }
59  { this->SetGroupingMode(BETWEENPOINTS); }
60 
61 //BTX
62  enum {
64  BETWEENPOINTS
65  };
66 //ETX
67 
68  protected:
71 
72  virtual void ComputeCenterlineSplitting(vtkPolyData* input, vtkIdType cellId) VTK_OVERRIDE;
73  virtual void ComputePointAndGapCenterlineSplitting(vtkPolyData* input, vtkIdType cellId);
74  virtual void ComputeBetweenPointsCenterlineSplitting(vtkPolyData* input, vtkIdType cellId);
75 
76  double SplitPoint[3];
77  double SplitPoint2[3];
78  double Tolerance;
79  double GapLength;
80 
82 
83  private:
85  void operator=(const vtkvmtkCenterlineSplitExtractor&); // Not implemented.
86 };
87 
88 #endif
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
Split a centerline into three tracts with the middle (blanked) tract being initialized between any tw...
virtual void ComputeCenterlineSplitting(vtkPolyData *input, vtkIdType cellId)=0
Multipurpose filter used to bundle and blank split tracts in all "branch extractor" like methods...