43#ifndef TTK_DISABLE_FTR_LAZY
76 template <
typename ScalarType,
typename triangulationType>
89#ifndef TTK_DISABLE_FTR_LAZY
93#ifdef TTK_ENABLE_FTR_TASK_STATS
96 std::vector<float> propTimes_{};
101 explicit FTRGraph(triangulationType *mesh);
149 mesh_.setTriangulation(triangulation);
161 return std::move(graph_);
190 const_cast<ScalarType *
>((
const ScalarType *)scalars));
199 scalars_.setOffsets(sos);
204 return dynGraphs_.
up;
206 return dynGraphs_.
down;
212 return dynGraphs_.
up;
214 return dynGraphs_.
down;
220 return dynGraphs_.
down;
222 return dynGraphs_.
up;
258 void alloc()
override;
260 void init()
override;
271 void growthFromSeed(
const idVertex seed,
286 std::set<DynGraphNode<idVertex> *>
287 lowerComps(
const std::vector<idEdge> &finishingEdges,
292 std::set<DynGraphNode<idVertex> *>
293 upperComps(
const std::vector<idEdge> &startingEdges,
300 std::pair<valence, valence> getLinkNbCC(
const idVertex curVert,
308 void updatePreimage(
const Propagation *
const localProp,
329#ifndef TTK_DISABLE_FTR_LAZY
333 void lazyUpdatePreimage(
Propagation *
const localProp,
352 void updateLazyAdd(
const Propagation *
const localProp,
356 void updateLazyDel(
const Propagation *
const localProp,
367 void updateDynGraphCurArc(
const idVertex seed,
374 void updateDynGraphCurArc(
const idVertex seed,
389 const std::vector<idEdge> &upperEdges);
394 const std::vector<idEdge> &lowerStarEdges);
401 mergeAtSaddle(
const idNode saddleId,
409 mergeAtSaddle(
const idNode saddleId,
417 const bool hidden =
false);
420 std::set<idCell> upCCtriangleSeeds(
const idVertex v,
425 void bfsSeed(
const std::size_t idt,
427 std::vector<idCell> &triangles,
428 std::vector<valence> &cc,
440 void bfsPropagation(
const idVertex saddle,
virtual int setDebugLevel(const int &debugLevel)
TTK fTRGraph dynamic graph tracking the evolution of level sets.
TTK FTRGraph processing package.
void setVertexSoSoffsets(SimplexId *sos)
std::string printTriangle(const idCell cellId, const Propagation *const localProp) const
DynamicGraph< idVertex > & dynGraph(const Propagation *const lp)
DynamicGraph< idVertex > & dynGraph(const bool goUp)
void setScalars(const void *scalars)
Scalar field used to compute the Reeb Graph.
DynamicGraph< idVertex > & dynGraphOpposite(const Propagation *const lp)
int setDebugLevel(const int &lvl) override
Control the verbosity of the base code.
void printTime(Timer &timer, const std::string &msg) const
int preconditionTriangulation(triangulationType *triangulation)
void printGraph(const int verbosity) const
std::string printMesh() const
int setThreadNumber(const int nb) override
std::string printEdge(const idEdge edgeId, const Propagation *const localProp) const
Graph && extractOutputGraph()
void setParams(const Params &p)
TTK FTRGraph graph skeleton.
TTK DynamicGraph laziness.
TTK FTRGraph mesh related operations.
TTK fTRGraph propagation management with Fibonacci heaps.
manage propagations for FTR Graph
std::tuple< idVertex, idVertex > orderedEdge
Edge represented by its 2 vertices, lower then upper.
std::function< bool(const idVertex, const idVertex)> VertCompFN
std::tuple< idEdge, idEdge, idEdge > orderedTriangle
Triangle represented by its 3 edges Edges are sorted by their starting vertex (see orderedEdge)
vertPosInTriangle
position of a vertex in a triangle
SimplexId idCell
Cell index in vect_cellList_.
long unsigned int idSuperArc
SuperArc index in vect_superArcs_.
SimplexId valence
for vertex up/down valence
SimplexId idVertex
Vertex index in scalars_.
SimplexId idEdge
Edge index in vect_edgeList_.
unsigned int idNode
Node index in vect_nodes_.
std::pair< idEdge, idEdge > linkEdge
int SimplexId
Identifier type for simplices of any dimension.
T begin(std::pair< T, T > &p)
std::set< DynGraphNode< idVertex > * > lower
std::set< DynGraphNode< idVertex > * > upper
class representing a node of a tree and the link to its parent if not the root
DynamicGraph< idVertex > up
DynamicGraph< idVertex > down
LocalForest< idVertex > up
LocalForest< idVertex > down
std::vector< idEdge > lower
std::vector< idEdge > upper
std::vector< valence > lower
std::vector< valence > upper