TTK
Loading...
Searching...
No Matches
ttkTopologicalSkeleton.h
Go to the documentation of this file.
1
44
45#pragma once
46
47// VTK Module
48#include <ttkTopologicalSkeletonModule.h>
49
50// ttk code includes
51#include <TopologicalSkeleton.h>
52#include <ttkAlgorithm.h>
53
54class vtkPolyData;
55
56class TTKTOPOLOGICALSKELETON_EXPORT ttkTopologicalSkeleton
57 : public ttkAlgorithm,
58 protected ttk::TopologicalSkeleton {
59
60public:
62
64
65 vtkSetMacro(ComputeCriticalPoints, bool);
66 vtkGetMacro(ComputeCriticalPoints, bool);
67
70
73
74 vtkSetMacro(ComputeSaddleConnectors, bool);
75 vtkGetMacro(ComputeSaddleConnectors, bool);
76
77 vtkSetMacro(ComputeAttractingCycles1, bool);
78 vtkGetMacro(ComputeAttractingCycles1, bool);
79
80 vtkSetMacro(ComputeRepellingCycles1, bool);
81 vtkGetMacro(ComputeRepellingCycles1, bool);
82
85
88
89 vtkSetMacro(ComputeAscendingSegmentation, bool);
90 vtkGetMacro(ComputeAscendingSegmentation, bool);
91
94
95 vtkSetMacro(ComputeFinalSegmentation, bool);
96 vtkGetMacro(ComputeFinalSegmentation, bool);
97
98 vtkSetMacro(IterationThreshold, int);
99 vtkGetMacro(IterationThreshold, int);
100
101 vtkSetMacro(RunSimplification, int);
102 vtkGetMacro(RunSimplification, int);
103
104 vtkSetMacro(ReverseFullOrbit, bool);
105 vtkGetMacro(ReverseFullOrbit, bool);
106
107 vtkSetMacro(SimplificationThreshold, double);
108 vtkGetMacro(SimplificationThreshold, double);
109
110protected:
111 template <typename scalarType, typename triangulationType>
112 int dispatch(vtkDataArray *const inputVectors,
113 vtkPolyData *const outputCriticalPoints,
114 vtkPolyData *const outputSeparatrices1,
115 vtkPolyData *const outputSeparatrices2,
116 const triangulationType &triangulation);
117
119
120 int FillInputPortInformation(int port, vtkInformation *info) override;
121 int FillOutputPortInformation(int port, vtkInformation *info) override;
122 int RequestData(vtkInformation *request,
123 vtkInformationVector **inputVector,
124 vtkInformationVector *outputVector) override;
125
126private:
127 int IterationThreshold{-1};
128 OutputCriticalPoints criticalPoints_{};
129 Output1Separatrices separatrices1_{};
130 Output2Separatrices separatrices2_{};
131 OutputManifold segmentations_{};
132};
virtual int RequestData(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
int FillInputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
int FillOutputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
int dispatch(vtkDataArray *const inputVectors, vtkPolyData *const outputCriticalPoints, vtkPolyData *const outputSeparatrices1, vtkPolyData *const outputSeparatrices2, const triangulationType &triangulation)
static ttkTopologicalSkeleton * New()
TTK processing package for the computation of Topological Skeleton of Vector Fields....