28 #ifndef __vtkvmtkCenterlineSplittingAndGroupingFilter_h 29 #define __vtkvmtkCenterlineSplittingAndGroupingFilter_h 31 #include "vtkPolyDataAlgorithm.h" 33 #include "vtkvmtkWin32Header.h" 39 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
41 vtkSetStringMacro(RadiusArrayName);
42 vtkGetStringMacro(RadiusArrayName);
44 vtkSetStringMacro(GroupIdsArrayName);
45 vtkGetStringMacro(GroupIdsArrayName);
47 vtkSetStringMacro(CenterlineIdsArrayName);
48 vtkGetStringMacro(CenterlineIdsArrayName);
50 vtkSetStringMacro(BlankingArrayName);
51 vtkGetStringMacro(BlankingArrayName);
53 vtkSetStringMacro(TractIdsArrayName);
54 vtkGetStringMacro(TractIdsArrayName);
56 vtkSetMacro(GroupingMode,
int);
57 vtkGetMacro(GroupingMode,
int);
59 { this->SetGroupingMode(FIRSTPOINT); }
61 { this->SetGroupingMode(LASTPOINT); }
63 { this->SetGroupingMode(POINTINTUBE); }
77 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
79 virtual void ComputeCenterlineSplitting(vtkPolyData* input, vtkIdType cellId) = 0;
81 virtual void GroupTracts(vtkPolyData* input, vtkPolyData* centerlineTracts);
83 void CoincidentExtremePointGroupTracts(vtkPolyData* input, vtkPolyData* centerlineTracts,
bool first =
true);
84 void PointInTubeGroupTracts(vtkPolyData* input, vtkPolyData* centerlineTracts);
86 virtual void MergeTracts(vtkPolyData* centerlineTracts);
88 void SplitCenterline(vtkPolyData* input, vtkIdType cellId,
int numberOfSplittingPoints,
const vtkIdType* subIds,
const double* pcoords,
const int* tractBlanking, vtkPolyData* splitCenterline);
90 void MakeGroupIdsAdjacent(vtkPolyData* centerlineTracts);
91 void MakeTractIdsAdjacent(vtkPolyData* centerlineTracts);
void SetGroupingModeToFirstPoint()
int NumberOfSplittingPoints
char * CenterlineIdsArrayName
void SetGroupingModeToLastPoint()
Multipurpose filter used to bundle and blank split tracts in all "branch extractor" like methods...
void SetGroupingModeToPointInTube()