TTK
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ttk::CompactTriangulation Class Referencefinal

CompactTriangulation is a class implemented based on the TopoCluster data structure, which is a localized data structure for simplicial meshes. The key idea of TopoCluster is to subdivide the simplicial mesh into clusters. Then, the connectivity information is computed locally for each cluster and discarded when it is no longer needed. The simplicial mesh needs to be subdivided before using TopoCluster, i.e., there has to be a scalar field named "ttkCompactTriangulationIndex" to denote the cluster index of each vertex. Note Topocluster will reindex the simplices based on the clustering input array. Related publications
"TopoCluster: A Localized Data Structure for Topology-based Visualization" Guoxi Liu, Federico Iuricich, Riccardo Fellegara, and Leila De Floriani IEEE Transactions on Visualization and Computer Graphics, 2021. More...

#include <CompactTriangulation.h>

Inheritance diagram for ttk::CompactTriangulation:
ttk::AbstractTriangulation ttk::Wrapper ttk::Debug ttk::BaseClass

Public Member Functions

 CompactTriangulation ()
 
 CompactTriangulation (const CompactTriangulation &rhs)
 
CompactTriangulationoperator= (const CompactTriangulation &rhs)
 
 ~CompactTriangulation () override
 
 CompactTriangulation (CompactTriangulation &&rhs)=default
 
CompactTriangulationoperator= (CompactTriangulation &&rhs)=default
 
int setInputPoints (const SimplexId &pointNumber, const void *pointSet, const int *indexArray, const bool &doublePrecision=false)
 
int setInputCells (const SimplexId &cellNumber, const LongSimplexId *cellArray)
 
int reorderVertices (std::vector< SimplexId > &vertexMap)
 
int reorderCells (const std::vector< SimplexId > &vertexMap, const SimplexId &cellNumber, const LongSimplexId *connectivity, const LongSimplexId *offset)
 
int reorderCells (const std::vector< SimplexId > &vertexMap, const LongSimplexId *cellArray)
 
int getCellEdgeInternal (const SimplexId &cellId, const int &localEdgeId, SimplexId &edgeId) const override
 
SimplexId getCellEdgeNumberInternal (const SimplexId &cellId) const override
 
const std::vector< std::vector< SimplexId > > * getCellEdgesInternal () override
 
