125 const int &localEdgeId,
131#ifndef TTK_ENABLE_KAMIKAZE
156#ifndef TTK_ENABLE_KAMIKAZE
191 inline const std::vector<std::vector<SimplexId>> *
getCellEdges()
override {
192#ifndef TTK_ENABLE_KAMIKAZE
201#ifndef TTK_ENABLE_KAMIKAZE
228 const int &localNeighborId,
233#ifndef TTK_ENABLE_KAMIKAZE
238 cellId, localNeighborId, neighborId);
258#ifndef TTK_ENABLE_KAMIKAZE
290 inline const std::vector<std::vector<SimplexId>> *
292#ifndef TTK_ENABLE_KAMIKAZE
322 const int &localTriangleId,
325#ifndef TTK_ENABLE_KAMIKAZE
333 cellId, localTriangleId, triangleId);
355#ifndef TTK_ENABLE_KAMIKAZE
393 inline const std::vector<std::vector<SimplexId>> *
395#ifndef TTK_ENABLE_KAMIKAZE
414 const int &localVertexId,
417#ifndef TTK_ENABLE_KAMIKAZE
426 cellId, localVertexId, vertexId);
438#ifndef TTK_ENABLE_KAMIKAZE
449#ifndef TTK_ENABLE_KAMIKAZE
480 inline const std::vector<std::array<SimplexId, 2>> *
getEdges()
override {
481#ifndef TTK_ENABLE_KAMIKAZE
500#ifndef TTK_ENABLE_KAMIKAZE
519 float incenter[3])
const {
520#ifndef TTK_ENABLE_KAMIKAZE
547 const int &localLinkId,
549#ifndef TTK_ENABLE_KAMIKAZE
574#ifndef TTK_ENABLE_KAMIKAZE
604 inline const std::vector<std::vector<SimplexId>> *
getEdgeLinks()
override {
605#ifndef TTK_ENABLE_KAMIKAZE
635 const int &localStarId,
637#ifndef TTK_ENABLE_KAMIKAZE
665#ifndef TTK_ENABLE_KAMIKAZE
700 inline const std::vector<std::vector<SimplexId>> *
getEdgeStars()
override {
701#ifndef TTK_ENABLE_KAMIKAZE
728 const int &localTriangleId,
731#ifndef TTK_ENABLE_KAMIKAZE
739 edgeId, localTriangleId, triangleId);
758#ifndef TTK_ENABLE_KAMIKAZE
790 inline const std::vector<std::vector<SimplexId>> *
792#ifndef TTK_ENABLE_KAMIKAZE
817 const int &localVertexId,
819#ifndef TTK_ENABLE_KAMIKAZE
827 edgeId, localVertexId, vertexId);
843#ifndef TTK_ENABLE_KAMIKAZE
865#ifndef TTK_ENABLE_KAMIKAZE
886#ifndef TTK_ENABLE_KAMIKAZE
898#ifndef TTK_ENABLE_KAMIKAZE
912#ifndef TTK_ENABLE_KAMIKAZE
943 inline const std::vector<std::array<SimplexId, 3>> *
945#ifndef TTK_ENABLE_KAMIKAZE
971 const int &localEdgeId,
973#ifndef TTK_ENABLE_KAMIKAZE
981 triangleId, localEdgeId, edgeId);
1000#ifndef TTK_ENABLE_KAMIKAZE
1032 inline const std::vector<std::vector<SimplexId>> *
1034#ifndef TTK_ENABLE_KAMIKAZE
1061 const int &localLinkId,
1063#ifndef TTK_ENABLE_KAMIKAZE
1071 triangleId, localLinkId, linkId);
1091#ifndef TTK_ENABLE_KAMIKAZE
1122 inline const std::vector<std::vector<SimplexId>> *
1124#ifndef TTK_ENABLE_KAMIKAZE
1152 const int &localStarId,
1154#ifndef TTK_ENABLE_KAMIKAZE
1162 triangleId, localStarId, starId);
1181#ifndef TTK_ENABLE_KAMIKAZE
1213 inline const std::vector<std::vector<SimplexId>> *
1215#ifndef TTK_ENABLE_KAMIKAZE
1240 const int &localVertexId,
1243#ifndef TTK_ENABLE_KAMIKAZE
1251 triangleId, localVertexId, vertexId);
1295 const int &localEdgeId,
1298#ifndef TTK_ENABLE_KAMIKAZE
1306 vertexId, localEdgeId, edgeId);
1325#ifndef TTK_ENABLE_KAMIKAZE
1358 inline const std::vector<std::vector<SimplexId>> *
1360#ifndef TTK_ENABLE_KAMIKAZE
1370#ifdef TTK_ENABLE_MPI
1384#ifndef TTK_ENABLE_KAMIKAZE
1402 inline std::unordered_map<SimplexId, SimplexId> &getVertexGlobalIdMap() {
1408 inline void setHasPreconditionedDistributedVertices(
bool flag)
override {
1412 inline bool hasPreconditionedDistributedCells()
const override {
1415 inline bool hasPreconditionedDistributedVertices()
const override {
1419 inline const std::vector<int> &getNeighborRanks()
const override {
1422 inline std::vector<int> &getNeighborRanks()
override {
1426 inline std::map<int, int> &getNeighborsToId()
override {
1430 inline const std::map<int, int> &getNeighborsToId()
const override {
1434 inline const std::vector<std::array<ttk::SimplexId, 6>> &
1435 getNeighborVertexBBoxes()
const override {
1439 inline const std::vector<std::vector<SimplexId>> &
1440 getGhostCellsPerOwner()
const override {
1444 inline const std::vector<std::vector<SimplexId>> &
1445 getRemoteGhostCells()
const override {
1449 inline int getVertexRank(
const SimplexId lvid)
const override {
1465#ifndef TTK_ENABLE_KAMIKAZE
1482 inline void createMetaGrid(
const double *
const bounds) {
1491 inline void setIsBoundaryPeriodic(std::array<unsigned char, 6> boundary) {
1504 inline int getDistributedGlobalCellId(
const ttk::SimplexId &localCellId,
1507#ifndef TTK_ENABLE_KAMIKAZE
1512 localCellId, cellDim, globalCellId);
1515 inline bool isOrderArrayGlobal(
const void *data)
const {
1519 inline void setIsOrderArrayGlobal(
const void *data,
bool flag) {
1545 const int &localLinkId,
1548#ifndef TTK_ENABLE_KAMIKAZE
1556 vertexId, localLinkId, linkId);
1576#ifndef TTK_ENABLE_KAMIKAZE
1607 inline const std::vector<std::vector<SimplexId>> *
1610#ifndef TTK_ENABLE_KAMIKAZE
1634 const int &localNeighborId,
1637#ifndef TTK_ENABLE_KAMIKAZE
1645 vertexId, localNeighborId, neighborId);
1662#ifndef TTK_ENABLE_KAMIKAZE
1692 inline const std::vector<std::vector<SimplexId>> *
1694#ifndef TTK_ENABLE_KAMIKAZE
1710 float &z)
const override {
1712#ifndef TTK_ENABLE_KAMIKAZE
1745 const int &localStarId,
1748#ifndef TTK_ENABLE_KAMIKAZE
1756 vertexId, localStarId, starId);
1775#ifndef TTK_ENABLE_KAMIKAZE
1807 inline const std::vector<std::vector<SimplexId>> *
1809#ifndef TTK_ENABLE_KAMIKAZE
1837 const int &localTriangleId,
1840#ifndef TTK_ENABLE_KAMIKAZE
1848 vertexId, localTriangleId, triangleId);
1868#ifndef TTK_ENABLE_KAMIKAZE
1900 inline const std::vector<std::vector<SimplexId>> *
1903#ifndef TTK_ENABLE_KAMIKAZE
1930#ifndef TTK_ENABLE_KAMIKAZE
1947#ifndef TTK_ENABLE_KAMIKAZE
1976#ifndef TTK_ENABLE_KAMIKAZE
2005#ifndef TTK_ENABLE_KAMIKAZE
2030#ifndef TTK_ENABLE_KAMIKAZE
2051#ifndef TTK_ENABLE_KAMIKAZE
2072#ifndef TTK_ENABLE_KAMIKAZE
2094#ifndef TTK_ENABLE_KAMIKAZE
2117#ifndef TTK_ENABLE_KAMIKAZE
2144#ifndef TTK_ENABLE_KAMIKAZE
2170#ifndef TTK_ENABLE_KAMIKAZE
2196#ifndef TTK_ENABLE_KAMIKAZE
2223#ifndef TTK_ENABLE_KAMIKAZE
2249#ifndef TTK_ENABLE_KAMIKAZE
2275#ifndef TTK_ENABLE_KAMIKAZE
2302#ifndef TTK_ENABLE_KAMIKAZE
2328#ifndef TTK_ENABLE_KAMIKAZE
2354#ifndef TTK_ENABLE_KAMIKAZE
2380#ifndef TTK_ENABLE_KAMIKAZE
2407#ifndef TTK_ENABLE_KAMIKAZE
2427#ifndef TTK_ENABLE_KAMIKAZE
2435#ifdef TTK_ENABLE_MPI
2453 inline int preconditionDistributedVertices()
override {
2455#ifndef TTK_ENABLE_KAMIKAZE
2462 inline int preconditionEdgeRankArray()
override {
2464#ifndef TTK_ENABLE_KAMIKAZE
2471 inline int preconditionTriangleRankArray()
override {
2473#ifndef TTK_ENABLE_KAMIKAZE
2480 inline int setVertexRankArray(
const int *rankArray)
override {
2484 inline int setCellRankArray(
const int *rankArray)
override {
2499 inline int preconditionGlobalBoundary()
override {
2500#ifndef TTK_ENABLE_KAMIKAZE
2517 inline int preconditionDistributedCells()
override {
2519#ifndef TTK_ENABLE_KAMIKAZE
2541 inline int preconditionExchangeGhostCells()
override {
2543#ifndef TTK_ENABLE_KAMIKAZE
2565 inline int preconditionExchangeGhostVertices()
override {
2567#ifndef TTK_ENABLE_KAMIKAZE
2594#ifndef TTK_ENABLE_KAMIKAZE
2621#ifndef TTK_ENABLE_KAMIKAZE
2647#ifndef TTK_ENABLE_KAMIKAZE
2674#ifndef TTK_ENABLE_KAMIKAZE
2701#ifdef TTK_CELL_ARRAY_NEW
2727 cellNumber, connectivity, offset);
2736 cellNumber, connectivity, offset);
2796 const float &yOrigin,
2797 const float &zOrigin,
2798 const float &xSpacing,
2799 const float &ySpacing,
2800 const float &zSpacing,
2811 xOrigin, yOrigin, zOrigin, xSpacing, ySpacing, zSpacing, xDim, yDim,
2814 xOrigin, yOrigin, zOrigin, xSpacing, ySpacing, zSpacing, xDim, yDim,
2817 xSpacing, ySpacing, zSpacing,
2820 xOrigin, yOrigin, zOrigin, xSpacing, ySpacing, zSpacing, xDim, yDim,
2844 this->
switchGrid(usePeriodicBoundaries, hasPreconditions);
2863 const auto useImplicitPreconditions
2871 this->
switchGrid(isPeriodic, useImplicitPreconditions);
2899 const void *pointSet,
2900 const bool &doublePrecision =
false) {
2905 pointNumber, pointSet, doublePrecision);
2909 const void *pointSet,
2910 const int *indexArray,
2911 const bool &doublePrecision =
false) {
2916 pointNumber, pointSet, indexArray, doublePrecision);
2949#ifdef TTK_ENABLE_MPI
2956 inline void setCellsGlobalIds(
const LongSimplexId *
const data) {
2962 inline void setVertexGhostArray(
const unsigned char *data) {
2965 inline void setCellGhostArray(
const unsigned char *data) {
2969 inline bool getIsMPIValid()
const {
2973 inline void setIsMPIValid(
bool flag) {
2979#ifdef TTK_ENABLE_MPI
2980 bool isMPIValid_{
true};
2984 printErr(
"Trying to access an empty data-structure!");
3005 void switchGrid(
const bool usePeriodic,
const bool usePreconditions);
AbstractTriangulation is an interface class that defines an interface for efficient traversal methods...
virtual const std::vector< std::vector< SimplexId > > * getVertexNeighbors()
virtual int preconditionEdgeStars()
virtual int getVertexPoint(const SimplexId &vertexId, float &x, float &y, float &z) const
virtual int preconditionBoundaryEdges()
virtual int getEdgeLink(const SimplexId &edgeId, const int &localLinkId, SimplexId &linkId) const
virtual SimplexId getVertexTriangleNumber(const SimplexId &vertexId) const
virtual const std::vector< std::vector< SimplexId > > * getCellNeighbors()
virtual int getVertexTriangle(const SimplexId &vertexId, const int &localTriangleId, SimplexId &triangleId) const
virtual int getVertexEdge(const SimplexId &vertexId, const int &localEdgeId, SimplexId &edgeId) const
int getCellIncenter(const SimplexId cellid, const int dim, float incenter[3]) const
virtual SimplexId getEdgeTriangleNumber(const SimplexId &edgeId) const
virtual int preconditionCellTriangles()
virtual bool isTriangleOnBoundary(const SimplexId &triangleId) const
virtual int preconditionTriangleLinks()
virtual const std::vector< std::vector< SimplexId > > * getVertexStars()
virtual const std::vector< std::vector< SimplexId > > * getEdgeStars()
bool hasPeriodicBoundaries_
virtual const std::vector< std::vector< SimplexId > > * getVertexLinks()
virtual int preconditionVertexStars()
virtual const std::vector< std::vector< SimplexId > > * getVertexTriangles()
virtual int getTriangleStar(const SimplexId &triangleId, const int &localStarId, SimplexId &starId) const
virtual SimplexId getVertexNeighborNumber(const SimplexId &vertexId) const
virtual int getEdgeTriangle(const SimplexId &edgeId, const int &localTriangleId, SimplexId &triangleId) const
virtual int getEdgeVertex(const SimplexId &edgeId, const int &localVertexId, SimplexId &vertexId) const
virtual int preconditionVertexEdges()
virtual int preconditionBoundaryVertices()
virtual int preconditionVertexNeighbors()
virtual int preconditionEdgeLinks()
virtual const std::vector< std::array< SimplexId, 2 > > * getEdges()
virtual int getTriangleEdge(const SimplexId &triangleId, const int &localEdgeId, SimplexId &edgeId) const
virtual int preconditionEdgeTriangles()
virtual SimplexId getTriangleLinkNumber(const SimplexId &triangleId) const
virtual bool isVertexOnBoundary(const SimplexId &vertexId) const
virtual const std::vector< std::vector< SimplexId > > * getTriangleLinks()
virtual SimplexId getCellEdgeNumber(const SimplexId &cellId) const
virtual bool isEdgeOnBoundary(const SimplexId &edgeId) const
virtual int preconditionManifold()
virtual int preconditionTriangleStars()
virtual const std::vector< std::vector< SimplexId > > * getEdgeTriangles()
virtual const std::vector< std::array< SimplexId, 3 > > * getTriangles()
virtual int getTriangleLink(const SimplexId &triangleId, const int &localLinkId, SimplexId &linkId) const
virtual int preconditionTriangleEdges()
virtual const std::vector< std::vector< SimplexId > > * getEdgeLinks()
virtual int preconditionEdges()
virtual SimplexId getNumberOfCells() const
virtual SimplexId getCellTriangleNumber(const SimplexId &cellId) const
virtual SimplexId getNumberOfVertices() const
virtual SimplexId getCellNeighborNumber(const SimplexId &cellId) const
virtual int getDimensionality() const
virtual int getCellEdge(const SimplexId &cellId, const int &localEdgeId, SimplexId &edgeId) const
virtual int getEdgeStar(const SimplexId &edgeId, const int &localStarId, SimplexId &starId) const
virtual int getVertexNeighbor(const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId) const
virtual SimplexId getEdgeLinkNumber(const SimplexId &edgeId) const
virtual const std::vector< std::vector< SimplexId > > * getVertexEdges()
virtual int preconditionVertexTriangles()
virtual int getVertexStar(const SimplexId &vertexId, const int &localStarId, SimplexId &starId) const
virtual SimplexId getTriangleStarNumber(const SimplexId &triangleId) const
virtual int getCellVertex(const SimplexId &cellId, const int &localVertexId, SimplexId &vertexId) const
virtual SimplexId getCellVertexNumber(const SimplexId &cellId) const
int getTriangleIncenter(const SimplexId triangleId, float incenter[3]) const
virtual const std::vector< std::vector< SimplexId > > * getTriangleStars()
std::array< SimplexId, 3 > gridDimensions_
virtual SimplexId getNumberOfTriangles() const
virtual int getTriangleVertex(const SimplexId &triangleId, const int &localVertexId, SimplexId &vertexId) const
virtual SimplexId getVertexStarNumber(const SimplexId &vertexId) const
virtual int getCellVTKID(const int &ttkId, int &vtkId) const
virtual int preconditionTriangles()
int getEdgeIncenter(const SimplexId edgeId, float incenter[3]) const
virtual int getCellTriangle(const SimplexId &cellId, const int &localTriangleId, SimplexId &triangleId) const
virtual const std::vector< std::vector< SimplexId > > * getTriangleEdges()
virtual int preconditionBoundaryTriangles()
virtual int preconditionCellNeighbors()
virtual SimplexId getVertexLinkNumber(const SimplexId &vertexId) const
virtual SimplexId getVertexEdgeNumber(const SimplexId &vertexId) const
virtual SimplexId getNumberOfEdges() const
virtual bool isManifold() const
size_t footprint(size_t size=0) const
virtual int preconditionCellEdges()
virtual const std::vector< std::vector< SimplexId > > * getCellTriangles()
int getTetraIncenter(const SimplexId tetraId, float incenter[3]) const
virtual SimplexId getTriangleEdgeNumber(const SimplexId &triangleId) const
virtual int getCellNeighbor(const SimplexId &cellId, const int &localNeighborId, SimplexId &neighborId) const
virtual int preconditionVertexLinks()
virtual int getVertexLink(const SimplexId &vertexId, const int &localLinkId, SimplexId &linkId) const
virtual SimplexId getEdgeStarNumber(const SimplexId &edgeId) const
virtual const std::vector< std::vector< SimplexId > > * getCellEdges()
virtual int setThreadNumber(const int threadNumber)
CompactTriangulation is a class implemented based on the TopoCluster data structure,...
int setInputCells(const SimplexId &cellNumber, const LongSimplexId *cellArray)
void initCache(const float ratio=0.2)
int setInputPoints(const SimplexId &pointNumber, const void *pointSet, const int *indexArray, const bool &doublePrecision=false)
int setWrapper(const Wrapper *wrapper) override
virtual int setDebugLevel(const int &debugLevel)
int printErr(const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
ExplicitTriangulation is a class that provides time efficient traversal methods on triangulations of ...
int setInputCells(const SimplexId &cellNumber, const LongSimplexId *cellArray)
int setInputPoints(const SimplexId &pointNumber, const void *pointSet, const bool &doublePrecision=false)
Implicit Triangulation class without preconditioning.
int setInputGrid(const float &xOrigin, const float &yOrigin, const float &zOrigin, const float &xSpacing, const float &ySpacing, const float &zSpacing, const SimplexId &xDim, const SimplexId &yDim, const SimplexId &zDim) override
Implicit Triangulation class with preconditioning.
int setInputGrid(const float &xOrigin, const float &yOrigin, const float &zOrigin, const float &xSpacing, const float &ySpacing, const float &zSpacing, const SimplexId &xDim, const SimplexId &yDim, const SimplexId &zDim) override
Periodic implicit Triangulation class without preconditioning.
Periodic implicit Triangulation class with preconditioning.
Triangulation is a class that provides time and memory efficient traversal methods on triangulations ...
const std::vector< std::vector< SimplexId > > * getCellEdges() override
int preconditionVertexNeighbors() override
ImplicitNoPreconditions implicitTriangulation_
int setDebugLevel(const int &debugLevel) override
Tune the debug level (default: 0)
int preconditionEdges() override
const std::vector< std::array< SimplexId, 2 > > * getEdges() override
SimplexId getVertexEdgeNumber(const SimplexId &vertexId) const override
const std::vector< std::vector< SimplexId > > * getEdgeStars() override
int getTriangleEdge(const SimplexId &triangleId, const int &localEdgeId, SimplexId &edgeId) const override
int setStellarInputPoints(const SimplexId &pointNumber, const void *pointSet, const int *indexArray, const bool &doublePrecision=false)
AbstractTriangulation * getData()
int getTriangleVertex(const SimplexId &triangleId, const int &localVertexId, SimplexId &vertexId) const override
int getEdgeLink(const SimplexId &edgeId, const int &localLinkId, SimplexId &linkId) const override
SimplexId getVertexStarNumber(const SimplexId &vertexId) const override
int preconditionEdgeStars() override
int preconditionCellNeighbors() override
CompactTriangulation compactTriangulation_
SimplexId getCellNeighborNumber(const SimplexId &cellId) const override
bool isVertexOnBoundary(const SimplexId &vertexId) const override
int setWrapper(const Wrapper *wrapper) override
const std::vector< std::vector< SimplexId > > * getEdgeLinks() override
bool hasImplicitPreconditions() const
Returns true if the grid uses preconditions.
SimplexId getCellEdgeNumber(const SimplexId &cellId) const override
ExplicitTriangulation explicitTriangulation_
int getEdgeTriangle(const SimplexId &edgeId, const int &localTriangleId, SimplexId &triangleId) const override
PeriodicNoPreconditions periodicImplicitTriangulation_
SimplexId getNumberOfEdges() const override
Triangulation::Type getType() const
int preconditionTriangles() override
const std::vector< std::vector< SimplexId > > * getVertexLinks() override
const std::vector< std::vector< SimplexId > > * getVertexEdges() override
const std::vector< std::vector< SimplexId > > * getCellTriangles() override
int preconditionTriangleLinks() override
SimplexId getTriangleLinkNumber(const SimplexId &triangleId) const override
int preconditionVertexEdges() override
int getVertexTriangle(const SimplexId &vertexId, const int &localTriangleId, SimplexId &triangleId) const override
int getCellVertex(const SimplexId &cellId, const int &localVertexId, SimplexId &vertexId) const override
const std::vector< std::vector< SimplexId > > * getVertexTriangles() override
SimplexId getCellVertexNumber(const SimplexId &cellId) const override
SimplexId getEdgeStarNumber(const SimplexId &edgeId) const override
SimplexId getNumberOfCells() const override
bool isManifold() const override
int getTriangleLink(const SimplexId &triangleId, const int &localLinkId, SimplexId &linkId) const override
int preconditionVertexLinks() override
~Triangulation() override
int setInputPoints(const SimplexId &pointNumber, const void *pointSet, const bool &doublePrecision=false)
void switchGrid(const bool usePeriodic, const bool usePreconditions)
Switch regular grid triangulation type.
const std::vector< std::vector< SimplexId > > * getTriangleEdges() override
AbstractTriangulation * abstractTriangulation_
int getVertexEdge(const SimplexId &vertexId, const int &localEdgeId, SimplexId &edgeId) const override
int setInputCells(const SimplexId &cellNumber, const LongSimplexId *cellArray)
bool isEdgeOnBoundary(const SimplexId &edgeId) const override
SimplexId getTriangleEdgeNumber(const SimplexId &triangleId) const override
int getEdgeIncenter(SimplexId edgeId, float incenter[3]) const
SimplexId getEdgeLinkNumber(const SimplexId &edgeId) const override
int getVertexPoint(const SimplexId &vertexId, float &x, float &y, float &z) const override
bool processImplicitStrategy(const STRATEGY strategy=STRATEGY::DEFAULT) const
Should we precondition the implicit/periodic triangulations?
int preconditionCellTriangles() override
int setStellarInputCells(const SimplexId &cellNumber, const LongSimplexId *cellArray)
bool isEmpty() const override
PeriodicWithPreconditions periodicPreconditionsTriangulation_
int preconditionBoundaryEdges() override
int getCellEdge(const SimplexId &cellId, const int &localEdgeId, SimplexId &edgeId) const override
int getCellIncenter(SimplexId cellId, int dim, float incenter[3]) const
const std::vector< std::vector< SimplexId > > * getVertexStars() override
int getEdgeVertex(const SimplexId &edgeId, const int &localVertexId, SimplexId &vertexId) const override
const std::vector< std::vector< SimplexId > > * getTriangleStars() override
int preconditionManifold() override
int getVertexStar(const SimplexId &vertexId, const int &localStarId, SimplexId &starId) const override
SimplexId getCellTriangleNumber(const SimplexId &cellId) const override
int getVertexNeighbor(const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId) const override
int preconditionTriangleStars() override
SimplexId getVertexLinkNumber(const SimplexId &vertexId) const override
const std::vector< std::vector< SimplexId > > * getEdgeTriangles() override
SimplexId getTriangleStarNumber(const SimplexId &triangleId) const override
ImplicitWithPreconditions implicitPreconditionsTriangulation_
int getTetraIncenter(SimplexId tetraId, float incenter[3]) const
int preconditionCellEdges() override
int getTriangleStar(const SimplexId &triangleId, const int &localStarId, SimplexId &starId) const override
int getDimensionality() const override
int preconditionVertexStars() override
SimplexId getVertexTriangleNumber(const SimplexId &vertexId) const override
SimplexId getEdgeTriangleNumber(const SimplexId &edgeId) const override
bool isEmptyCheck() const
int preconditionEdgeTriangles() override
int preconditionBoundaryTriangles() override
void setPeriodicBoundaryConditions(const bool &usePeriodicBoundaries)
int setInputGrid(const float &xOrigin, const float &yOrigin, const float &zOrigin, const float &xSpacing, const float &ySpacing, const float &zSpacing, const SimplexId &xDim, const SimplexId &yDim, const SimplexId &zDim)
int getCellTriangle(const SimplexId &cellId, const int &localTriangleId, SimplexId &triangleId) const override
int getEdgeStar(const SimplexId &edgeId, const int &localStarId, SimplexId &starId) const override
int getTriangleIncenter(SimplexId triangleId, float incenter[3]) const
int preconditionEdgeLinks() override
const std::vector< std::array< SimplexId, 3 > > * getTriangles() override
const std::vector< std::vector< SimplexId > > * getVertexNeighbors() override
int setThreadNumber(const ThreadId threadNumber) override
Tune the number of active threads (default: number of logical cores)
const std::vector< std::vector< SimplexId > > * getCellNeighbors() override
int getCellNeighbor(const SimplexId &cellId, const int &localNeighborId, SimplexId &neighborId) const override
int preconditionVertexTriangles() override
const std::vector< std::vector< SimplexId > > * getTriangleLinks() override
Triangulation & operator=(const Triangulation &)
SimplexId getNumberOfVertices() const override
int setCacheSize(const float &ratio)
int preconditionBoundaryVertices() override
SimplexId getNumberOfTriangles() const override
SimplexId getVertexNeighborNumber(const SimplexId &vertexId) const override
int preconditionTriangleEdges() override
int getCellVTKID(const int &ttkId, int &vtkId) const override
bool isTriangleOnBoundary(const SimplexId &triangleId) const override
void setImplicitPreconditions(const STRATEGY strategy)
Set the input grid preconditioning strategy.
int getVertexLink(const SimplexId &vertexId, const int &localLinkId, SimplexId &linkId) const override
Wrapper class to wrap ttk code.
long long int LongSimplexId
Identifier type for simplices of any dimension.
int ThreadId
Identifier type for threads (i.e. with OpenMP).
int SimplexId
Identifier type for simplices of any dimension.