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 const std::vector<std::array<ttk::SimplexId, 6>> &
1427 getNeighborVertexBBoxes()
const override {
1431 inline const std::vector<std::vector<SimplexId>> &
1432 getGhostCellsPerOwner()
const override {
1436 inline const std::vector<std::vector<SimplexId>> &
1437 getRemoteGhostCells()
const override {
1441 inline int getVertexRank(
const SimplexId lvid)
const override {
1457#ifndef TTK_ENABLE_KAMIKAZE
1474 inline void createMetaGrid(
const double *
const bounds) {
1483 inline void setIsBoundaryPeriodic(std::array<unsigned char, 6> boundary) {
1496 inline int getDistributedGlobalCellId(
const ttk::SimplexId &localCellId,
1499#ifndef TTK_ENABLE_KAMIKAZE
1504 localCellId, cellDim, globalCellId);
1529 const int &localLinkId,
1532#ifndef TTK_ENABLE_KAMIKAZE
1540 vertexId, localLinkId, linkId);
1560#ifndef TTK_ENABLE_KAMIKAZE
1591 inline const std::vector<std::vector<SimplexId>> *
1594#ifndef TTK_ENABLE_KAMIKAZE
1618 const int &localNeighborId,
1621#ifndef TTK_ENABLE_KAMIKAZE
1629 vertexId, localNeighborId, neighborId);
1646#ifndef TTK_ENABLE_KAMIKAZE
1676 inline const std::vector<std::vector<SimplexId>> *
1678#ifndef TTK_ENABLE_KAMIKAZE
1694 float &z)
const override {
1696#ifndef TTK_ENABLE_KAMIKAZE
1729 const int &localStarId,
1732#ifndef TTK_ENABLE_KAMIKAZE
1740 vertexId, localStarId, starId);
1759#ifndef TTK_ENABLE_KAMIKAZE
1791 inline const std::vector<std::vector<SimplexId>> *
1793#ifndef TTK_ENABLE_KAMIKAZE
1821 const int &localTriangleId,
1824#ifndef TTK_ENABLE_KAMIKAZE
1832 vertexId, localTriangleId, triangleId);
1852#ifndef TTK_ENABLE_KAMIKAZE
1884 inline const std::vector<std::vector<SimplexId>> *
1887#ifndef TTK_ENABLE_KAMIKAZE
1914#ifndef TTK_ENABLE_KAMIKAZE
1931#ifndef TTK_ENABLE_KAMIKAZE
1960#ifndef TTK_ENABLE_KAMIKAZE
1989#ifndef TTK_ENABLE_KAMIKAZE
2014#ifndef TTK_ENABLE_KAMIKAZE
2035#ifndef TTK_ENABLE_KAMIKAZE
2056#ifndef TTK_ENABLE_KAMIKAZE
2078#ifndef TTK_ENABLE_KAMIKAZE
2101#ifndef TTK_ENABLE_KAMIKAZE
2128#ifndef TTK_ENABLE_KAMIKAZE
2154#ifndef TTK_ENABLE_KAMIKAZE
2180#ifndef TTK_ENABLE_KAMIKAZE
2207#ifndef TTK_ENABLE_KAMIKAZE
2233#ifndef TTK_ENABLE_KAMIKAZE
2259#ifndef TTK_ENABLE_KAMIKAZE
2286#ifndef TTK_ENABLE_KAMIKAZE
2312#ifndef TTK_ENABLE_KAMIKAZE
2338#ifndef TTK_ENABLE_KAMIKAZE
2364#ifndef TTK_ENABLE_KAMIKAZE
2391#ifndef TTK_ENABLE_KAMIKAZE
2411#ifndef TTK_ENABLE_KAMIKAZE
2419#ifdef TTK_ENABLE_MPI
2437 inline int preconditionDistributedVertices()
override {
2439#ifndef TTK_ENABLE_KAMIKAZE
2446 inline int preconditionEdgeRankArray()
override {
2448#ifndef TTK_ENABLE_KAMIKAZE
2455 inline int preconditionTriangleRankArray()
override {
2457#ifndef TTK_ENABLE_KAMIKAZE
2464 inline int setVertexRankArray(
const int *rankArray)
override {
2468 inline int setCellRankArray(
const int *rankArray)
override {
2483 inline int preconditionGlobalBoundary()
override {
2484#ifndef TTK_ENABLE_KAMIKAZE
2501 inline int preconditionDistributedCells()
override {
2503#ifndef TTK_ENABLE_KAMIKAZE
2525 inline int preconditionExchangeGhostCells()
override {
2527#ifndef TTK_ENABLE_KAMIKAZE
2549 inline int preconditionExchangeGhostVertices()
override {
2551#ifndef TTK_ENABLE_KAMIKAZE
2578#ifndef TTK_ENABLE_KAMIKAZE
2605#ifndef TTK_ENABLE_KAMIKAZE
2631#ifndef TTK_ENABLE_KAMIKAZE
2658#ifndef TTK_ENABLE_KAMIKAZE
2685#ifdef TTK_CELL_ARRAY_NEW
2711 cellNumber, connectivity, offset);
2720 cellNumber, connectivity, offset);
2780 const float &yOrigin,
2781 const float &zOrigin,
2782 const float &xSpacing,
2783 const float &ySpacing,
2784 const float &zSpacing,
2795 xOrigin, yOrigin, zOrigin, xSpacing, ySpacing, zSpacing, xDim, yDim,
2798 xOrigin, yOrigin, zOrigin, xSpacing, ySpacing, zSpacing, xDim, yDim,
2801 xSpacing, ySpacing, zSpacing,
2804 xOrigin, yOrigin, zOrigin, xSpacing, ySpacing, zSpacing, xDim, yDim,
2828 this->
switchGrid(usePeriodicBoundaries, hasPreconditions);
2847 const auto useImplicitPreconditions
2855 this->
switchGrid(isPeriodic, useImplicitPreconditions);
2883 const void *pointSet,
2884 const bool &doublePrecision =
false) {
2889 pointNumber, pointSet, doublePrecision);
2893 const void *pointSet,
2894 const int *indexArray,
2895 const bool &doublePrecision =
false) {
2900 pointNumber, pointSet, indexArray, doublePrecision);
2933#ifdef TTK_ENABLE_MPI
2940 inline void setCellsGlobalIds(
const LongSimplexId *
const data) {
2946 inline void setVertexGhostArray(
const unsigned char *data) {
2949 inline void setCellGhostArray(
const unsigned char *data) {
2953 inline bool getIsMPIValid()
const {
2957 inline void setIsMPIValid(
bool flag) {
2963#ifdef TTK_ENABLE_MPI
2964 bool isMPIValid_{
true};
2968 printErr(
"Trying to access an empty data-structure!");
2989 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.