74class TTKMERGETREETEMPORALREDUCTIONDECODING_EXPORT
85 bool OutputTrees =
true;
86 bool PlanarLayout =
false;
87 bool BranchDecompositionPlanarLayout =
false;
88 double BranchSpacing = 1.;
89 bool RescaleTreesIndividually =
false;
90 double DimensionSpacing = 1.;
91 int DimensionToShift = 0;
92 double ImportantPairs = 50.;
93 int MaximumImportantPairs = 0;
94 int MinimumImportantPairs = 0;
95 double ImportantPairsSpacing = 1.;
96 double NonImportantPairsSpacing = 1.;
97 double NonImportantPairsProximity = 0.05;
98 std::string ExcludeImportantPairsLower =
"";
99 std::string ExcludeImportantPairsHigher =
"";
105 std::vector<vtkUnstructuredGrid *> treesNodes;
106 std::vector<vtkUnstructuredGrid *> treesArcs;
107 std::vector<vtkDataSet *> treesSegmentation;
109 std::vector<std::vector<int>> treesNodeCorrMesh;
110 std::vector<ttk::ftm::MergeTree<double>> intermediateSTrees;
111 std::vector<std::vector<std::tuple<idNode, idNode, double>>> allMatching;
113 void setDataVisualization(
int numInputs) {
115 treesNodes = std::vector<vtkUnstructuredGrid *>(numInputs);
116 treesArcs = std::vector<vtkUnstructuredGrid *>(numInputs);
117 treesSegmentation = std::vector<vtkDataSet *>(numInputs);
120 void resetDataVisualization() {
121 setDataVisualization(0);
122 treesNodeCorrMesh = std::vector<std::vector<int>>();
123 intermediateSTrees = std::vector<ttk::ftm::MergeTree<double>>();
125 = std::vector<std::vector<std::tuple<idNode, idNode, double>>>();
128 bool isDataVisualizationFilled() {
129 return treesNodeCorrMesh.size() != 0 and intermediateSTrees.size() != 0
130 and allMatching.size() != 0;
140 assignmentSolverID_ = assignmentSolver;
142 resetDataVisualization();
149 vtkSetMacro(OutputTrees,
bool);
150 vtkGetMacro(OutputTrees,
bool);
152 vtkSetMacro(PlanarLayout,
bool);
153 vtkGetMacro(PlanarLayout,
bool);
155 vtkSetMacro(BranchDecompositionPlanarLayout,
bool);
156 vtkGetMacro(BranchDecompositionPlanarLayout,
bool);
158 vtkSetMacro(BranchSpacing,
double);
159 vtkGetMacro(BranchSpacing,
double);
161 vtkSetMacro(RescaleTreesIndividually,
bool);
162 vtkGetMacro(RescaleTreesIndividually,
bool);
164 vtkSetMacro(DimensionSpacing,
double);
165 vtkGetMacro(DimensionSpacing,
double);
167 vtkSetMacro(DimensionToShift,
int);
168 vtkGetMacro(DimensionToShift,
int);
170 vtkSetMacro(ImportantPairs,
double);
171 vtkGetMacro(ImportantPairs,
double);
173 vtkSetMacro(MaximumImportantPairs,
int);
174 vtkGetMacro(MaximumImportantPairs,
int);
176 vtkSetMacro(MinimumImportantPairs,
int);
177 vtkGetMacro(MinimumImportantPairs,
int);
179 vtkSetMacro(ImportantPairsSpacing,
double);
180 vtkGetMacro(ImportantPairsSpacing,
double);
182 vtkSetMacro(NonImportantPairsSpacing,
double);
183 vtkGetMacro(NonImportantPairsSpacing,
double);
185 vtkSetMacro(NonImportantPairsProximity,
double);
186 vtkGetMacro(NonImportantPairsProximity,
double);
188 vtkSetMacro(ExcludeImportantPairsLower,
const std::string &);
189 vtkGetMacro(ExcludeImportantPairsLower, std::string);
191 vtkSetMacro(ExcludeImportantPairsHigher,
const std::string &);
192 vtkGetMacro(ExcludeImportantPairsHigher, std::string);
226 vtkInformationVector **inputVector,
227 vtkInformationVector *outputVector)
override;
229 template <
class dataType>
230 int run(vtkInformationVector *outputVector,
232 std::vector<std::tuple<double, int, int, int, int>> &coefs,
233 std::vector<bool> &interpolatedTrees);
235 template <
class dataType>
237 std::vector<std::tuple<double, int, int, int, int>> &coefs);
239 template <
class dataType>
240 int runOutput(vtkInformationVector *outputVector,
242 std::vector<std::tuple<double, int, int, int, int>> &coefs,
243 std::vector<bool> &interpolatedTrees);