struct halfedge{ Edge *hedge; Loop *hloop; Vertex *hvert; HalfEdge *next; HalfEdge *prev; int aliveh; };
struct edge{ HalfEdge *he1; HalfEdge *he2; Solid *esolid; Edge *next; Edge *prev; int alive; };
根据实体网格结构,
struct solid{ Face *sfaces; Edge *sedges; Vertex *sverts; double center[3]; };
struct face{ Id faceno; Loop * floop; Solid * fsolid; double normal[3]; Face * next; Face * prev; int alivef; };
struct vertex{ Id vertexno; HalfEdge *vedge; double gauss_cur; double vcoord[3]; double ncoord[3]; Vertex *next; Vertex *prev; int alivev; };
struct loop{ HalfEdge *ledges; Face *lface; int alivel; };