Commit 0b369ef6 authored by Thomas's avatar Thomas

correction cutEdge emap3

parent 68b8d632
...@@ -316,45 +316,45 @@ void EmbeddedMap2<MAP2>::sewFaces(Dart d, Dart e) ...@@ -316,45 +316,45 @@ void EmbeddedMap2<MAP2>::sewFaces(Dart d, Dart e)
template <typename MAP2> template <typename MAP2>
void EmbeddedMap2<MAP2>::unsewFaces(Dart d) void EmbeddedMap2<MAP2>::unsewFaces(Dart d)
{ {
bool boundaryD = false ; // bool boundaryD = false ;
bool boundaryE = false ; // bool boundaryE = false ;
if (MAP2::isOrbitEmbedded(VERTEX)) // if (MAP2::isOrbitEmbedded(VERTEX))
{ // {
if(MAP2::isBoundaryVertex(d)) // if(MAP2::isBoundaryVertex(d))
boundaryD = true ; // boundaryD = true ;
if(MAP2::isBoundaryVertex(MAP2::phi1(d))) // if(MAP2::isBoundaryVertex(MAP2::phi1(d)))
boundaryE = true ; // boundaryE = true ;
} // }
//
Dart e = MAP2::phi2(d) ; // Dart e = MAP2::phi2(d) ;
MAP2::unsewFaces(d) ; MAP2::unsewFaces(d) ;
if (MAP2::isOrbitEmbedded(VERTEX)) // if (MAP2::isOrbitEmbedded(VERTEX))
{ // {
if(boundaryD) // if(boundaryD)
{ // {
if(e != d) // if(e != d)
{ // {
Dart ee = MAP2::phi1(e) ; // Dart ee = MAP2::phi1(e) ;
MAP2::embedNewCell(VERTEX, ee) ; // MAP2::embedNewCell(VERTEX, ee) ;
MAP2::copyCell(VERTEX, ee, d) ; // MAP2::copyCell(VERTEX, ee, d) ;
} // }
} // }
//
if(boundaryE) // if(boundaryE)
{ // {
if(e != d) // if(e != d)
{ // {
MAP2::embedNewCell(VERTEX, e) ; // MAP2::embedNewCell(VERTEX, e) ;
MAP2::copyCell(VERTEX, e, MAP2::phi1(d)) ; // MAP2::copyCell(VERTEX, e, MAP2::phi1(d)) ;
} // }
} // }
} // }
if (MAP2::isOrbitEmbedded(EDGE)) // if (MAP2::isOrbitEmbedded(EDGE))
{ // {
MAP2::embedNewCell(EDGE, e) ; // MAP2::embedNewCell(EDGE, e) ;
MAP2::copyCell(EDGE, e, d) ; // MAP2::copyCell(EDGE, e, d) ;
} // }
} }
template <typename MAP2> template <typename MAP2>
......
...@@ -68,37 +68,37 @@ void EmbeddedMap3<MAP3>::sewVolumes(Dart d, Dart e) ...@@ -68,37 +68,37 @@ void EmbeddedMap3<MAP3>::sewVolumes(Dart d, Dart e)
template <typename MAP3> template <typename MAP3>
void EmbeddedMap3<MAP3>::unsewVolumes(Dart d) void EmbeddedMap3<MAP3>::unsewVolumes(Dart d)
{ {
Dart d3 = MAP3::phi3(d); // Dart d3 = MAP3::phi3(d);
//
bool boundaryD = false; // bool boundaryD = false;
bool boundaryE = false; // bool boundaryE = false;
//
if(MAP3::isOrbitEmbedded(VERTEX)) // if(MAP3::isOrbitEmbedded(VERTEX))
{ // {
if(MAP3::isBoundaryVertex(d)) // if(MAP3::isBoundaryVertex(d))
boundaryD = true; // boundaryD = true;
if(MAP3::isBoundaryVertex(MAP3::phi1(d))) // if(MAP3::isBoundaryVertex(MAP3::phi1(d)))
boundaryE = true; // boundaryE = true;
} // }
//
MAP3::unsewVolumes(d); MAP3::unsewVolumes(d);
//
Dart dd = d; // Dart dd = d;
Dart dd3 = d3; // Dart dd3 = d3;
//
do // do
{ // {
if(MAP3::isOrbitEmbedded(VERTEX)) // if(MAP3::isOrbitEmbedded(VERTEX))
MAP3::copyCell(VERTEX, dd3, MAP3::phi1(dd)); // MAP3::copyCell(VERTEX, dd3, MAP3::phi1(dd));
//
if(MAP3::isOrbitEmbedded(EDGE)) // if(MAP3::isOrbitEmbedded(EDGE))
//
//
if(MAP3::isOrbitEmbedded(FACE)) // if(MAP3::isOrbitEmbedded(FACE))
//
//
dd = MAP3::phi1(dd) ; // dd = MAP3::phi1(dd) ;
}while( dd != d ); // }while( dd != d );
} }
...@@ -168,34 +168,52 @@ void EmbeddedMap3<MAP3>::splitFace(Dart d, Dart e) ...@@ -168,34 +168,52 @@ void EmbeddedMap3<MAP3>::splitFace(Dart d, Dart e)
template <typename MAP3> template <typename MAP3>
void EmbeddedMap3<MAP3>::cutEdge(Dart d) void EmbeddedMap3<MAP3>::cutEdge(Dart d)
{ {
MAP3::cutEdge(d); MAP3::cutEdge(d);
if(MAP3::isOrbitEmbedded(EDGE)) if(MAP3::isOrbitEmbedded(EDGE))
{ {
Dart nd = MAP3::phi1(d) ;
MAP3::embedNewCell(EDGE, nd) ;
MAP3::copyCell(EDGE, nd, d) ;
unsigned int vEmb = MAP3::getEmbedding(EDGE, d);
MAP3::embedOrbit(EDGE, d, vEmb) ;
} }
if(MAP3::isOrbitEmbedded(FACE)) if(MAP3::isOrbitEmbedded(FACE))
{ {
Dart f = d;
do
{
Dart nd = MAP3::phi1(f) ;
MAP3::copyDartEmbedding(FACE, nd, f);
Dart f2 = MAP3::phi2(nd);
if(f2!=nd)
{
Dart nd2 = MAP3::phi2(f);
MAP3::copyDartEmbedding(FACE, nd2, f2);
}
f = MAP3::alpha2(f);
} while(f != d);
} }
if(MAP3::isOrbitEmbedded(VOLUME)) if(MAP3::isOrbitEmbedded(VOLUME))
{ {
Dart demb = d; Dart f = d;
if(MAP3::phi3(demb) == demb)
demb = MAP3::phi2(demb);
Dart f = demb;
do do
{ {
MAP3::copyDartEmbedding(VOLUME, MAP3::phi1(f), f); Dart nd = MAP3::phi1(f) ;
MAP3::copyDartEmbedding(VOLUME, MAP3::phi2(f), MAP3::phi2(MAP3::phi1(f))); MAP3::copyDartEmbedding(VOLUME, nd, f);
Dart nd2 = MAP3::phi2(f);
if(f!=nd2)
MAP3::copyDartEmbedding(VOLUME, nd2, f);
f = MAP3::alpha2(f); f = MAP3::alpha2(f);
} } while(f != d);
while(f != demb);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment