void EmbeddedGMap2::unsewFaces(Dart d) { Dart e = beta2(d); GMap2::unsewFaces(d); if (isOrbitEmbedded<VERTEX>()) { if(!sameVertex(d,e)) { Algo::Topo::setOrbitEmbeddingOnNewCell<VERTEX>(*this, e); Algo::Topo::copyCellAttributes<VERTEX>(*this, e, d); } d = beta0(d); e = beta0(e); if(!sameVertex(d,e)) { Algo::Topo::setOrbitEmbeddingOnNewCell<VERTEX>(*this, e); Algo::Topo::copyCellAttributes<VERTEX>(*this, e, d); } } if (isOrbitEmbedded<EDGE>()) { Algo::Topo::setOrbitEmbeddingOnNewCell<EDGE>(*this, e); Algo::Topo::copyCellAttributes<EDGE>(*this, e, d); } }
void EmbeddedGMap2::unsewFaces(Dart d) { Dart e = beta2(d); GMap2::unsewFaces(d); if (isOrbitEmbedded<VERTEX>()) { if(!sameVertex(d,e)) { setOrbitEmbeddingOnNewCell<VERTEX>(e); copyCell<VERTEX>(e, d); } d = beta0(d); e = beta0(e); if(!sameVertex(d,e)) { setOrbitEmbeddingOnNewCell<VERTEX>(e); copyCell<VERTEX>(e, d); } } if (isOrbitEmbedded<EDGE>()) { setOrbitEmbeddingOnNewCell<EDGE>(e); copyCell<EDGE>(e, d); } }
void EmbeddedMap2::unsewFaces(Dart d) { Dart e = phi2(d) ; Map2::unsewFaces(d) ; if (isOrbitEmbedded<VERTEX>()) { Dart ee = phi1(e) ; if(!sameVertex(d, ee)) { embedNewCell<VERTEX>(ee); copyCell<VERTEX>(ee, d); } Dart dd = phi1(d) ; if(!sameVertex(e, dd)) { embedNewCell<VERTEX>(dd); copyCell<VERTEX>(dd, e); } } if (isOrbitEmbedded<EDGE>()) { embedNewCell<EDGE>(e); copyCell<EDGE>(e, d); } }
void EmbeddedGMap3::unsewVolumes(Dart d) { Dart dd = alpha1(d); unsigned int fEmb = EMBNULL ; if(isOrbitEmbedded<FACE>()) fEmb = getEmbedding<FACE>(d) ; GMap3::unsewVolumes(d); Dart dit = d; do { // embed the unsewn vertex orbit with the vertex embedding if it is deconnected if(isOrbitEmbedded<VERTEX>()) { if(!sameVertex(dit, dd)) { setOrbitEmbedding<VERTEX>(dit, getEmbedding<VERTEX>(dit)) ; setOrbitEmbeddingOnNewCell<VERTEX>(dd); copyCell<VERTEX>(dd, dit); } else { setOrbitEmbedding<VERTEX>(dit, getEmbedding<VERTEX>(dit)) ; } } dd = phi_1(dd); // embed the unsewn edge with the edge embedding if it is deconnected if(isOrbitEmbedded<EDGE>()) { if(!sameEdge(dit, dd)) { setOrbitEmbedding<EDGE>(dit, getEmbedding<EDGE>(dit)) ; setOrbitEmbeddingOnNewCell<EDGE>(dd); copyCell<EDGE>(dd, dit); } else { setOrbitEmbedding<EDGE>(dit, getEmbedding<EDGE>(dit)) ; } } if(isOrbitEmbedded<FACE>()) { setDartEmbedding<FACE>(beta3(dit), fEmb) ; setDartEmbedding<FACE>(beta0(beta3(dit)), fEmb) ; } dit = phi1(dit); } while(dit != d); // embed the unsewn face with the face embedding if (isOrbitEmbedded<FACE>()) { setOrbitEmbeddingOnNewCell<FACE>(dd); copyCell<FACE>(dd, d); } }