Hedge* lookup_hedge(Point *p0, Point *p1) // look for a hedge in surface
The Surf stellar API's are:
Vertex* Surf::split(Face *f) //divides a face Vertex* Surf::split(Hedge *e) //splits an edge Hedge* Surf::weld(Vertex *v) //removes a Vertex Hedge* Surf::flip(Hedge *h ) //flips internal edge
The Surf handle API's are:
Face* Surf::create(Point *p0, Point *p1, Point *p2) // creates a new face void Surf::destroy(Face *f) //removes a face Edge* Surf::glue(Hedge *e1, Hedge *e2) //glue two half-edges Edge* Surf::unglue(Hedge *e1, Hedge *e2) //unglue two half-edges
The face methods are:
Hedge* Face::hedge(int i) // returns the i-th half-edge Vertex* Face::vertex(int i) // returns the i-th vertex
The edge methods are:
Vertex* Edge::org() // returns the origin vertex Vertex* Edge::dst() // returns the end vertex Hedge Edge::hedge(int i) // returns the i-th half-edge boolean Edge::is_bdry() // returns true if on boundary
The half-edge methods are:
Vertex* Hedge::org() // returns the origin vertex Vertex* Hedge::dst() // returns the destination vertex Face* Hedge::face() // returns the incident face Edge* Hedge::edge() // returns the parent edge Hedge* Hedge::mate() // returns the mate half-edge Hedge* Hedge::prev() // returns the previous half-edge Hedge* Hedge::next() // returns the next half-edge Hedge* Hedge::prev_on_bdry() // returns the previous half-edge in boundary Edge* get_bdry() // Returns the boundary it belongs
The vertex methods are:
Point* p() // returns the geometry and attribute information Hedge* Vertex::star_first() // first incident half-edge Hedge* Vertex::star_next(Hedge *e) // iterates to get the next half-edge bool Vertex::is_bdry() // Returns if the edge belongs to mesh border
The point methods are:
vec3 Point::p() // returns position vector vec3 Point::n() // returns norma vector void Point::add(vec3 v) // adds a vector to the position vector Hedge* Point::lookup_hedge(Point *p) // looks for a hedge which connects two a point bool Point::on_front() // Returns if the point belongs to mesh border
In addition to the mesh adaptation functions, the library also provides iterators for accessing the mesh elements:
Iterator Surf::faces_begin() // returns face container iterator Iterator Surf::edges_begin() // returns edge container iterator Iterator Surf::verts_begin() // returns vertex container iterator Iterator Surf::faces_end() // returns face container iterator Iterator Surf::edges_end() // returns edge container iterator Iterator Surf::verts_end() // returns vertex container iterator