Splice is the basic operation for changing the mesh connectivity and topology. It changes the mesh so that eOrg->Onext = OLD( eDst->Onext ) eDst->Onext = OLD( eOrg->Onext ) where OLD(...) means the value before the meshSplice operation. This can have two effects on the vertex structure: - if eOrg->Org != eDst->Org, the two vertices are merged together - if eOrg->Org == eDst->Org, the origin is split into two vertices In both cases, eDst->Org is changed and eOrg->Org is untouched. Similarly (and independently) for the face structure, - if eOrg->Lface == eDst->Lface, one loop is split into two - if eOrg->Lface != eDst->Lface, two distinct loops are joined into one In both cases, eDst->Lface is changed and eOrg->Lface is unaffected. Some special cases: If eDst == eOrg, the operation has no effect. If eDst == eOrg->Lnext, the new face will have a single edge. If eDst == eOrg->Lprev, the old face will have a single edge. If eDst == eOrg->Onext, the new vertex will have a single edge. If eDst == eOrg->Oprev, the old vertex will have a single edge.