35 int decimation)
const;
40 const int decimation)
const;
45 const int decimation)
const;
50 const int decimation)
const;
55 const int decimation)
const;
60 const int decimation)
const;
65 const int decimation)
const;
70 const int decimation)
const;
75 const int decimation)
const;
80 const int decimation)
const;
86 const int decimation)
const;
92 const int decimation)
const;
98 const int decimation)
const;
104 const int decimation)
const;
110 const int decimation)
const;
116 const int decimation)
const;
122 const int decimation)
const;
128 const int decimation)
const;
134 const int decimation)
const;
140 const int decimation)
const;
146 const int decimation)
const;
152 const int decimation)
const;
158 const int decimation)
const;
164 const int decimation)
const;
170 const int decimation)
const;
176 const int decimation)
const;
182 const int decimation)
const;
188 const int decimation)
const;
194 const int decimation)
const;
200 const int decimation)
const;
206 const int decimation)
const;
212 const int decimation)
const;
218 const int decimation)
const;
224 const int decimation)
const;
230 const int decimation)
const;
236 const int decimation)
const;
242 const int decimation)
const;
693 const std::array<SimplexId, 3> &p)
const;
800 std::array<SimplexId, 3> &p)
const;
802 std::array<SimplexId, 3> &p)
const;
807 return dimensionality_;
810 triangulation_ = triangulation;
814 for(
int i = 0; i < 3; i++) {
815 gridDimensions_[i] = gridDim[i];
816 nbvoxels_[i] = gridDimensions_[i] - 1;
819 if(dimensionality_ == 2) {
820 if(gridDimensions_[0] == 1) {
823 }
else if(gridDimensions_[1] == 1) {
830 vertexNumber_ = gridDimensions_[Di_] * gridDimensions_[Dj_];
831 vshift_[0] = gridDimensions_[Di_];
832 }
else if(dimensionality_ == 1) {
833 for(
int k = 0; k < 3; k++) {
834 if(gridDimensions_[k] > 1) {
839 vertexNumber_ = gridDimensions_[Di_];
840 }
else if(dimensionality_ == 3) {
844 vertexNumber_ = gridDimensions_[Di_] * gridDimensions_[Dj_]
845 * gridDimensions_[Dk_];
846 vshift_[0] = gridDimensions_[Di_];
847 vshift_[1] = gridDimensions_[Dj_] * gridDimensions_[Di_];
855 printErr(
"Empty input triangulation !");
870 return decimatedVertexNumber_;
873 return vertexNumber_;
879 return decimationLevel_;
883 decimationLevel_ = decimationLevel;
884 decimation_ = pow(2, decimationLevel_);
894 int xDim = gridDimensions_[0];
895 int yDim = gridDimensions_[1];
896 int zDim = gridDimensions_[2];
897 if(decimation_ > 1) {
898 xDim = ((xDim - 1) % decimation_) ? ((xDim - 1) / decimation_ + 2)
899 : ((xDim - 1) / decimation_ + 1);
901 yDim = ((yDim - 1) % decimation_) ? ((yDim - 1) / decimation_ + 2)
902 : ((yDim - 1) / decimation_ + 1);
904 zDim = ((zDim - 1) % decimation_) ? ((zDim - 1) / decimation_ + 2)
905 : ((zDim - 1) / decimation_ + 1);
907 gridDecimatedDimensions_[0] = xDim;
908 gridDecimatedDimensions_[1] = yDim;
909 gridDecimatedDimensions_[2] = zDim;
910 decimatedVertexNumber_ = xDim * yDim * zDim;
920 std::vector<int> dimensions(3);
921 dimensions[0] = gridDimensions_[0];
922 dimensions[1] = gridDimensions_[1];
923 dimensions[2] = gridDimensions_[2];
928 return triangulation_;
939 std::vector<SimplexId> &boundaryRepresentatives);
943 enum class VertexPosition :
char {
960 BOTTOM_LEFT_CORNER_2D,
961 BOTTOM_RIGHT_CORNER_2D,
981 TOP_LEFT_FRONT_CORNER_3D,
982 TOP_RIGHT_FRONT_CORNER_3D,
983 BOTTOM_LEFT_FRONT_CORNER_3D,
984 BOTTOM_RIGHT_FRONT_CORNER_3D,
985 TOP_LEFT_BACK_CORNER_3D,
986 TOP_RIGHT_BACK_CORNER_3D,
987 BOTTOM_LEFT_BACK_CORNER_3D,
988 BOTTOM_RIGHT_BACK_CORNER_3D,
991 BOTTOM_FRONT_EDGE_3D,
1000 BOTTOM_LEFT_EDGE_3D,
1001 BOTTOM_RIGHT_EDGE_3D,
1015 std::vector<VertexPosition> vertexPositions_{};
1017 std::vector<std::array<SimplexId, 3>> vertexCoords_{};
1019 std::vector<std::array<SimplexId, 3>> vertexShifts_{};
1021 int dimensionality_;
1024 int decimatedVertexNumber_;
1025 int decimationLevel_;
1027 int gridDimensions_[3];
1028 int gridDecimatedDimensions_[3];
1033 ImplicitTriangulation *triangulation_;
1040 for(
SimplexId i = 0; i < neighborNumber; i++) {
1043 if(neighborId == vertexId1) {
Minimalist debugging class.
int printErr(const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
ImplicitTriangulation is a class that provides time and memory efficient traversal methods on triangu...
int TTK_TRIANGULATION_INTERNAL() getDimensionality() const override
const std::array< SimplexId, 3 > & getGridDimensions() const override
int getDecimatedVertexNumber() const
void getInvertedLocalNeighborFH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationFH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimation2dCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void getImpactedVerticesFH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationABCDEFGH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesABCDEFGH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void vertexToPosition(const SimplexId vertex, std::array< SimplexId, 3 > &p) const
SimplexId getVertexNeighborAtDecimationBF(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesF(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertedVertexNeighborABCDEFGH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, SimplexId &invertedLocalNeighbor) const
ImplicitTriangulation * getTriangulation() const
void getInvertedLocalNeighborAE(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationAEGC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertedLocalNeighbor2dA(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVertices(SimplexId vertexId, SimplexId v0[3], SimplexId v1[3])
void getImpactedVerticesAEGC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborE(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
SimplexId getVertexNeighborAtDecimation(const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId, int decimation) const
SimplexId getVertexNeighborAtDecimationAEFB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighbor2dA(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighborBFHD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborABDC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dAC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
int getDecimation() const
SimplexId getVertexNeighborAtDecimation2dBD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
SimplexId getVertexNeighborAtDecimation2dB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
SimplexId getVertexNeighborAtDecimationAB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
bool areVerticesNeighbors(const SimplexId, const SimplexId) const
SimplexId getVertexNeighborAtDecimationBD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getInvertedLocalNeighborAB(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationF(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimationEG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedVertexNeighbor2dABCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborAEGC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborBFHD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborDH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborAB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationGHDC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborGH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborABCDEFGH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationDH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighbor2dBD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAtDecimationCG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborCG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighbor2dAB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighbor2dB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
void getInvertedLocalNeighborA(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighbor2dAB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
void getImpactedVerticesAEFB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
bool isInTriangulation(const SimplexId vertexId) const
SimplexId getInvertVertexNeighborEF(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dAB(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborE(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesGHDC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
int preconditionVerticesInternal()
Precondition vertices.
SimplexId getVertexNeighborAtDecimationH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimationGH(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
int getInteriorInvertedVertexNeighbor(SimplexId, SimplexId, SimplexId &, SimplexId &) const
void getImpactedVerticesA(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighbor2dAC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId localToGlobalVertexId(const SimplexId localId) const
void getImpactedVerticesEG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationE(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborAtDecimation2dD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void getInvertedLocalNeighborEG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationEFHG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesBD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getInvertedLocalNeighborCD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborCG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborBF(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesCG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
~MultiresTriangulation() override
void getImpactedVerticesGH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesDH(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborFH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
int getVertexBoundaryIndex(const SimplexId) const
void getInvertedLocalNeighborEF(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
int setDebugLevel(const int &debugLevel) override
void getImpactedVerticesEFHG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborBF(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
void getImpactedVerticesError(const int prev_decim, const std::array< SimplexId, 3 > &p) const
std::vector< SimplexId > getExtendedStar(const SimplexId &vertexId) const
int getDimensionality() const
int getVertexNumber() const
void computeDecimatedDimensions()
SimplexId getVertexNeighborAtDecimation2dA(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
std::vector< int > getGridDimensions() const
SimplexId getVertexNeighborAtDecimationB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertedLocalNeighbor2dAC(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVerticesB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
int computeVerticesShifts()
void getImpactedVerticesBFHD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborABCDEFGH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dABCD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void setTriangulation(ImplicitTriangulation *triangulation)
SimplexId getVertexNeighborAB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborEG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void getImpactedVerticesD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dD(SimplexId id, SimplexId &invertedLocalNeighbor) const
int getDecimationLevel() const
SimplexId getVertexNeighborAEGC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborEG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dA(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
void getInvertedLocalNeighborGHDC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationEF(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborCG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAE(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationBFHD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertedLocalNeighbor2dC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborAtDecimationA(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighborGHDC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborGH(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborFH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborAEFB(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborF(SimplexId id, SimplexId &invertedLocalNeighbor) const
void vertexToPosition2d(const SimplexId vertex, std::array< SimplexId, 3 > &p) const
SimplexId getInvertVertexNeighborBD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesAC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
bool isBoundaryImpacted(SimplexId) const
void getInvertedLocalNeighborB(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborABDC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborBD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborAE(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void setDecimationLevel(int decimationLevel)
int getVertexNeighbor(const SimplexId &vertexId, const int &localNeighborId, SimplexId &neighborId) const
void getImpactedVerticesG(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighbor2dAC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAEFB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimation2dAB(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const int decimation) const
void getImpactedVertices2dCD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighbor2dCD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighbor2dD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAtDecimationG(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborDH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborA(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
char localNeighborId(SimplexId neighborId, SimplexId vertexId)
void getInvertedLocalNeighborBF(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertedLocalNeighbor2dBD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getInvertedLocalNeighborEFHG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborF(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborA(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborGHDC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dB(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVerticesABDC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborGH(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertedLocalNeighbor2dCD(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighbor2dCD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborB(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesCD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborAEFB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborEF(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighborAtDecimationAC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getInvertVertexNeighbor2dC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
void getImpactedVertices2dAC(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborAtDecimationD(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborBFHD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborBD(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getVertexNeighborNumber(const SimplexId &vertexId) const
void getInvertedLocalNeighborG(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighborDH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborD(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVertices2dAB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesE(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborEFHG(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getInvertVertexNeighborCD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
SimplexId getVertexNeighbor2dABCD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getInvertVertexNeighborB(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesAB(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVertices2dABCD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighborF(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void findBoundaryRepresentatives(std::vector< SimplexId > &boundaryRepresentatives)
SimplexId getVertexNeighborAtDecimationABDC(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
SimplexId getVertexNeighborCD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
int getInvertVertexNeighbor(const SimplexId &vertexId, const SimplexId &neighborId, SimplexId &localNeighborId) const
SimplexId getVertexNeighbor2dBD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborABDC(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborE(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVertices2dBD(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborAC(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getImpactedVerticesEF(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getVertexNeighbor2dD(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborEFHG(const SimplexId v, const int id, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
void getInvertedLocalNeighborAEGC(SimplexId id, SimplexId &invertedLocalNeighbor) const
SimplexId getInvertVertexNeighbor2dABCD(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY) const
SimplexId getVertexNeighborAtDecimationAE(const SimplexId v, const int id, const SimplexId shiftX, const SimplexId shiftY, const SimplexId shiftZ, const int decimation) const
void computeCoarsestDecimationLevel()
void getInvertedLocalNeighborAC(SimplexId id, SimplexId &invertedLocalNeighbor) const
void getImpactedVerticesBF(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
void getImpactedVerticesAE(std::array< SimplexId, 3 > &p, SimplexId &localNeighborId0, SimplexId &localNeighborId1) const
SimplexId getInvertVertexNeighborH(const SimplexId v, const SimplexId neighborId, SimplexId shiftX, SimplexId shiftY, SimplexId shiftZ) const
int SimplexId
Identifier type for simplices of any dimension.