libigl v2.5.0
|
Classes | |
struct | CDTParam |
Parameters for controling the CDT. More... | |
Functions | |
template<typename DerivedV , typename DerivedF , typename DerivedTV , typename DerivedTT , typename DerivedTF > | |
bool | cdt (const Eigen::PlainObjectBase< DerivedV > &V, const Eigen::PlainObjectBase< DerivedF > &F, const CDTParam ¶m, Eigen::PlainObjectBase< DerivedTV > &TV, Eigen::PlainObjectBase< DerivedTT > &TT, Eigen::PlainObjectBase< DerivedTF > &TF) |
Create a constrained delaunay tessellation containing convex hull of the given non-selfintersecting mesh. | |
template<typename DerivedV , typename DerivedF , typename DerivedH , typename DerivedVM , typename DerivedFM , typename DerivedR > | |
void | mesh_to_tetgenio (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedH > &H, const Eigen::MatrixBase< DerivedVM > &VM, const Eigen::MatrixBase< DerivedFM > &FM, const Eigen::MatrixBase< DerivedR > &R, tetgenio &in) |
Load a vertex list and face list into a tetgenio object. | |
bool | mesh_with_skeleton (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, const Eigen::MatrixXd &C, const Eigen::VectorXi &, const Eigen::MatrixXi &BE, const Eigen::MatrixXi &CE, const int samples_per_bone, const std::string &tetgen_flags, Eigen::MatrixXd &VV, Eigen::MatrixXi &TT, Eigen::MatrixXi &FF) |
Mesh the interior of a given surface with tetrahedra which are graded (tend to be small near the surface and large inside) and conform to the given handles and samplings thereof. | |
bool | mesh_with_skeleton (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, const Eigen::MatrixXd &C, const Eigen::VectorXi &, const Eigen::MatrixXi &BE, const Eigen::MatrixXi &CE, const int samples_per_bone, Eigen::MatrixXd &VV, Eigen::MatrixXi &TT, Eigen::MatrixXi &FF) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
template<typename DerivedV , typename DerivedT , typename DerivedF , typename DerivedTM , typename DerivedR , typename DerivedN , typename DerivedPT , typename DerivedFT > | |
bool | tetgenio_to_tetmesh (const tetgenio &out, Eigen::PlainObjectBase< DerivedV > &V, Eigen::PlainObjectBase< DerivedT > &T, Eigen::PlainObjectBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedTM > &TM, Eigen::PlainObjectBase< DerivedR > &R, Eigen::PlainObjectBase< DerivedN > &N, Eigen::PlainObjectBase< DerivedPT > &PT, Eigen::PlainObjectBase< DerivedFT > &FT, int &num_regions) |
Convert a tetgenio to a tetmesh. | |
template<typename DerivedV , typename DerivedF , typename DerivedH , typename DerivedVM , typename DerivedFM , typename DerivedR , typename DerivedTV , typename DerivedTT , typename DerivedTF , typename DerivedTM , typename DerivedTR , typename DerivedTN , typename DerivedPT , typename DerivedFT > | |
int | tetrahedralize (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedH > &H, const Eigen::MatrixBase< DerivedVM > &VM, const Eigen::MatrixBase< DerivedFM > &FM, const Eigen::MatrixBase< DerivedR > &R, const std::string switches, Eigen::PlainObjectBase< DerivedTV > &TV, Eigen::PlainObjectBase< DerivedTT > &TT, Eigen::PlainObjectBase< DerivedTF > &TF, Eigen::PlainObjectBase< DerivedTM > &TM, Eigen::PlainObjectBase< DerivedTR > &TR, Eigen::PlainObjectBase< DerivedTN > &TN, Eigen::PlainObjectBase< DerivedPT > &PT, Eigen::PlainObjectBase< DerivedFT > &FT, int &num_regions) |
Mesh the interior of a surface mesh (V,F) using tetgen. | |
template<typename DerivedV , typename DerivedF , typename DerivedTV , typename DerivedTT , typename DerivedTF > | |
int | tetrahedralize (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const std::string switches, Eigen::PlainObjectBase< DerivedTV > &TV, Eigen::PlainObjectBase< DerivedTT > &TT, Eigen::PlainObjectBase< DerivedTF > &TF) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
bool igl::copyleft::tetgen::cdt | ( | const Eigen::PlainObjectBase< DerivedV > & | V, |
const Eigen::PlainObjectBase< DerivedF > & | F, | ||
const CDTParam & | param, | ||
Eigen::PlainObjectBase< DerivedTV > & | TV, | ||
Eigen::PlainObjectBase< DerivedTT > & | TT, | ||
Eigen::PlainObjectBase< DerivedTF > & | TF | ||
) |
Create a constrained delaunay tessellation containing convex hull of the given non-selfintersecting mesh.
[in] | V | #V by 3 list of input mesh vertices |
[in] | F | #F by 3 list of input mesh facets |
[in] | param | see above |
[out] | TV | #TV by 3 list of output mesh vertices (V come first) |
[out] | TT | #TT by 3 list of tetrahedra indices into TV. |
[out] | TF | #TF by 3 list of facets from F potentially subdivided. |
void igl::copyleft::tetgen::mesh_to_tetgenio | ( | const Eigen::MatrixBase< DerivedV > & | V, |
const Eigen::MatrixBase< DerivedF > & | F, | ||
const Eigen::MatrixBase< DerivedH > & | H, | ||
const Eigen::MatrixBase< DerivedVM > & | VM, | ||
const Eigen::MatrixBase< DerivedFM > & | FM, | ||
const Eigen::MatrixBase< DerivedR > & | R, | ||
tetgenio & | in | ||
) |
Load a vertex list and face list into a tetgenio object.
[in] | V | #V by 3 vertex position list |
[in] | F | #F list of polygon face indices into V (0-indexed) |
[out] | in | tetgenio input object |
[out] | H | #H list of seed point inside each hole |
[out] | R | #R list of seed point inside each region |
bool igl::copyleft::tetgen::mesh_with_skeleton | ( | const Eigen::MatrixXd & | V, |
const Eigen::MatrixXi & | F, | ||
const Eigen::MatrixXd & | C, | ||
const Eigen::VectorXi & | , | ||
const Eigen::MatrixXi & | BE, | ||
const Eigen::MatrixXi & | CE, | ||
const int | samples_per_bone, | ||
const std::string & | tetgen_flags, | ||
Eigen::MatrixXd & | VV, | ||
Eigen::MatrixXi & | TT, | ||
Eigen::MatrixXi & | FF | ||
) |
Mesh the interior of a given surface with tetrahedra which are graded (tend to be small near the surface and large inside) and conform to the given handles and samplings thereof.
[in] | V | #V by 3 list of mesh vertex positions |
[in] | F | #F by 3 list of triangle indices |
[in] | C | #C by 3 list of vertex positions |
[in] | P | #P list of point handle indices |
[in] | BE | #BE by 2 list of bone-edge indices |
[in] | CE | #CE by 2 list of cage-edge indices |
[in] | samples_per_bone | #samples to add per bone |
[in] | tetgen_flags | flags to pass to tetgen {""-->"pq2Y"} otherwise you're on your own and it's your funeral if you pass nonsense flags |
[out] | VV | #VV by 3 list of tet-mesh vertex positions |
[out] | TT | #TT by 4 list of tetrahedra indices |
[out] | FF | #FF by 3 list of surface triangle indices |
bool igl::copyleft::tetgen::mesh_with_skeleton | ( | const Eigen::MatrixXd & | V, |
const Eigen::MatrixXi & | F, | ||
const Eigen::MatrixXd & | C, | ||
const Eigen::VectorXi & | , | ||
const Eigen::MatrixXi & | BE, | ||
const Eigen::MatrixXi & | CE, | ||
const int | samples_per_bone, | ||
Eigen::MatrixXd & | VV, | ||
Eigen::MatrixXi & | TT, | ||
Eigen::MatrixXi & | FF | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
bool igl::copyleft::tetgen::tetgenio_to_tetmesh | ( | const tetgenio & | out, |
Eigen::PlainObjectBase< DerivedV > & | V, | ||
Eigen::PlainObjectBase< DerivedT > & | T, | ||
Eigen::PlainObjectBase< DerivedF > & | F, | ||
Eigen::PlainObjectBase< DerivedTM > & | TM, | ||
Eigen::PlainObjectBase< DerivedR > & | R, | ||
Eigen::PlainObjectBase< DerivedN > & | N, | ||
Eigen::PlainObjectBase< DerivedPT > & | PT, | ||
Eigen::PlainObjectBase< DerivedFT > & | FT, | ||
int & | num_regions | ||
) |
Convert a tetgenio to a tetmesh.
[in] | out | output of tetrahedralization |
[out] | V | #V by 3 list of mesh vertex positions |
[out] | T | #T by 4 list of mesh tet indices into V |
[out] | F | #F by 3 list of mesh triangle indices into V |
[out] | TM | #T by 1 list of material indices into R |
[out] | R | #TT list of region ID for each tetrahedron |
[out] | N | #TT by 4 list of indices neighbors for each tetrahedron ('n') |
[out] | PT | #TV list of incident tetrahedron for a vertex ('m') |
[out] | FT | #TF by 2 list of tetrahedrons sharing a triface ('nn') |
[out] | num_regions | Number of regions in output mesh |
int igl::copyleft::tetgen::tetrahedralize | ( | const Eigen::MatrixBase< DerivedV > & | V, |
const Eigen::MatrixBase< DerivedF > & | F, | ||
const Eigen::MatrixBase< DerivedH > & | H, | ||
const Eigen::MatrixBase< DerivedVM > & | VM, | ||
const Eigen::MatrixBase< DerivedFM > & | FM, | ||
const Eigen::MatrixBase< DerivedR > & | R, | ||
const std::string | switches, | ||
Eigen::PlainObjectBase< DerivedTV > & | TV, | ||
Eigen::PlainObjectBase< DerivedTT > & | TT, | ||
Eigen::PlainObjectBase< DerivedTF > & | TF, | ||
Eigen::PlainObjectBase< DerivedTM > & | TM, | ||
Eigen::PlainObjectBase< DerivedTR > & | TR, | ||
Eigen::PlainObjectBase< DerivedTN > & | TN, | ||
Eigen::PlainObjectBase< DerivedPT > & | PT, | ||
Eigen::PlainObjectBase< DerivedFT > & | FT, | ||
int & | num_regions | ||
) |
Mesh the interior of a surface mesh (V,F) using tetgen.
[in] | V | #V by 3 vertex position list |
[in] | F | #F list of polygon face indices into V (0-indexed) |
[in] | H | #H by 3 list of seed points inside holes |
[in] | VM | #VM list of vertex markers |
[in] | FM | #FM list of face markers |
[in] | R | #R by 5 list of region attributes |
[in] | switches | string of tetgen options (See tetgen documentation) e.g. "pq1.414a0.01" tries to mesh the interior of a given surface with quality and area constraints "" will mesh the convex hull constrained to pass through V (ignores F) |
[out] | TV | #TV by 3 vertex position list |
[out] | TT | #TT by 4 list of tet face indices |
[out] | TF | #TF by 3 list of triangle face indices ('f', else boundary_facets is called on TT) |
[out] | TR | #TT list of region ID for each tetrahedron |
[out] | TN | #TT by 4 list of indices neighbors for each tetrahedron ('n') |
[out] | PT | #TV list of incident tetrahedron for a vertex ('m') |
[out] | FT | #TF by 2 list of tetrahedrons sharing a triface ('nn') |
[out] | num_regions | Number of regions in output mesh |
attr = (int) in->regionlist[i + 3];
. So it's declared safe to use integer types for TR
since this also assumes that there's a single tet attribute and that it's the region id.int igl::copyleft::tetgen::tetrahedralize | ( | const Eigen::MatrixBase< DerivedV > & | V, |
const Eigen::MatrixBase< DerivedF > & | F, | ||
const std::string | switches, | ||
Eigen::PlainObjectBase< DerivedTV > & | TV, | ||
Eigen::PlainObjectBase< DerivedTT > & | TT, | ||
Eigen::PlainObjectBase< DerivedTF > & | TF | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.