void Subdivision::initMesh(const Vec2& A,const Vec2& B, const Vec2& C,const Vec2& D) { Vec2& a = A.clone(); Vec2& b = B.clone(); Vec2& c = C.clone(); Vec2& d = D.clone(); Edge *ea = makeEdge(); ea->EndPoints(a, b); Edge *eb = makeEdge(); splice(ea->Sym(), eb); eb->EndPoints(b, c); Edge *ec = makeEdge(); splice(eb->Sym(), ec); ec->EndPoints(c, d); Edge *ed = makeEdge(); splice(ec->Sym(), ed); ed->EndPoints(d, a); splice(ed->Sym(), ea); Edge *diag = makeEdge(); splice(ed->Sym(),diag); splice(eb->Sym(),diag->Sym()); diag->EndPoints(a,c); startingEdge = ea; first_face = NULL; makeFace(ea->Sym()).update(*this); makeFace(ec->Sym()).update(*this); }