TTK
Loading...
Searching...
No Matches
TwoSkeleton.h
Go to the documentation of this file.
1
12
13#pragma once
14
15// base code includes
16#include <Debug.h>
17#include <ZeroSkeleton.h>
18
19#include <algorithm>
20#include <array>
21
22namespace ttk {
23
24 class TwoSkeleton : public Debug {
25
26 public:
28
40 int buildCellNeighborsFromEdges(const CellArray &cellArray,
41 FlatJaggedArray &cellNeighbors,
42 const FlatJaggedArray &edgeStars) const;
43
63 int buildCellNeighborsFromVertices(const SimplexId &vertexNumber,
64 const CellArray &cellArray,
65 FlatJaggedArray &cellNeighbors,
66 FlatJaggedArray *vertexStars
67 = nullptr) const;
68
91 int
92 buildEdgeTriangles(const SimplexId &vertexNumber,
93 const CellArray &cellArray,
94 FlatJaggedArray &edgeTriangleList,
95 const std::vector<std::array<SimplexId, 2>> &edgeList,
96 std::vector<std::array<SimplexId, 3>> *triangleEdgeList
97 = nullptr) const;
98
113 const SimplexId &vertexNumber,
114 const CellArray &cellArray,
115 std::vector<std::array<SimplexId, 3>> *triangleList = nullptr,
116 FlatJaggedArray *triangleStars = nullptr,
117 std::vector<std::array<SimplexId, 4>> *cellTriangleList = nullptr) const;
118
170 const SimplexId &vertexNumber,
171 const CellArray &cellArray,
172 std::vector<std::array<SimplexId, 3>> &triangleEdgeList,
173 const std::vector<std::array<SimplexId, 2>> &edgeList,
174 FlatJaggedArray *vertexEdgeList = nullptr,
175 std::vector<std::array<SimplexId, 3>> *triangleList = nullptr,
176 FlatJaggedArray *triangleStarList = nullptr,
177 std::vector<std::array<SimplexId, 4>> *cellTriangleList = nullptr) const;
178
195 const std::vector<std::array<SimplexId, 3>> &triangleList,
196 const FlatJaggedArray &triangleStars,
197 const CellArray &cellArray,
198 FlatJaggedArray &triangleLinks) const;
199
209 const SimplexId &vertexNumber,
210 const std::vector<std::array<SimplexId, 3>> &triangleList,
211 FlatJaggedArray &vertexTriangles) const;
212 };
213} // namespace ttk
CellArray generic array of cells
Minimalist debugging class.
Definition: Debug.h:88
Replacement for std::vector<std::vector<SimplexId>>
TwoSkeleton processing package.
Definition: TwoSkeleton.h:24
int buildTriangleEdgeList(const SimplexId &vertexNumber, const CellArray &cellArray, std::vector< std::array< SimplexId, 3 > > &triangleEdgeList, const std::vector< std::array< SimplexId, 2 > > &edgeList, FlatJaggedArray *vertexEdgeList=nullptr, std::vector< std::array< SimplexId, 3 > > *triangleList=nullptr, FlatJaggedArray *triangleStarList=nullptr, std::vector< std::array< SimplexId, 4 > > *cellTriangleList=nullptr) const
int buildVertexTriangles(const SimplexId &vertexNumber, const std::vector< std::array< SimplexId, 3 > > &triangleList, FlatJaggedArray &vertexTriangles) const
int buildCellNeighborsFromEdges(const CellArray &cellArray, FlatJaggedArray &cellNeighbors, const FlatJaggedArray &edgeStars) const
Definition: TwoSkeleton.cpp:10
int buildTriangleLinks(const std::vector< std::array< SimplexId, 3 > > &triangleList, const FlatJaggedArray &triangleStars, const CellArray &cellArray, FlatJaggedArray &triangleLinks) const
int buildTriangleList(const SimplexId &vertexNumber, const CellArray &cellArray, std::vector< std::array< SimplexId, 3 > > *triangleList=nullptr, FlatJaggedArray *triangleStars=nullptr, std::vector< std::array< SimplexId, 4 > > *cellTriangleList=nullptr) const
int buildEdgeTriangles(const SimplexId &vertexNumber, const CellArray &cellArray, FlatJaggedArray &edgeTriangleList, const std::vector< std::array< SimplexId, 2 > > &edgeList, std::vector< std::array< SimplexId, 3 > > *triangleEdgeList=nullptr) const
int buildCellNeighborsFromVertices(const SimplexId &vertexNumber, const CellArray &cellArray, FlatJaggedArray &cellNeighbors, FlatJaggedArray *vertexStars=nullptr) const
Definition: TwoSkeleton.cpp:65
The Topology ToolKit.
int SimplexId
Identifier type for simplices of any dimension.
Definition: DataTypes.h:22