libsurf
Programmer's Documentation
Compute slices through a triangular surface mesh.
#include <meshsections.h>
Public Member Functions | |
MeshSections (const TriMesh &m) | |
initialize section generator with mesh | |
uint | findPolygons (const Plane &pln) |
find set of polygons | |
uint | npolygons () const |
number of current polygons | |
Real | area (const Plane &pln) const |
compute area of all polygons | |
void | areaDistribution (Real alpha, int n, Matrix &xa) |
convenience function: area from n slices | |
void | joinPolygons (Real tol=gmepsilon) |
join multiple open polygons if possible | |
const PointList< 3 > & | polygon (int i) const |
access point set for polygon i | |
void | addViz (MeshFields &mvz) const |
add polygons to visu | |
void | writePlain (std::ostream &os) const |
write sections to plain text file | |
Private Member Functions | |
void | triangleFromPlane (const Plane &pln) |
construct triangle from plane | |
bool | fintersect (uint ti, Vct3 &ps, Vct3 &pt) const |
test for intersection | |
uint | newPolygon (Indices &tix) |
start new polygon from scratch | |
uint | nextTriangle (uint ti, Indices &tix, const Vct3 &plast, Vct3 &pnext) const |
find next triangle of candidates | |
Private Attributes | |
const TriMesh & | msh |
reference to mesh | |
FaceTree | ftree |
tree used to quickly find intersection candidates | |
BndBox | bb |
bounding box of the complete mesh | |
Vct3 | ptri [3] |
current triangle vertices | |
std::vector< PointList< 3 > > | pgs |
polygons identified | |