TTK
Loading...
Searching...
No Matches
FTMTree_CT.h
Go to the documentation of this file.
1
14
15#pragma once
16
17#include <queue>
18#include <set>
19
20// base code includes
21#include <Geometry.h>
22#include <Triangulation.h>
23
24#include "FTMDataTypes.h"
25#include "FTMTree_MT.h"
26
27namespace ttk {
28 namespace ftm {
29
30 class FTMTree_CT : public FTMTree_MT {
31 protected:
33
34 public:
35 // -----------------
36 // Constructors
37 // -----------------
38
39 FTMTree_CT(const std::shared_ptr<Params> &params,
40 const std::shared_ptr<Scalars> &scalars);
41 ~FTMTree_CT() override = default;
42
43 // -----------------
44 // ACCESSOR
45 // -----------------
46
48 return &jt_;
49 }
50
52 return &st_;
53 }
54
55 inline FTMTree_MT *getTree(const TreeType tt) {
56 switch(tt) {
57 case TreeType::Split:
58 return getSplitTree();
59 break;
60 case TreeType::Join:
61 return getJoinTree();
62 break;
64 return this;
65 break;
66 default:
67 break;
68 }
69 return this;
70 }
71
73 const bool preproc = true) {
77 }
78
79 inline int setDebugLevel(const int &d) override {
83 return 0;
84 }
85
86 inline int setThreadNumber(const int n) override {
90 return 0;
91 }
92
93 // -----------------
94 // PROCESS
95 // -----------------
96
97 template <class triangulationType>
98 int leafSearch(const triangulationType *mesh);
99
100 template <class triangulationType>
101 void build(const triangulationType *mesh, TreeType tt);
102
103 void insertNodes();
104
105 int combine();
106
107 void updateRegion(const ArcRegion &arcRegion, idSuperArc ctArc);
108
110 const bool isJT,
111 idSuperArc xtArc);
112
114 };
115
116 } // namespace ftm
117} // namespace ttk
118
119#include <FTMTree_CT_Template.h>
AbstractTriangulation is an interface class that defines an interface for efficient traversal methods...
virtual int setThreadNumber(const int threadNumber)
Definition: BaseClass.h:80
virtual int setDebugLevel(const int &debugLevel)
Definition: Debug.cpp:147
int setThreadNumber(const int n) override
Definition: FTMTree_CT.h:86
void build(const triangulationType *mesh, TreeType tt)
void createCTArcSegmentation(idSuperArc ctArc, const bool isJT, idSuperArc xtArc)
Definition: FTMTree_CT.cpp:266
int leafSearch(const triangulationType *mesh)
void updateRegion(const ArcRegion &arcRegion, idSuperArc ctArc)
FTMTree_MT * getTree(const TreeType tt)
Definition: FTMTree_CT.h:55
~FTMTree_CT() override=default
FTMTree_MT * getSplitTree()
Definition: FTMTree_CT.h:51
int setDebugLevel(const int &d) override
Definition: FTMTree_CT.h:79
FTMTree_MT * getJoinTree()
Definition: FTMTree_CT.h:47
void preconditionTriangulation(AbstractTriangulation *tri, const bool preproc=true)
Definition: FTMTree_CT.h:72
bool isJT() const
Definition: FTMTree_MT.h:289
void preconditionTriangulation(AbstractTriangulation *tri, const bool preproc=true)
Definition: FTMTree_MT.h:302
long unsigned int idSuperArc
SuperArc index in vect_superArcs_.
Definition: FTMDataTypes.h:37
The Topology ToolKit.