WTFIT
|
ThreeSkeleton processing package. More...
#include <ThreeSkeleton.h>
Public Member Functions | |
ThreeSkeleton () | |
~ThreeSkeleton () | |
int | buildCellEdges (const int &vertexNumber, const int &cellNumber, const long long int *cellArray, vector< vector< int > > &cellEdges, vector< pair< int, int > > *edgeList=NULL, vector< vector< int > > *vertexEdges=NULL) const |
int | buildCellNeighborsFromTriangles (const int &vertexNumber, const int &cellNumber, const long long int *cellArray, vector< vector< int > > &cellNeighbors, vector< vector< int > > *triangleStars=NULL) const |
int | buildCellNeighborsFromVertices (const int &vertexNumber, const int &cellNumber, const long long int *cellArray, vector< vector< int > > &cellNeighbors, vector< vector< int > > *vertexStars=NULL) const |
![]() | |
Debug () | |
virtual | ~Debug () |
virtual const int | dMsg (ostream &stream, string msg, const int &debugLevel=infoMsg) const |
const int | err (const string msg, const int &debugLevel=infoMsg) const |
const int | msg (const char *msg, const int &debugLevel=infoMsg) const |
virtual const int | setDebugLevel (const int &debugLevel) |
int | setThreadNumber (const int threadNumber) |
int | setWrapper (const Wrapper *wrapper) |
Additional Inherited Members | |
![]() | |
enum | debugPriority { fatalMsg, timeMsg, memoryMsg, infoMsg, detailedInfoMsg, advancedInfoMsg } |
![]() | |
bool | lastObject_ |
int | debugLevel_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
ThreeSkeleton processing package.
ThreeSkeleton is a processing package that handles the 3-skeleton (tetrahedra) of a triangulation.
ThreeSkeleton::ThreeSkeleton | ( | ) |
ThreeSkeleton::~ThreeSkeleton | ( | ) |
int ThreeSkeleton::buildCellEdges | ( | const int & | vertexNumber, |
const int & | cellNumber, | ||
const long long int * | cellArray, | ||
vector< vector< int > > & | cellEdges, | ||
vector< pair< int, int > > * | edgeList = NULL , |
||
vector< vector< int > > * | vertexEdges = NULL |
||
) | const |
Compute the list of edges of each cell of a triangulation.
vertexNumber | Number of vertices in the triangulation. |
cellNumber | Number of maximum-dimensional cells in the triangulation (number of tetrahedra in 3D, triangles in 2D, etc.) |
cellArray | Pointer to a contiguous array of cells. Each entry starts by the number of vertices in the cell, followed by the vertex identifiers of the cell. |
cellEdges | Output edge lists. The size of this vector will be equal to the number of cells in the mesh. Each entry will be a vector listing the edge identifiers of the entry's cell's edges. |
edgeList | Optional list of edges. If NULL, the function will compute this list anyway and free the related memory upon return. If not NULL but pointing to an empty vector, the function will fill this empty vector (useful if this list needs to be used later on by the calling program). If not NULL but pointing to a non-empty vector, this function will use this vector as internal edge list. If this vector is not empty but incorrect, the behavior is unspecified. |
vertexEdges | Optional list of edges for each vertex. If NULL, the function will compute this list anyway and free the related memory upon return. If not NULL but pointing to an empty vector, the function will fill this empty vector (useful if this list needs to be used later on by the calling program). If not NULL but pointing to a non-empty vector, this function will use this vector as internal vertex edge list. If this vector is not empty but incorrect, the behavior is unspecified. |
int ThreeSkeleton::buildCellNeighborsFromTriangles | ( | const int & | vertexNumber, |
const int & | cellNumber, | ||
const long long int * | cellArray, | ||
vector< vector< int > > & | cellNeighbors, | ||
vector< vector< int > > * | triangleStars = NULL |
||
) | const |
Compute the list of cell-neighbors of each cell of a triangulation (unspecified behavior if the input mesh is not a triangulation). This implementation is fast only if you already have the triangle stars computed. Otherwise, please use ThreeSkeleton::buildCellNeighborsFromVertices instead.
vertexNumber | Number of vertices in the triangulation. |
cellNumber | Number of maximum-dimensional cells in the triangulation (number of tetrahedra in 3D, triangles in 2D, etc.) |
cellArray | Pointer to a contiguous array of cells. Each entry starts by the number of vertices in the cell, followed by the vertex identifiers of the cell. |
cellNeighbors | Output neighbor list. The size of this vector will be equal to the number of cells in the mesh. Each entry will be a vector listing the cell identifiers of the entry's cell's neighbors. |
triangleStars | Optional list of triangle stars (list of 3-dimensional cells connected to each triangle). If NULL, the function will compute this list anyway and free the related memory upon return. If not NULL but pointing to an empty vector, the function will fill this empty vector (useful if this list needs to be used later on by the calling program). If not NULL but pointing to a non-empty vector, this function will use this vector as internal triangle star list. If this vector is not empty but incorrect, the behavior is unspecified. |
int ThreeSkeleton::buildCellNeighborsFromVertices | ( | const int & | vertexNumber, |
const int & | cellNumber, | ||
const long long int * | cellArray, | ||
vector< vector< int > > & | cellNeighbors, | ||
vector< vector< int > > * | vertexStars = NULL |
||
) | const |
Compute the list of cell-neighbors of each cell of a triangulation (unspecified behavior if the input mesh is not a triangulation).
vertexNumber | Number of vertices in the triangulation. |
cellNumber | Number of maximum-dimensional cells in the triangulation (number of tetrahedra in 3D, triangles in 2D, etc.) |
cellArray | Pointer to a contiguous array of cells. Each entry starts by the number of vertices in the cell, followed by the vertex identifiers of the cell. |
cellNeighbors | Output neighbor list. The size of this vector will be equal to the number of cells in the mesh. Each entry will be a vector listing the cell identifiers of the entry's cell's neighbors. |
vertexStars | Optional list of vertex stars (list of 3-dimensional cells connected to each vertex). If NULL, the function will compute this list anyway and free the related memory upon return. If not NULL but pointing to an empty vector, the function will fill this empty vector (useful if this list needs to be used later on by the calling program). If not NULL but pointing to a non-empty vector, this function will use this vector as internal vertex star list. If this vector is not empty but incorrect, the behavior is unspecified. |