int TTK_TRIANGULATION_INTERNAL() getCellNeighbor (const SimplexId &cellId, const int &localNeighborId, SimplexId &neighborId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getCellNeighborNumber (const SimplexId &cellId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getCellNeighbors () override
 
int getCellTriangleInternal (const SimplexId &cellId, const int &localTriangleId, SimplexId &triangleId) const override
 
SimplexId getCellTriangleNumberInternal (const SimplexId &cellId) const override
 
const std::vector< std::vector< SimplexId > > * getCellTrianglesInternal () override
 
int TTK_TRIANGULATION_INTERNAL() getCellVertex (const SimplexId &cellId, const int &localVertexId, SimplexId &vertexId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getCellVertexNumber (const SimplexId &cellId) const override
 
int TTK_TRIANGULATION_INTERNAL() getDimensionality () const override
 
const std::vector< std::array< SimplexId, 2 > > *TTK_TRIANGULATION_INTERNAL() getEdges () override
 
int TTK_TRIANGULATION_INTERNAL() getEdgeLink (const SimplexId &edgeId, const int &localLinkId, SimplexId &linkId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getEdgeLinkNumber (const SimplexId &edgeId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getEdgeLinks () override
 
int TTK_TRIANGULATION_INTERNAL() getEdgeStar (const SimplexId &edgeId, const int &localStarId, SimplexId &starId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getEdgeStarNumber (const SimplexId &edgeId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getEdgeStars () override
 
int getEdgeTriangleInternal (const SimplexId &edgeId, const int &localTriangleId, SimplexId &triangleId) const override
 
SimplexId getEdgeTriangleNumberInternal (const SimplexId &edgeId) const override
 
const std::vector< std::vector< SimplexId > > * getEdgeTrianglesInternal () override
 
int getEdgeVertexInternal (const SimplexId &edgeId, const int &localVertexId, SimplexId &vertexId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getNumberOfCells () const override
 
SimplexId getNumberOfEdgesInternal () const override
 
SimplexId getNumberOfTrianglesInternal () const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getNumberOfVertices () const override
 
const std::vector< std::array< SimplexId, 3 > > *TTK_TRIANGULATION_INTERNAL() getTriangles () override
 
int getTriangleEdgeInternal (const SimplexId &triangleId, const int &localEdgeId, SimplexId &edgeId) const override
 
SimplexId getTriangleEdgeNumberInternal (const SimplexId &triangleId) const override
 
const std::vector< std::vector< SimplexId > > * getTriangleEdgesInternal () override
 
int TTK_TRIANGULATION_INTERNAL() getTriangleLink (const SimplexId &triangleId, const int &localLinkId, SimplexId &linkId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getTriangleLinkNumber (const SimplexId &triangleId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getTriangleLinks () override
 
int TTK_TRIANGULATION_INTERNAL() getTriangleStar (const SimplexId &triangleId, const int &localStarId, SimplexId &starId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getTriangleStarNumber (const SimplexId &triangleId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getTriangleStars () override
 
int getTriangleVertexInternal (const SimplexId &triangleId, const int &localVertexId, SimplexId &vertexId) const override
 
int getVertexEdgeInternal (const SimplexId &vertexId, const int &localEdgeId, SimplexId &edgeId) const override
 
SimplexId getVertexEdgeNumberInternal (const SimplexId &vertexId) const override
 
const std::vector< std::vector< SimplexId > > * getVertexEdgesInternal () override
 
int TTK_TRIANGULATION_INTERNAL() getVertexLink (const SimplexId &vertexId, const int &localLinkId, SimplexId &linkId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getVertexLinkNumber (const SimplexId &vertexId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getVertexLinks () override
 
int TTK_TRIANGULATION_INTERNAL() getVertexNeighbor (const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getVertexNeighborNumber (const SimplexId &vertexId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getVertexNeighbors () override
 
int TTK_TRIANGULATION_INTERNAL() getVertexPoint (const SimplexId &vertexId, float &x, float &y, float &z) const override
 
int TTK_TRIANGULATION_INTERNAL() getVertexStar (const SimplexId &vertexId, const int &localStarId, SimplexId &starId) const override
 
SimplexId TTK_TRIANGULATION_INTERNAL() getVertexStarNumber (const SimplexId &vertexId) const override
 
const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() getVertexStars () override
 
int getVertexTriangleInternal (const SimplexId &vertexId, const int &localTriangleId, SimplexId &triangleId) const override
 
SimplexId getVertexTriangleNumberInternal (const SimplexId &vertexId) const override
 
const std::vector< std::vector< SimplexId > > * getVertexTrianglesInternal () override
 
bool TTK_TRIANGULATION_INTERNAL() isEdgeOnBoundary (const SimplexId &edgeId) const override
 
bool isEmpty () const override
 
bool TTK_TRIANGULATION_INTERNAL() isTriangleOnBoundary (const SimplexId &triangleId) const override
 
bool TTK_TRIANGULATION_INTERNAL() isVertexOnBoundary (const SimplexId &vertexId) const override
 
int preconditionBoundaryEdgesInternal () override
 
int preconditionBoundaryTrianglesInternal () override
 
int preconditionBoundaryVerticesInternal () override
 
int preconditionCellEdgesInternal () override
 
int preconditionCellNeighborsInternal () override
 
int preconditionCellTrianglesInternal () override
 
int preconditionEdgesInternal () override
 
int preconditionEdgeLinksInternal () override
 
int preconditionEdgeStarsInternal () override
 
int preconditionEdgeTrianglesInternal () override
 
int preconditionTrianglesInternal () override
 
int preconditionTriangleEdgesInternal () override
 
int preconditionTriangleLinksInternal () override
 
int preconditionTriangleStarsInternal () override
 
int preconditionVertexEdgesInternal () override
 
int preconditionVertexLinksInternal () override
 
int preconditionVertexNeighborsInternal () override
 
int preconditionVertexStarsInternal () override
 
int preconditionVertexTrianglesInternal () override
 
void initCache (const float ratio=0.2)
 
size_t getCacheSize ()
 
int resetCache (int option)
 
- Public Member Functions inherited from ttk::AbstractTriangulation
 AbstractTriangulation ()
 
 ~AbstractTriangulation () override
 
 AbstractTriangulation (const AbstractTriangulation &)=default
 
 AbstractTriangulation (AbstractTriangulation &&)=default
 
AbstractTriangulationoperator= (const AbstractTriangulation &)=default
 
AbstractTriangulationoperator= (AbstractTriangulation &&)=default
 
int clear ()
 
size_t footprint (size_t size=0) const
 
virtual int getCellEdge (const SimplexId &cellId, const int &localEdgeId, SimplexId &edgeId) const
 
virtual SimplexId getCellEdgeNumber (const SimplexId &cellId) const
 
virtual const std::vector< std::vector< SimplexId > > * getCellEdges ()
 
virtual int getCellNeighbor (const SimplexId &cellId, const int &localNeighborId, SimplexId &neighborId) const
 
virtual SimplexId getCellNeighborNumber (const SimplexId &cellId) const
 
virtual const std::vector< std::vector< SimplexId > > * getCellNeighbors ()
 
virtual int getCellTriangle (const SimplexId &cellId, const int &localTriangleId, SimplexId &triangleId) const
 
virtual SimplexId getCellTriangleNumber (const SimplexId &cellId) const
 
virtual const std::vector< std::vector< SimplexId > > * getCellTriangles ()
 
virtual int getCellVertex (const SimplexId &cellId, const int &localVertexId, SimplexId &vertexId) const
 
virtual SimplexId getCellVertexNumber (const SimplexId &cellId) const
 
virtual int getDimensionality () const
 
virtual const std::vector< std::array< SimplexId, 2 > > * getEdges ()
 
virtual int getEdgeLink (const SimplexId &edgeId, const int &localLinkId, SimplexId &linkId) const
 
virtual SimplexId getEdgeLinkNumber (const SimplexId &edgeId) const
 
virtual const std::vector< std::vector< SimplexId > > * getEdgeLinks ()
 
virtual int getEdgeStar (const SimplexId &edgeId, const int &localStarId, SimplexId &starId) const
 
virtual SimplexId getEdgeStarNumber (const SimplexId &edgeId) const
 
virtual const std::vector< std::vector< SimplexId > > * getEdgeStars ()
 
virtual int getEdgeTriangle (const SimplexId &edgeId, const int &localTriangleId, SimplexId &triangleId) const
 
virtual SimplexId getEdgeTriangleNumber (const SimplexId &edgeId) const
 
virtual const std::vector< std::vector< SimplexId > > * getEdgeTriangles ()
 
virtual int getEdgeVertex (const SimplexId &edgeId, const int &localVertexId, SimplexId &vertexId) const
 
int getEdgeVertexNumber (const SimplexId ttkNotUsed(edgeId)) const
 
virtual const std::array< SimplexId, 3 > & getGridDimensions () const
 
virtual SimplexId getNumberOfCells () const
 
virtual SimplexId getNumberOfEdges () const
 
virtual SimplexId getNumberOfTriangles () const
 
virtual SimplexId getNumberOfVertices () const
 
virtual const std::vector< std::array< SimplexId, 3 > > * getTriangles ()
 
virtual int getTriangleEdge (const SimplexId &triangleId, const int &localEdgeId, SimplexId &edgeId) const
 
virtual SimplexId getTriangleEdgeNumber (const SimplexId &triangleId) const
 
virtual const std::vector< std::vector< SimplexId > > * getTriangleEdges ()
 
virtual int getTriangleLink (const SimplexId &triangleId, const int &localLinkId, SimplexId &linkId) const
 
virtual SimplexId getTriangleLinkNumber (const SimplexId &triangleId) const
 
virtual const std::vector< std::vector< SimplexId > > * getTriangleLinks ()
 
virtual int getTriangleStar (const SimplexId &triangleId, const int &localStarId, SimplexId &starId) const
 
virtual SimplexId getTriangleStarNumber (const SimplexId &triangleId) const
 
virtual const std::vector< std::vector< SimplexId > > * getTriangleStars ()
 
virtual int getTriangleVertex (const SimplexId &triangleId, const int &localVertexId, SimplexId &vertexId) const
 
int getTriangleVertexNumber (const SimplexId ttkNotUsed(triangleId)) const
 
virtual int getVertexEdge (const SimplexId &vertexId, const int &localEdgeId, SimplexId &edgeId) const
 
virtual SimplexId getVertexEdgeNumber (const SimplexId &vertexId) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexEdges ()
 
virtual int getVertexLink (const SimplexId &vertexId, const int &localLinkId, SimplexId &linkId) const
 
virtual SimplexId getVertexLinkNumber (const SimplexId &vertexId) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexLinks ()
 
virtual int getVertexNeighbor (const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId) const
 
virtual SimplexId getVertexNeighborNumber (const SimplexId &vertexId) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexNeighbors ()
 
virtual int getVertexPoint (const SimplexId &vertexId, float &x, float &y, float &z) const
 
virtual int getVertexStar (const SimplexId &vertexId, const int &localStarId, SimplexId &starId) const
 
virtual SimplexId getVertexStarNumber (const SimplexId &vertexId) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexStars ()
 
virtual int getVertexTriangle (const SimplexId &vertexId, const int &localTriangleId, SimplexId &triangleId) const
 
virtual SimplexId getVertexTriangleNumber (const SimplexId &vertexId) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexTriangles ()
 
bool hasPeriodicBoundaries () const
 Returns true if the grid uses period boundary conditions.
 
virtual bool isEdgeOnBoundary (const SimplexId &edgeId) const
 
virtual bool isEmpty () const
 
virtual bool isManifold () const
 
virtual int preconditionManifold ()
 
virtual bool isTriangleOnBoundary (const SimplexId &triangleId) const
 
virtual bool isVertexOnBoundary (const SimplexId &vertexId) const
 
virtual int preconditionBoundaryEdges ()
 
virtual int preconditionBoundaryTriangles ()
 
virtual int preconditionBoundaryVertices ()
 
virtual int preconditionCellEdges ()
 
virtual int preconditionCellNeighbors ()
 
virtual int preconditionCellTriangles ()
 
virtual int preconditionEdges ()
 
virtual int preconditionEdgeLinks ()
 
virtual int preconditionEdgeStars ()
 
virtual int preconditionEdgeTriangles ()
 
virtual int preconditionTriangles ()
 
virtual int preconditionTriangleEdges ()
 
virtual int preconditionTriangleLinks ()
 
virtual int preconditionTriangleStars ()
 
virtual int preconditionVertexEdges ()
 
virtual int preconditionVertexLinks ()
 
virtual int preconditionVertexNeighbors ()
 
virtual int preconditionVertexStars ()
 
virtual int preconditionVertexTriangles ()
 
int getEdgeIncenter (const SimplexId edgeId, float incenter[3]) const
 
int getTriangleIncenter (const SimplexId triangleId, float incenter[3]) const
 
int getTetraIncenter (const SimplexId tetraId, float incenter[3]) const
 
int getCellIncenter (const SimplexId cellid, const int dim, float incenter[3]) const
 
virtual int getCellVTKID (const int &ttkId, int &vtkId) const
 
template<class itemType >
size_t tableTableFootprint (const vector< vector< itemType > > &table, const string &tableName, ostream &stream) const
 
- Public Member Functions inherited from ttk::Wrapper
 Wrapper ()
 
 ~Wrapper () override=default
 
virtual bool needsToAbort ()=0
 
virtual int updateProgress (const float &progress)=0
 
- Public Member Functions inherited from ttk::Debug
 Debug ()
 
 ~Debug () override
 
virtual int setDebugLevel (const int &debugLevel)
 
int setWrapper (const Wrapper *wrapper) override
 
int printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
void setDebugMsgPrefix (const std::string &prefix)
 
- Public Member Functions inherited from ttk::BaseClass
 BaseClass ()
 
virtual ~BaseClass ()=default
 
int getThreadNumber () const
 
virtual int setThreadNumber (const int threadNumber)
 
virtual int setWrapper (const Wrapper *wrapper)
 

Protected Member Functions

int clear ()
 
SimplexId findNodeIndex (SimplexId id, SIMPLEX_ID idType) const
 
ImplicitClustersearchCache (const SimplexId &nodeId, const SimplexId reservedId=0) const
 
int buildInternalEdgeMap (ImplicitCluster *const nodePtr, bool computeInternalEdgeList, bool computeInternalEdgeMap) const
 
int buildExternalEdgeMap (ImplicitCluster *const nodePtr) const
 
int buildInternalTriangleMap (ImplicitCluster *const nodePtr, bool computeInternalTriangleList, bool computeInternalTriangleMap) const
 
int buildExternalTriangleMap (ImplicitCluster *const nodePtr) const
 
SimplexId countInternalEdges (SimplexId nodeId) const
 
int countInternalTriangles (SimplexId nodeId) const
 
int getClusterCellNeighbors (ImplicitCluster *const nodePtr) const
 
int getClusterCellTriangles (ImplicitCluster *const nodePtr) const
 
int getClusterEdgeLinks (ImplicitCluster *const nodePtr) const
 
int getClusterEdgeStars (ImplicitCluster *const nodePtr) const
 
int getClusterEdgeTriangles (ImplicitCluster *const nodePtr) const
 
int getClusterTetraEdges (ImplicitCluster *const nodePtr) const
 
int getClusterTriangleEdges (ImplicitCluster *const nodePtr) const
 
int getClusterTriangleLinks (ImplicitCluster *const nodePtr) const
 
int getClusterTriangleStars (ImplicitCluster *const nodePtr) const
 
int getClusterVertexEdges (ImplicitCluster *const nodePtr) const
 
int getClusterVertexLinks (ImplicitCluster *const nodePtr) const
 
int getClusterVertexNeighbors (ImplicitCluster *const nodePtr) const
 
int getClusterVertexStars (ImplicitCluster *const nodePtr) const
 
int getClusterVertexTriangles (ImplicitCluster *const nodePtr) const
 
int getBoundaryCells (ImplicitCluster *const nodePtr, const SimplexId dim=2) const
 
- Protected Member Functions inherited from ttk::AbstractTriangulation
virtual int getCellEdgeInternal (const SimplexId &ttkNotUsed(cellId), const int &ttkNotUsed(localEdgeId), SimplexId &ttkNotUsed(edgeId)) const
 
virtual SimplexId getCellEdgeNumberInternal (const SimplexId &ttkNotUsed(cellId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getCellEdgesInternal ()
 
virtual int getCellNeighborInternal (const SimplexId &ttkNotUsed(cellId), const int &ttkNotUsed(localNeighborId), SimplexId &ttkNotUsed(neighborId)) const
 
virtual SimplexId getCellNeighborNumberInternal (const SimplexId &ttkNotUsed(cellId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getCellNeighborsInternal ()
 
virtual int getCellTriangleInternal (const SimplexId &ttkNotUsed(cellId), const int &ttkNotUsed(localTriangleId), SimplexId &ttkNotUsed(triangleId)) const
 
virtual SimplexId getCellTriangleNumberInternal (const SimplexId &ttkNotUsed(cellId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getCellTrianglesInternal ()
 
virtual int getCellVertexInternal (const SimplexId &ttkNotUsed(cellId), const int &ttkNotUsed(localVertexId), SimplexId &ttkNotUsed(vertexId)) const
 
virtual SimplexId getCellVertexNumberInternal (const SimplexId &ttkNotUsed(cellId)) const
 
virtual int getDimensionalityInternal () const
 
virtual const std::vector< std::array< SimplexId, 2 > > * getEdgesInternal ()
 
virtual int getEdgeLinkInternal (const SimplexId &ttkNotUsed(edgeId), const int &ttkNotUsed(localLinkId), SimplexId &ttkNotUsed(linkId)) const
 
virtual SimplexId getEdgeLinkNumberInternal (const SimplexId &ttkNotUsed(edgeId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getEdgeLinksInternal ()
 
virtual int getEdgeStarInternal (const SimplexId &ttkNotUsed(edgeId), const int &ttkNotUsed(localStarId), SimplexId &ttkNotUsed(starId)) const
 
virtual SimplexId getEdgeStarNumberInternal (const SimplexId &ttkNotUsed(edgeId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getEdgeStarsInternal ()
 
virtual int getEdgeTriangleInternal (const SimplexId &ttkNotUsed(edgeId), const int &ttkNotUsed(localTriangleId), SimplexId &ttkNotUsed(triangleId)) const
 
virtual SimplexId getEdgeTriangleNumberInternal (const SimplexId &ttkNotUsed(edgeId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getEdgeTrianglesInternal ()
 
virtual int getEdgeVertexInternal (const SimplexId &ttkNotUsed(edgeId), const int &ttkNotUsed(localVertexId), SimplexId &ttkNotUsed(vertexId)) const
 
virtual SimplexId getNumberOfCellsInternal () const
 
virtual SimplexId getNumberOfEdgesInternal () const
 
virtual SimplexId getNumberOfTrianglesInternal () const
 
virtual SimplexId getNumberOfVerticesInternal () const
 
virtual const std::vector< std::array< SimplexId, 3 > > * getTrianglesInternal ()
 
virtual int getTriangleEdgeInternal (const SimplexId &ttkNotUsed(triangleId), const int &ttkNotUsed(localEdgeId), SimplexId &ttkNotUsed(edgeId)) const
 
virtual SimplexId getTriangleEdgeNumberInternal (const SimplexId &ttkNotUsed(triangleId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getTriangleEdgesInternal ()
 
virtual int getTriangleLinkInternal (const SimplexId &ttkNotUsed(triangleId), const int &ttkNotUsed(localLinkId), SimplexId &ttkNotUsed(linkId)) const
 
virtual SimplexId getTriangleLinkNumberInternal (const SimplexId &ttkNotUsed(triangleId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getTriangleLinksInternal ()
 
virtual int getTriangleStarInternal (const SimplexId &ttkNotUsed(triangleId), const int &ttkNotUsed(localStarId), SimplexId &ttkNotUsed(starId)) const
 
virtual SimplexId getTriangleStarNumberInternal (const SimplexId &ttkNotUsed(triangleId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getTriangleStarsInternal ()
 
virtual int getTriangleVertexInternal (const SimplexId &ttkNotUsed(triangleId), const int &ttkNotUsed(localVertexId), SimplexId &ttkNotUsed(vertexId)) const
 
virtual int getVertexEdgeInternal (const SimplexId &ttkNotUsed(vertexId), const int &ttkNotUsed(localEdgeId), SimplexId &ttkNotUsed(edgeId)) const
 
virtual SimplexId getVertexEdgeNumberInternal (const SimplexId &ttkNotUsed(vertexId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexEdgesInternal ()
 
virtual int getVertexLinkInternal (const SimplexId &ttkNotUsed(vertexId), const int &ttkNotUsed(localLinkId), SimplexId &ttkNotUsed(linkId)) const
 
virtual SimplexId getVertexLinkNumberInternal (const SimplexId &ttkNotUsed(vertexId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexLinksInternal ()
 
virtual int getVertexNeighborInternal (const SimplexId &ttkNotUsed(vertexId), const int &ttkNotUsed(localNeighborId), SimplexId &ttkNotUsed(neighborId)) const
 
virtual SimplexId getVertexNeighborNumberInternal (const SimplexId &ttkNotUsed(vertexId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexNeighborsInternal ()
 
virtual int getVertexPointInternal (const SimplexId &ttkNotUsed(vertexId), float &ttkNotUsed(x), float &ttkNotUsed(y), float &ttkNotUsed(z)) const
 
virtual int getVertexStarInternal (const SimplexId &ttkNotUsed(vertexId), const int &ttkNotUsed(localStarId), SimplexId &ttkNotUsed(starId)) const
 
virtual SimplexId getVertexStarNumberInternal (const SimplexId &ttkNotUsed(vertexId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexStarsInternal ()
 
virtual int getVertexTriangleInternal (const SimplexId &ttkNotUsed(vertexId), const int &ttkNotUsed(localTriangleId), SimplexId &ttkNotUsed(triangleId)) const
 
virtual SimplexId getVertexTriangleNumberInternal (const SimplexId &ttkNotUsed(vertexId)) const
 
virtual const std::vector< std::vector< SimplexId > > * getVertexTrianglesInternal ()
 
virtual bool isEdgeOnBoundaryInternal (const SimplexId &ttkNotUsed(edgeId)) const
 
virtual bool isTriangleOnBoundaryInternal (const SimplexId &ttkNotUsed(triangleId)) const
 
virtual bool isVertexOnBoundaryInternal (const SimplexId &ttkNotUsed(vertexId)) const
 
bool hasPreconditionedBoundaryEdges () const
 
bool hasPreconditionedBoundaryTriangles () const
 
bool hasPreconditionedBoundaryVertices () const
 
bool hasPreconditionedCellEdges () const
 
bool hasPreconditionedCellNeighbors () const
 
bool hasPreconditionedCellTriangles () const
 
bool hasPreconditionedEdgeLinks () const
 
bool hasPreconditionedEdgeStars () const
 
bool hasPreconditionedEdgeTriangles () const
 
bool hasPreconditionedEdges () const
 
bool hasPreconditionedTriangles () const
 
bool hasPreconditionedTriangleEdges () const
 
bool hasPreconditionedTriangleLinks () const
 
bool hasPreconditionedTriangleStars () const
 
bool hasPreconditionedVertexEdges () const
 
bool hasPreconditionedVertexLinks () const
 
bool hasPreconditionedVertexNeighbors () const
 
bool hasPreconditionedVertexStars () const
 
bool hasPreconditionedVertexTriangles () const
 
bool hasPreconditionedManifold () const
 
bool needsToAbort () override
 
virtual int preconditionBoundaryEdgesInternal ()
 
virtual int preconditionBoundaryTrianglesInternal ()
 
virtual int preconditionBoundaryVerticesInternal ()
 
virtual int preconditionCellEdgesInternal ()
 
virtual int preconditionCellNeighborsInternal ()
 
virtual int preconditionCellTrianglesInternal ()
 
virtual int preconditionEdgesInternal ()
 
virtual int preconditionEdgeLinksInternal ()
 
virtual int preconditionEdgeStarsInternal ()
 
virtual int preconditionEdgeTrianglesInternal ()
 
virtual int preconditionTrianglesInternal ()
 
virtual int preconditionTriangleEdgesInternal ()
 
virtual int preconditionTriangleLinksInternal ()
 
virtual int preconditionTriangleStarsInternal ()
 
virtual int preconditionVertexEdgesInternal ()
 
virtual int preconditionVertexLinksInternal ()
 
virtual int preconditionVertexNeighborsInternal ()
 
virtual int preconditionVertexStarsInternal ()
 
virtual int preconditionVertexTrianglesInternal ()
 
virtual int preconditionManifoldInternal ()
 
virtual int getCellVTKIDInternal (const int &ttkId, int &vtkId) const
 
template<class itemType >
size_t tableFootprint (const std::vector< itemType > &table, const std::string &tableName="", std::ostream &stream=std::cout) const
 
template<class itemType >
size_t tableTableFootprint (const std::vector< std::vector< itemType > > &table, const std::string &tableName="", std::ostream &stream=std::cout) const
 
int updateProgress (const float &ttkNotUsed(progress)) override
 
gradientCacheTypegetGradientCacheHandler () const
 
- Protected Member Functions inherited from ttk::Debug
int printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const
 
int welcomeMsg (std::ostream &stream)
 

Protected Attributes

bool doublePrecision_
 
int maxCellDim_
 
SimplexId cellNumber_
 
SimplexId vertexNumber_
 
SimplexId nodeNumber_
 
const void * pointSet_
 
const int * vertexIndices_
 
std::vector< SimplexIdvertexIntervals_
 
std::vector< SimplexIdedgeIntervals_
 
std::vector< SimplexIdtriangleIntervals_
 
std::vector< SimplexIdcellIntervals_
 
std::shared_ptr< CellArraycellArray_
 
std::vector< std::vector< SimplexId > > externalCells_
 
size_t cacheSize_
 
std::vector< std::list< ImplicitCluster > > caches_
 
std::vector< boost::unordered_map< SimplexId, std::list< ImplicitCluster >::iterator > > cacheMaps_
 
- Protected Attributes inherited from ttk::AbstractTriangulation
bool hasPeriodicBoundaries_
 
bool hasPreconditionedBoundaryEdges_
 
bool hasPreconditionedBoundaryTriangles_
 
bool hasPreconditionedBoundaryVertices_
 
bool hasPreconditionedCellEdges_
 
bool hasPreconditionedCellNeighbors_
 
bool hasPreconditionedCellTriangles_
 
bool hasPreconditionedEdges_
 
bool hasPreconditionedEdgeLinks_
 
bool hasPreconditionedEdgeStars_
 
bool hasPreconditionedEdgeTriangles_
 
bool hasPreconditionedTriangles_
 
bool hasPreconditionedTriangleEdges_
 
bool hasPreconditionedTriangleLinks_
 
bool hasPreconditionedTriangleStars_
 
bool hasPreconditionedVertexEdges_
 
bool hasPreconditionedVertexLinks_
 
bool hasPreconditionedVertexNeighbors_
 
bool hasPreconditionedVertexStars_
 
bool hasPreconditionedVertexTriangles_
 
bool hasPreconditionedManifold_
 
bool isManifold_ {true}
 
std::array< SimplexId, 3 > gridDimensions_
 
std::vector< bool > boundaryEdges_
 
std::vector< bool > boundaryTriangles_
 
std::vector< bool > boundaryVertices_
 
std::vector< std::array< SimplexId, 6 > > tetraEdgeList_
 
std::vector< std::vector< SimplexId > > cellNeighborList_
 
std::vector< std::array< SimplexId, 4 > > tetraTriangleList_
 
std::vector< std::vector< SimplexId > > edgeLinkList_
 
std::vector< std::array< SimplexId, 2 > > edgeList_
 
std::vector< std::vector< SimplexId > > edgeStarList_
 
std::vector< std::vector< SimplexId > > edgeTriangleList_
 
std::vector< std::array< SimplexId, 3 > > triangleList_
 
std::vector< std::array< SimplexId, 3 > > triangleEdgeList_
 
std::vector< std::vector< SimplexId > > triangleLinkList_
 
std::vector< std::vector< SimplexId > > triangleStarList_
 
std::vector< std::vector< SimplexId > > vertexEdgeList_
 
std::vector< std::vector< SimplexId > > vertexLinkList_
 
std::vector< std::vector< SimplexId > > vertexNeighborList_
 
std::vector< std::vector< SimplexId > > vertexStarList_
 
std::vector< std::vector< SimplexId > > vertexTriangleList_
 
std::vector< std::vector< SimplexId > > cellEdgeVector_ {}
 
std::vector< std::vector< SimplexId > > cellTriangleVector_ {}
 
std::vector< std::vector< SimplexId > > triangleEdgeVector_ {}
 
gradientCacheType gradientCache_ {}
 
- Protected Attributes inherited from ttk::Wrapper
float processingProgress_
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
std::string debugMsgNamePrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 

Additional Inherited Members

- Protected Types inherited from ttk::AbstractTriangulation
using gradIdType = SimplexId
 
using gradientType = std::array< std::vector< gradIdType >, 6 >
 Discrete gradient internal struct.
 
using gradientKeyType = std::pair< const void *, size_t >
 Key type for gradientCacheType.
 
using gradientCacheType = LRUCache< gradientKeyType, gradientType >
 
- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

CompactTriangulation is a class implemented based on the TopoCluster data structure, which is a localized data structure for simplicial meshes. The key idea of TopoCluster is to subdivide the simplicial mesh into clusters. Then, the connectivity information is computed locally for each cluster and discarded when it is no longer needed. The simplicial mesh needs to be subdivided before using TopoCluster, i.e., there has to be a scalar field named "ttkCompactTriangulationIndex" to denote the cluster index of each vertex. Note Topocluster will reindex the simplices based on the clustering input array. Related publications
"TopoCluster: A Localized Data Structure for Topology-based Visualization" Guoxi Liu, Federico Iuricich, Riccardo Fellegara, and Leila De Floriani IEEE Transactions on Visualization and Computer Graphics, 2021.

Author
Guoxi Liu guoxi.nosp@m.l@g..nosp@m.clems.nosp@m.on.e.nosp@m.du
Date
November 2021.
See also
ttk::Triangulation
ttk::CompactTriangulationPreconditioning

Online examples:

Definition at line 89 of file CompactTriangulation.h.

Constructor & Destructor Documentation

◆ CompactTriangulation() [1/3]

CompactTriangulation::CompactTriangulation ( )

Definition at line 5 of file CompactTriangulation.cpp.

◆ CompactTriangulation() [2/3]

CompactTriangulation::CompactTriangulation ( const CompactTriangulation rhs)

Definition at line 12 of file CompactTriangulation.cpp.

◆ ~CompactTriangulation()

CompactTriangulation::~CompactTriangulation ( )
overridedefault

◆ CompactTriangulation() [3/3]

ttk::CompactTriangulation::CompactTriangulation ( CompactTriangulation &&  rhs)
default

Member Function Documentation

◆ buildExternalEdgeMap()

int CompactTriangulation::buildExternalEdgeMap ( ImplicitCluster *const  nodePtr) const
protected

Build the external edge list in the node.

Definition at line 301 of file CompactTriangulation.cpp.

◆ buildExternalTriangleMap()

int CompactTriangulation::buildExternalTriangleMap ( ImplicitCluster *const  nodePtr) const
protected

Build the external triangle list in the node.

Definition at line 454 of file CompactTriangulation.cpp.

◆ buildInternalEdgeMap()

int CompactTriangulation::buildInternalEdgeMap ( ImplicitCluster *const  nodePtr,
bool  computeInternalEdgeList,
bool  computeInternalEdgeMap 
) const
protected

Build the internal edge list in the node.

Definition at line 212 of file CompactTriangulation.cpp.

◆ buildInternalTriangleMap()

int CompactTriangulation::buildInternalTriangleMap ( ImplicitCluster *const  nodePtr,
bool  computeInternalTriangleList,
bool  computeInternalTriangleMap 
) const
protected

Build the internal triangle list in the node.

Definition at line 361 of file CompactTriangulation.cpp.

◆ clear()

int ttk::CompactTriangulation::clear ( )
inlineprotected

Definition at line 1539 of file CompactTriangulation.h.

◆ countInternalEdges()

SimplexId CompactTriangulation::countInternalEdges ( SimplexId  nodeId) const
protected

Get the number of internal edges in the node.

Definition at line 520 of file CompactTriangulation.cpp.

◆ countInternalTriangles()

int CompactTriangulation::countInternalTriangles ( SimplexId  nodeId) const
protected

Get the number of internal triangles in the node.

Definition at line 581 of file CompactTriangulation.cpp.

◆ findNodeIndex()

SimplexId ttk::CompactTriangulation::findNodeIndex ( SimplexId  id,
SIMPLEX_ID  idType 
) const
inlineprotected

Find the corresponding node index given the id.

Definition at line 1553 of file CompactTriangulation.h.

◆ getBoundaryCells()

int CompactTriangulation::getBoundaryCells ( ImplicitCluster *const  nodePtr,
const SimplexId  dim = 2 
) const
protected

Get the boundary cells in a given cluster.

Definition at line 2330 of file CompactTriangulation.cpp.

◆ getCacheSize()

size_t ttk::CompactTriangulation::getCacheSize ( )
inline

Get the size of the cache.

Definition at line 1513 of file CompactTriangulation.h.

◆ getCellEdgeInternal()

int ttk::CompactTriangulation::getCellEdgeInternal ( const SimplexId cellId,
const int &  localEdgeId,
SimplexId edgeId 
) const
inlineoverride

Definition at line 229 of file CompactTriangulation.h.

◆ getCellEdgeNumberInternal()

SimplexId ttk::CompactTriangulation::getCellEdgeNumberInternal ( const SimplexId cellId) const
inlineoverride

Definition at line 260 of file CompactTriangulation.h.

◆ getCellEdgesInternal()

const std::vector< std::vector< SimplexId > > * ttk::CompactTriangulation::getCellEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 272 of file CompactTriangulation.h.

◆ getCellNeighbor()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getCellNeighbor ( const SimplexId cellId,
const int &  localNeighborId,
SimplexId neighborId 
) const
inlineoverridevirtual

Get the localNeighborId-th cell neighbor of the cellId-th cell.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Precondition
For this function to behave correctly, preconditionCellNeighbors() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
cellIdInput global cell identifier.
localNeighborIdInput local neighbor identifier, in [0, getCellNeighborNumber()].
neighborIdOutput global neighbor cell identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getCellNeighborNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 289 of file CompactTriangulation.h.

◆ getCellNeighborNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getCellNeighborNumber ( const SimplexId cellId) const
inlineoverridevirtual

Get the number of cell neighbors for the cellId-th cell.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Precondition
For this function to behave correctly, preconditionCellNeighbors() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
cellIdInput global cell identifier.
Returns
Returns the number of cell neighbors.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 320 of file CompactTriangulation.h.

◆ getCellNeighbors()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getCellNeighbors ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of cell neighbors for all cells.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

The number of entries in this list is equal to the number of cells. Each entry is a std::vector of identifiers whose size is equal to the number of neighbor cells for the corresponding cell.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionCellNeighbors() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the cell neighbor list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 338 of file CompactTriangulation.h.

◆ getCellTriangleInternal()

int ttk::CompactTriangulation::getCellTriangleInternal ( const SimplexId cellId,
const int &  localTriangleId,
SimplexId triangleId 
) const
inlineoverride

Definition at line 354 of file CompactTriangulation.h.

◆ getCellTriangleNumberInternal()

SimplexId ttk::CompactTriangulation::getCellTriangleNumberInternal ( const SimplexId cellId) const
inlineoverride

Definition at line 381 of file CompactTriangulation.h.

◆ getCellTrianglesInternal()

const std::vector< std::vector< SimplexId > > * ttk::CompactTriangulation::getCellTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 393 of file CompactTriangulation.h.

◆ getCellVertex()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getCellVertex ( const SimplexId cellId,
const int &  localVertexId,
SimplexId vertexId 
) const
inlineoverridevirtual

Get the localVertexId-th vertex identifier of the cellId-th cell.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Parameters
cellIdInput global cell identifier.
localVertexIdInput local vertex identifier, in [0, getCellVertexNumber()].
vertexIdOutput global vertex identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getCellVertexNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 411 of file CompactTriangulation.h.

◆ getCellVertexNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getCellVertexNumber ( const SimplexId cellId) const
inlineoverridevirtual

Get the number of vertices in a cell.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Parameters
cellIdInput global cell identifier.
Returns
Number of vertices in the cell.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 432 of file CompactTriangulation.h.

◆ getClusterCellNeighbors()

int CompactTriangulation::getClusterCellNeighbors ( ImplicitCluster *const  nodePtr) const
protected

Get the cell neighbors for all cells in a given cluster.

Definition at line 645 of file CompactTriangulation.cpp.

◆ getClusterCellTriangles()

int CompactTriangulation::getClusterCellTriangles ( ImplicitCluster *const  nodePtr) const
protected

Get the cell triangles for all cells in a given cluster.

Definition at line 860 of file CompactTriangulation.cpp.

◆ getClusterEdgeLinks()

int CompactTriangulation::getClusterEdgeLinks ( ImplicitCluster *const  nodePtr) const
protected

Get the edge links for all the edges in a given cluster.

Definition at line 943 of file CompactTriangulation.cpp.

◆ getClusterEdgeStars()

int CompactTriangulation::getClusterEdgeStars ( ImplicitCluster *const  nodePtr) const
protected

Get the edge stars for all the edges in a given cluster.

Definition at line 1166 of file CompactTriangulation.cpp.

◆ getClusterEdgeTriangles()

int CompactTriangulation::getClusterEdgeTriangles ( ImplicitCluster *const  nodePtr) const
protected

Get the edge triangles for all the edges in a given cluster.

Definition at line 1265 of file CompactTriangulation.cpp.

◆ getClusterTetraEdges()

int CompactTriangulation::getClusterTetraEdges ( ImplicitCluster *const  nodePtr) const
protected

Get the edges for all tetrahedra in a given cluster. Check if the tetraEdges_ is NULL before calling the function.

Definition at line 1361 of file CompactTriangulation.cpp.

◆ getClusterTriangleEdges()

int CompactTriangulation::getClusterTriangleEdges ( ImplicitCluster *const  nodePtr) const
protected

Get the triangle edges for all the triangles in a given cluster.

Definition at line 1440 of file CompactTriangulation.cpp.

◆ getClusterTriangleLinks()

int CompactTriangulation::getClusterTriangleLinks ( ImplicitCluster *const  nodePtr) const
protected

Get the triangle links for all the triangles in a given cluster.

Definition at line 1567 of file CompactTriangulation.cpp.

◆ getClusterTriangleStars()

int CompactTriangulation::getClusterTriangleStars ( ImplicitCluster *const  nodePtr) const
protected

Get the triangle stars for all the triangles in a given cluster.

Definition at line 1638 of file CompactTriangulation.cpp.

◆ getClusterVertexEdges()

int CompactTriangulation::getClusterVertexEdges ( ImplicitCluster *const  nodePtr) const
protected

Get the vertex edges for all the vertices in a given cluster.

Definition at line 1758 of file CompactTriangulation.cpp.

◆ getClusterVertexLinks()

int CompactTriangulation::getClusterVertexLinks ( ImplicitCluster *const  nodePtr) const
protected

Get the vertex links for all the vertices in a given cluster.

Definition at line 1829 of file CompactTriangulation.cpp.

◆ getClusterVertexNeighbors()

int CompactTriangulation::getClusterVertexNeighbors ( ImplicitCluster *const  nodePtr) const
protected

Get the vertex neighbors for all the vertices in a given cluster.

Definition at line 2095 of file CompactTriangulation.cpp.

◆ getClusterVertexStars()

int CompactTriangulation::getClusterVertexStars ( ImplicitCluster *const  nodePtr) const
protected

Get the vertex stars for all the vertices in a given cluster. The function is similar as getVertexCells().

Definition at line 2161 of file CompactTriangulation.cpp.

◆ getClusterVertexTriangles()

int CompactTriangulation::getClusterVertexTriangles ( ImplicitCluster *const  nodePtr) const
protected

Get the vertex triangles for all the vertices in a given cluster.

Definition at line 2246 of file CompactTriangulation.cpp.

◆ getDimensionality()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getDimensionality ( ) const
inlineoverridevirtual

Get the dimensionality of the triangulation (this value is equal to the dimension of the simplex with largest dimensionality).

Returns
Returns the dimensionality of the triangulation.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 443 of file CompactTriangulation.h.

◆ getEdgeLink()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getEdgeLink ( const SimplexId edgeId,
const int &  localLinkId,
SimplexId linkId 
) const
inlineoverridevirtual

Get the localLinkId-th simplex of the link of the edgeId-th edge.

The output linkId refers in 2D to a vertex identifier and in 3D to an edge identifier. It returns a negative value in 1D.

Precondition
For this function to behave correctly, preconditionEdgeLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
edgeIdInput global edge identifier.
localLinkIdInput local link simplex identifier, in [0, getEdgeLinkNumber()].
linkIdOutput link simplex identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getEdgeLinkNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 460 of file CompactTriangulation.h.

◆ getEdgeLinkNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getEdgeLinkNumber ( const SimplexId edgeId) const
inlineoverridevirtual

Get the number of simplicies in the link of the edgeId-th edge.

In 2D, this will return the number of vertices in the link, in 3D the number of edges. It returns a negative value in 1D.

Precondition
For this function to behave correctly, preconditionEdgeLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
edgeIdInput global edge identifier.
Returns
Returns the number of cells in the link of the edge.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 491 of file CompactTriangulation.h.

◆ getEdgeLinks()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getEdgeLinks ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of link simplices for all edges.

The number of entries in this list is equal to the number of edges. Each entry is a std::vector of identifiers representing vertices in 2D and edges in 3D. It returns NULL in 1D.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionEdgeLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the edge link list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 509 of file CompactTriangulation.h.

◆ getEdges()

const std::vector< std::array< SimplexId, 2 > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getEdges ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of edges of the triangulation.

Here the notion of edge only makes sense if the triangulation has a dimension greater than 1 (otherwise, use the cell information).

The number of entries in this list is equal to the number of edges. Each entry is a std::pair of vertex identifiers.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionEdges() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the edge list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 448 of file CompactTriangulation.h.

◆ getEdgeStar()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getEdgeStar ( const SimplexId edgeId,
const int &  localStarId,
SimplexId starId 
) const
inlineoverridevirtual

Get the localStarId-th cell of the star of the edgeId-th edge.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Also, the notion of edge only makes sense if the triangulation has a dimension greater than 1 (otherwise, use the cell information).

Precondition
For this function to behave correctly, preconditionEdgeStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
edgeIdInput global edge identifier.
localStarIdInput local star cell identifier, in [0, getEdgeStarNumber()].
starIdOutput global star cell identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getEdgeStarNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 524 of file CompactTriangulation.h.

◆ getEdgeStarNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getEdgeStarNumber ( const SimplexId edgeId) const
inlineoverridevirtual

Get the number of star cells for the edgeId-th edge.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Also, the notion of edge only makes sense if the triangulation has a dimension greater than 1 (otherwise, use the cell information).

Precondition
For this function to behave correctly, preconditionEdgeStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
edgeIdInput global edge identifier
Returns
Returns the number of star cells.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 555 of file CompactTriangulation.h.

◆ getEdgeStars()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getEdgeStars ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of star cell identifiers for all edges.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Also, the notion of edge only makes sense if the triangulation has a dimension greater than 1 (otherwise, use the cell information).

The number of entries in this list is equal to the number of edges. Each entry is a std::vector of identifiers whose size is equal to the number of star cells for the corresponding edge.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionEdgeStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the edge star list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 572 of file CompactTriangulation.h.

◆ getEdgeTriangleInternal()

int ttk::CompactTriangulation::getEdgeTriangleInternal ( const SimplexId edgeId,
const int &  localTriangleId,
SimplexId triangleId 
) const
inlineoverride

Definition at line 587 of file CompactTriangulation.h.

◆ getEdgeTriangleNumberInternal()

SimplexId ttk::CompactTriangulation::getEdgeTriangleNumberInternal ( const SimplexId edgeId) const
inlineoverride

Definition at line 618 of file CompactTriangulation.h.

◆ getEdgeTrianglesInternal()

const std::vector< std::vector< SimplexId > > * ttk::CompactTriangulation::getEdgeTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 635 of file CompactTriangulation.h.

◆ getEdgeVertexInternal()

int ttk::CompactTriangulation::getEdgeVertexInternal ( const SimplexId edgeId,
const int &  localVertexId,
SimplexId vertexId 
) const
inlineoverride

Definition at line 651 of file CompactTriangulation.h.

◆ getNumberOfCells()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getNumberOfCells ( ) const
inlineoverridevirtual

Get the number of cells in the triangulation.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Returns
Returns the number of cells.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 682 of file CompactTriangulation.h.

◆ getNumberOfEdgesInternal()

SimplexId ttk::CompactTriangulation::getNumberOfEdgesInternal ( ) const
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 686 of file CompactTriangulation.h.

◆ getNumberOfTrianglesInternal()

SimplexId ttk::CompactTriangulation::getNumberOfTrianglesInternal ( ) const
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 696 of file CompactTriangulation.h.

◆ getNumberOfVertices()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getNumberOfVertices ( ) const
inlineoverridevirtual

Get the number of vertices in the triangulation.

Returns
Returns the number of vertices.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 707 of file CompactTriangulation.h.

◆ getTriangleEdgeInternal()

int ttk::CompactTriangulation::getTriangleEdgeInternal ( const SimplexId triangleId,
const int &  localEdgeId,
SimplexId edgeId 
) const
inlineoverride

Definition at line 736 of file CompactTriangulation.h.

◆ getTriangleEdgeNumberInternal()

SimplexId ttk::CompactTriangulation::getTriangleEdgeNumberInternal ( const SimplexId triangleId) const
inlineoverride

Definition at line 761 of file CompactTriangulation.h.

◆ getTriangleEdgesInternal()

const std::vector< std::vector< SimplexId > > * ttk::CompactTriangulation::getTriangleEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 773 of file CompactTriangulation.h.

◆ getTriangleLink()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getTriangleLink ( const SimplexId triangleId,
const int &  localLinkId,
SimplexId linkId 
) const
inlineoverridevirtual

Get the localLinkId-th simplex of the link of the triangleId-th triangle.

The notion of triangle link only makes sense in 3D, where the output linkId refers to a vertex identifier.

Precondition
For this function to behave correctly, preconditionTriangleLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
triangleIdInput global triangle identifier.
localLinkIdInput local link simplex identifier, in [0, getTriangleLinkNumber()].
linkIdOutput link simplex identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getTriangleLinkNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 791 of file CompactTriangulation.h.

◆ getTriangleLinkNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getTriangleLinkNumber ( const SimplexId triangleId) const
inlineoverridevirtual

Get the number of simplices in the link of the triangleId-th triangle.

The notion of triangle link only makes sense in 3D, where the number of vertices in the link will be returned.

Precondition
For this function to behave correctly, preconditionTriangleLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
triangleIdInput global triangle identifier.
Returns
Returns the number of simplices in the link of the triangle.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 822 of file CompactTriangulation.h.

◆ getTriangleLinks()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getTriangleLinks ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of link simplices for all triangles.

The number of entries in this list is equal to the number of triangles. Each entry is a std::vector of identifiers representing a vertex.

The notion of triangle link only makes sense in 3D.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionTriangleLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the triangle link list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 840 of file CompactTriangulation.h.

◆ getTriangles()

const std::vector< std::array< SimplexId, 3 > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getTriangles ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of triangles of the triangulation.

Here the notion of triangle only makes sense if the triangulation has a dimension greater than 2 (otherwise, use the cell information).

The number of entries in this list is equal to the number of triangles. Each entry is a std::vector of vertex identifiers.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionTriangles() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the triangle list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 712 of file CompactTriangulation.h.

◆ getTriangleStar()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getTriangleStar ( const SimplexId triangleId,
const int &  localStarId,
SimplexId starId 
) const
inlineoverridevirtual

Get the localStarId-th cell of the star of the triangleId-th triangle.

The notion of triangle star only makes sense in 3D, where the output starId refers to a tetrahedron identifier.

Precondition
For this function to behave correctly, preconditionTriangleStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
triangleIdInput global triangle identifier.
localStarIdInput local star cell identifier, in [0, getTriangleStarNumber()].
starIdOutput global star cell identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getTriangleStarNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 856 of file CompactTriangulation.h.

◆ getTriangleStarNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getTriangleStarNumber ( const SimplexId triangleId) const
inlineoverridevirtual

Get the number of star cells for the triangleId-th triangle.

The notion of triangle star only makes sense in 3D, where the number of tetrahedra in the star will be returned.

Precondition
For this function to behave correctly, preconditionTriangleStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
triangleIdInput global triangle identifier.
Returns
Returns the number of star cells.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 888 of file CompactTriangulation.h.

◆ getTriangleStars()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getTriangleStars ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of star cell identifiers for all triangles.

The number of entries in this list is equal to the number of triangles. Each entry is a std::vector of identifiers whose size is equal to the number of star cells for the corresponding triangle.

The notion of triangle star only makes sense in 3D.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionTriangleStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the triangle star list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 907 of file CompactTriangulation.h.

◆ getTriangleVertexInternal()

int ttk::CompactTriangulation::getTriangleVertexInternal ( const SimplexId triangleId,
const int &  localVertexId,
SimplexId vertexId 
) const
inlineoverride

Definition at line 922 of file CompactTriangulation.h.

◆ getVertexEdgeInternal()

int ttk::CompactTriangulation::getVertexEdgeInternal ( const SimplexId vertexId,
const int &  localEdgeId,
SimplexId edgeId 
) const
inlineoverride

Definition at line 948 of file CompactTriangulation.h.

◆ getVertexEdgeNumberInternal()

SimplexId ttk::CompactTriangulation::getVertexEdgeNumberInternal ( const SimplexId vertexId) const
inlineoverride

Definition at line 978 of file CompactTriangulation.h.

◆ getVertexEdgesInternal()

const std::vector< std::vector< SimplexId > > * ttk::CompactTriangulation::getVertexEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 995 of file CompactTriangulation.h.

◆ getVertexLink()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexLink ( const SimplexId vertexId,
const int &  localLinkId,
SimplexId linkId 
) const
inlineoverridevirtual

Get the localLinkId-th simplex of the link of the vertexId-th vertex.

The output linkId refers in 2D to an edge identifier and in 3D to a triangle identifier.

Precondition
For this function to behave correctly, preconditionVertexLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
vertexIdInput global vertex identifier.
localLinkIdInput local link simplex identifier, in [0, getVertexLinkNumber()].
linkIdOutput link simplex identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getVertexLinkNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1011 of file CompactTriangulation.h.

◆ getVertexLinkNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexLinkNumber ( const SimplexId vertexId) const
inlineoverridevirtual

Get the number of simplices in the link of the vertexId-th vertex.

In 2D, this will return the number of edges in the link, in 3D the number of triangles.

Precondition
For this function to behave correctly, preconditionVertexLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
vertexIdInput global vertex identifier.
Returns
Returns the number of cells in the link of the vertex.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1041 of file CompactTriangulation.h.

◆ getVertexLinks()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexLinks ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of link simplices for all vertices.

The number of entries in this list is equal to the number of vertices. Each entry is a std::vector of identifiers representing edges in 2D and triangles in 3D.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionVertexLinks() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the vertex link list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1059 of file CompactTriangulation.h.

◆ getVertexNeighbor()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexNeighbor ( const SimplexId vertexId,
const int &  localNeighborId,
SimplexId neighborId 
) const
inlineoverridevirtual

Get the localNeighborId-th vertex neighbor of the vertexId-th vertex.

Precondition
For this function to behave correctly, preconditionVertexNeighbors() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
vertexIdInput global vertex identifier.
localNeighborIdInput local neighbor identifier, in [0, getVertexNeighborNumber()].
neighborIdOutput global neighbor vertex identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getVertexNeighborNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1074 of file CompactTriangulation.h.

◆ getVertexNeighborNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexNeighborNumber ( const SimplexId vertexId) const
inlineoverridevirtual

Get the number of vertex neighbors for the vertexId-th vertex.

Precondition
For this function to behave correctly, preconditionVertexNeighbors() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
vertexIdInput global vertex identifier.
Returns
Returns the number vertex neighbors.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1107 of file CompactTriangulation.h.

◆ getVertexNeighbors()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexNeighbors ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of vertex neighbor identifiers for all vertices.

The number of entries in this list is equal to the number of vertices. Each entry is a std::vector of identifiers whose size is equal to the number of vertex neighbors for the corresponding vertex.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionVertexNeighbors() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the vertex neighbor list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1125 of file CompactTriangulation.h.

◆ getVertexPoint()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexPoint ( const SimplexId vertexId,
float &  x,
float &  y,
float &  z 
) const
inlineoverridevirtual

Get the point (3D coordinates) for the vertexId-th vertex.

Parameters
vertexIdInput global vertex identifier.
xOutput x coordinate.
yOutput y coordinate.
zOutput z coordinate.
Returns
Returns 0 upon success, negative values otherwise.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1141 of file CompactTriangulation.h.

◆ getVertexStar()

int TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexStar ( const SimplexId vertexId,
const int &  localStarId,
SimplexId starId 
) const
inlineoverridevirtual

Get the localStarId-th cell of the star of the vertexId-th vertex.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Precondition
For this function to behave correctly, preconditionVertexStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
vertexIdInput global vertex identifier.
localStarIdInput local star cell identifier, in [0, getVertexStarNumber()].
starIdOutput global star cell identifier.
Returns
Returns 0 upon success, negative values otherwise.
See also
getVertexStarNumber()

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1162 of file CompactTriangulation.h.

◆ getVertexStarNumber()

SimplexId TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexStarNumber ( const SimplexId vertexId) const
inlineoverridevirtual

Get the number of star cells for the vertexId-th vertex.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

Precondition
For this function to behave correctly, preconditionVertexStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
vertexIdInput global vertex identifier
Returns
Returns the number of star cells.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1192 of file CompactTriangulation.h.

◆ getVertexStars()

const std::vector< std::vector< SimplexId > > *TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::getVertexStars ( )
inlineoverridevirtual
Warning
YOU SHOULD NOT CALL THIS FUNCTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.

Get the list of star cell identifiers for all vertices.

Here the notion of cell refers to the simplicices of maximal dimension (3D: tetrahedra, 2D: triangles, 1D: edges).

The number of entries in this list is equal to the number of vertices. Each entry is a std::vector of identifiers whose size is equal to the number of star cells for the corresponding vertex.

In implicit mode, this function will force the creation of such a list (which will be time and memory consuming). THIS IS USUALLY A BAD IDEA.

Precondition
For this function to behave correctly, preconditionVertexStars() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Returns
Returns a pointer to the vertex star list.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1210 of file CompactTriangulation.h.

◆ getVertexTriangleInternal()

int ttk::CompactTriangulation::getVertexTriangleInternal ( const SimplexId vertexId,
const int &  localTriangleId,
SimplexId triangleId 
) const
inlineoverride

Definition at line 1225 of file CompactTriangulation.h.

◆ getVertexTriangleNumberInternal()

SimplexId ttk::CompactTriangulation::getVertexTriangleNumberInternal ( const SimplexId vertexId) const
inlineoverride

Definition at line 1255 of file CompactTriangulation.h.

◆ getVertexTrianglesInternal()

const std::vector< std::vector< SimplexId > > * ttk::CompactTriangulation::getVertexTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1273 of file CompactTriangulation.h.

◆ initCache()

void ttk::CompactTriangulation::initCache ( const float  ratio = 0.2)
inline

Initialize the cache with the ratio.

Definition at line 1499 of file CompactTriangulation.h.

◆ isEdgeOnBoundary()

bool TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::isEdgeOnBoundary ( const SimplexId edgeId) const
inlineoverridevirtual

Check if the edge with global identifier edgeId is on the boundary of the domain.

For 2D triangulations, this function will return true if the edge is a boundary edge. For 3D triangulations, this function will return true if the edge belongs to a boundary triangle.

Here the notion of edge only makes sense if the triangulation has a dimension greater than 1 (otherwise, use the cell information).

Precondition
For this function to behave correctly, preconditionBoundaryEdges() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
edgeIdInput global edge identifier.
Returns
Returns true if the edge is on the boundary, false otherwise.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1289 of file CompactTriangulation.h.

◆ isEmpty()

bool ttk::CompactTriangulation::isEmpty ( ) const
inlineoverridevirtual

Check if the data structure is empty or not.

Returns
Returns true if empty, false otherwise.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1302 of file CompactTriangulation.h.

◆ isTriangleOnBoundary()

bool TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::isTriangleOnBoundary ( const SimplexId triangleId) const
inlineoverridevirtual

Check if the triangle with global identifier triangleId is on the boundary of the domain.

Here the notion of triangle only makes sense if the triangulation has a dimension greater than 2 (otherwise, use the cell information).

For 2D triangulations, this function will return false all the time. For 3D triangulations, this function will return true if the triangle is a boundary triangle.

Precondition
For this function to behave correctly, preconditionBoundaryTriangles() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
triangleIdInput global triangle identifier.
Returns
Returns true if the triangle is on the boundary, false otherwise.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1306 of file CompactTriangulation.h.

◆ isVertexOnBoundary()

bool TTK_TRIANGULATION_INTERNAL() ttk::CompactTriangulation::isVertexOnBoundary ( const SimplexId vertexId) const
inlineoverridevirtual

Check if the vertex with global identifier vertexId is on the boundary of the domain.

For 2D triangulations, this function will return true if the vertex belongs to a boundary edge. For 3D triangulations, this function will return true if the vertex belongs to a boundary triangle.

Precondition
For this function to behave correctly, preconditionBoundaryVertices() needs to be called on this object prior to any traversal, in a clearly distinct pre-processing step that involves no traversal at all. An error will be returned otherwise.
Note
It is recommended to exclude such a preconditioning step from any time performance measurement.
Parameters
vertexIdInput global vertex identifier.
Returns
Returns true if the vertex is on the boundary, false otherwise.

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1322 of file CompactTriangulation.h.

◆ operator=() [1/2]

CompactTriangulation & ttk::CompactTriangulation::operator= ( CompactTriangulation &&  rhs)
default

◆ operator=() [2/2]

CompactTriangulation & CompactTriangulation::operator= ( const CompactTriangulation rhs)

Definition at line 24 of file CompactTriangulation.cpp.

◆ preconditionBoundaryEdgesInternal()

int ttk::CompactTriangulation::preconditionBoundaryEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1335 of file CompactTriangulation.h.

◆ preconditionBoundaryTrianglesInternal()

int ttk::CompactTriangulation::preconditionBoundaryTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1339 of file CompactTriangulation.h.

◆ preconditionBoundaryVerticesInternal()

int ttk::CompactTriangulation::preconditionBoundaryVerticesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1343 of file CompactTriangulation.h.

◆ preconditionCellEdgesInternal()

int ttk::CompactTriangulation::preconditionCellEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1352 of file CompactTriangulation.h.

◆ preconditionCellNeighborsInternal()

int ttk::CompactTriangulation::preconditionCellNeighborsInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1356 of file CompactTriangulation.h.

◆ preconditionCellTrianglesInternal()

int ttk::CompactTriangulation::preconditionCellTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1360 of file CompactTriangulation.h.

◆ preconditionEdgeLinksInternal()

int ttk::CompactTriangulation::preconditionEdgeLinksInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1401 of file CompactTriangulation.h.

◆ preconditionEdgesInternal()

int ttk::CompactTriangulation::preconditionEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1364 of file CompactTriangulation.h.

◆ preconditionEdgeStarsInternal()

int ttk::CompactTriangulation::preconditionEdgeStarsInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1405 of file CompactTriangulation.h.

◆ preconditionEdgeTrianglesInternal()

int ttk::CompactTriangulation::preconditionEdgeTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1409 of file CompactTriangulation.h.

◆ preconditionTriangleEdgesInternal()

int ttk::CompactTriangulation::preconditionTriangleEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1450 of file CompactTriangulation.h.

◆ preconditionTriangleLinksInternal()

int ttk::CompactTriangulation::preconditionTriangleLinksInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1454 of file CompactTriangulation.h.

◆ preconditionTrianglesInternal()

int ttk::CompactTriangulation::preconditionTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1413 of file CompactTriangulation.h.

◆ preconditionTriangleStarsInternal()

int ttk::CompactTriangulation::preconditionTriangleStarsInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1458 of file CompactTriangulation.h.

◆ preconditionVertexEdgesInternal()

int ttk::CompactTriangulation::preconditionVertexEdgesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1462 of file CompactTriangulation.h.

◆ preconditionVertexLinksInternal()

int ttk::CompactTriangulation::preconditionVertexLinksInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1466 of file CompactTriangulation.h.

◆ preconditionVertexNeighborsInternal()

int ttk::CompactTriangulation::preconditionVertexNeighborsInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1478 of file CompactTriangulation.h.

◆ preconditionVertexStarsInternal()

int ttk::CompactTriangulation::preconditionVertexStarsInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1482 of file CompactTriangulation.h.

◆ preconditionVertexTrianglesInternal()

int ttk::CompactTriangulation::preconditionVertexTrianglesInternal ( )
inlineoverridevirtual

Reimplemented from ttk::AbstractTriangulation.

Definition at line 1492 of file CompactTriangulation.h.

◆ reorderCells() [1/2]

int CompactTriangulation::reorderCells ( const std::vector< SimplexId > &  vertexMap,
const LongSimplexId cellArray 
)

Reorder the input cells.

Definition at line 163 of file CompactTriangulation.cpp.

◆ reorderCells() [2/2]

int CompactTriangulation::reorderCells ( const std::vector< SimplexId > &  vertexMap,
const SimplexId cellNumber,
const LongSimplexId connectivity,
const LongSimplexId offset 
)

Reorder the input cells.

Definition at line 113 of file CompactTriangulation.cpp.

◆ reorderVertices()

int CompactTriangulation::reorderVertices ( std::vector< SimplexId > &  vertexMap)

Reorder the input vertices.

Definition at line 46 of file CompactTriangulation.cpp.

◆ resetCache()

int ttk::CompactTriangulation::resetCache ( int  option)
inline

Reset the cache size to better fit in the parallel or sequential algorithms.

Definition at line 1521 of file CompactTriangulation.h.

◆ searchCache()

ImplicitCluster * ttk::CompactTriangulation::searchCache ( const SimplexId nodeId,
const SimplexId  reservedId = 0 
) const
inlineprotected

Search the node in the cache.

Definition at line 1572 of file CompactTriangulation.h.

◆ setInputCells()

int ttk::CompactTriangulation::setInputCells ( const SimplexId cellNumber,
const LongSimplexId cellArray 
)
inline

Set up cells from the input.

Definition at line 189 of file CompactTriangulation.h.

◆ setInputPoints()

int ttk::CompactTriangulation::setInputPoints ( const SimplexId pointNumber,
const void *  pointSet,
const int *  indexArray,
const bool &  doublePrecision = false 
)
inline

Set up vertices from the input.

Definition at line 105 of file CompactTriangulation.h.

Member Data Documentation

◆ cacheMaps_

std::vector< boost::unordered_map<SimplexId, std::list<ImplicitCluster>::iterator> > ttk::CompactTriangulation::cacheMaps_
mutableprotected

Definition at line 1725 of file CompactTriangulation.h.

◆ caches_

std::vector<std::list<ImplicitCluster> > ttk::CompactTriangulation::caches_
mutableprotected

Definition at line 1722 of file CompactTriangulation.h.

◆ cacheSize_

size_t ttk::CompactTriangulation::cacheSize_
protected

Definition at line 1721 of file CompactTriangulation.h.

◆ cellArray_

std::shared_ptr<CellArray> ttk::CompactTriangulation::cellArray_
protected

Definition at line 1717 of file CompactTriangulation.h.

◆ cellIntervals_

std::vector<SimplexId> ttk::CompactTriangulation::cellIntervals_
protected

Definition at line 1716 of file CompactTriangulation.h.

◆ cellNumber_

SimplexId ttk::CompactTriangulation::cellNumber_
protected

Definition at line 1710 of file CompactTriangulation.h.

◆ doublePrecision_

bool ttk::CompactTriangulation::doublePrecision_
protected

Protected class variables.

Definition at line 1708 of file CompactTriangulation.h.

◆ edgeIntervals_

std::vector<SimplexId> ttk::CompactTriangulation::edgeIntervals_
protected

Definition at line 1714 of file CompactTriangulation.h.

◆ externalCells_

std::vector<std::vector<SimplexId> > ttk::CompactTriangulation::externalCells_
protected

Definition at line 1718 of file CompactTriangulation.h.

◆ maxCellDim_

int ttk::CompactTriangulation::maxCellDim_
protected

Definition at line 1709 of file CompactTriangulation.h.

◆ nodeNumber_

SimplexId ttk::CompactTriangulation::nodeNumber_
protected

Definition at line 1710 of file CompactTriangulation.h.

◆ pointSet_

const void* ttk::CompactTriangulation::pointSet_
protected

Definition at line 1711 of file CompactTriangulation.h.

◆ triangleIntervals_

std::vector<SimplexId> ttk::CompactTriangulation::triangleIntervals_
protected

Definition at line 1715 of file CompactTriangulation.h.

◆ vertexIndices_

const int* ttk::CompactTriangulation::vertexIndices_
protected

Definition at line 1712 of file CompactTriangulation.h.

◆ vertexIntervals_

std::vector<SimplexId> ttk::CompactTriangulation::vertexIntervals_
protected

Definition at line 1713 of file CompactTriangulation.h.

◆ vertexNumber_

SimplexId ttk::CompactTriangulation::vertexNumber_
protected

Definition at line 1710 of file CompactTriangulation.h.


The documentation for this class was generated from the following files: