Commit 03e6495a by Thery Sylvain

### resolve problems of boundary2/3

 ... @@ -103,7 +103,7 @@ public: ... @@ -103,7 +103,7 @@ public: /*! @param nbEdges the number of edges /*! @param nbEdges the number of edges * @return return a dart of the face * @return return a dart of the face */ */ Dart newBoundaryCycle(unsigned int nbEdges); // Dart newBoundaryCycle(unsigned int nbEdges); //! Delete a face erasing all its darts //! Delete a face erasing all its darts /*! @param d a dart of the face /*! @param d a dart of the face ... ...
 ... @@ -169,6 +169,12 @@ inline Dart GMap1::cutEdge(Dart d) ... @@ -169,6 +169,12 @@ inline Dart GMap1::cutEdge(Dart d) boundaryMark2(f); boundaryMark2(f); } } if (isBoundaryMarked3(d)) { boundaryMark3(e); boundaryMark3(f); } return f ; return f ; } } ... ...
 ... @@ -448,6 +448,11 @@ public: ... @@ -448,6 +448,11 @@ public: *************************************************************************/ *************************************************************************/ //@{ //@{ /** * create a face of map1 marked as boundary */ Dart newBoundaryCycle(unsigned int nbE); //! Close a topological hole (a sequence of connected fixed point of beta2). DO NOT USE, only for import/creation algorithm //! Close a topological hole (a sequence of connected fixed point of beta2). DO NOT USE, only for import/creation algorithm /*! \pre dart d MUST be fixed point of beta2 relation /*! \pre dart d MUST be fixed point of beta2 relation * Add a face to the map that closes the hole. * Add a face to the map that closes the hole. ... ...
 ... @@ -57,7 +57,6 @@ public: ... @@ -57,7 +57,6 @@ public: static const unsigned int EDGE_OF_PARENT2 = EDGE+5; static const unsigned int EDGE_OF_PARENT2 = EDGE+5; static const unsigned int DIMENSION = 3 ; static const unsigned int DIMENSION = 3 ; // enum { DIMENSION = 3 } ; GMap3(); GMap3(); ... @@ -359,6 +358,11 @@ public: ... @@ -359,6 +358,11 @@ public: *************************************************************************/ *************************************************************************/ //@{ //@{ /** * create a face of map1 marked as boundary */ Dart newBoundaryCycle(unsigned int nbE); //! Close a topological hole (a sequence of connected fixed point of phi3). DO NOT USE, only for import/creation algorithm //! Close a topological hole (a sequence of connected fixed point of phi3). DO NOT USE, only for import/creation algorithm /*! \pre dart d MUST be fixed point of phi3 relation /*! \pre dart d MUST be fixed point of phi3 relation * Add a volume to the map that closes the hole. * Add a volume to the map that closes the hole. ... ...
 ... @@ -115,7 +115,7 @@ public: ... @@ -115,7 +115,7 @@ public: /*! @param nbEdges the number of edges /*! @param nbEdges the number of edges * @return return a dart of the face * @return return a dart of the face */ */ Dart newBoundaryCycle(unsigned int nbEdges); // Dart newBoundaryCycle(unsigned int nbEdges); //! Delete an oriented face erasing all its darts //! Delete an oriented face erasing all its darts /*! @param d a dart of the face /*! @param d a dart of the face ... ...
 ... @@ -164,6 +164,9 @@ inline Dart Map1::cutEdge(Dart d) ... @@ -164,6 +164,9 @@ inline Dart Map1::cutEdge(Dart d) if (isBoundaryMarked2(d)) if (isBoundaryMarked2(d)) boundaryMark2(e); boundaryMark2(e); if (isBoundaryMarked3(d)) boundaryMark3(e); return e ; return e ; } } ... ...
 ... @@ -444,6 +444,11 @@ public: ... @@ -444,6 +444,11 @@ public: *************************************************************************/ *************************************************************************/ //@{ //@{ /** * create a face of map1 marked as boundary */ Dart newBoundaryCycle(unsigned int nbE); //! Close a topological hole (a sequence of connected fixed point of phi2). DO NOT USE, only for import/creation algorithm //! Close a topological hole (a sequence of connected fixed point of phi2). DO NOT USE, only for import/creation algorithm /*! \pre dart d MUST be fixed point of phi2 relation /*! \pre dart d MUST be fixed point of phi2 relation * Add a face to the map that closes the hole. * Add a face to the map that closes the hole. ... ...
 ... @@ -426,7 +426,13 @@ public: ... @@ -426,7 +426,13 @@ public: * These functions must be used with care, generally only by import algorithms * These functions must be used with care, generally only by import algorithms *************************************************************************/ *************************************************************************/ //@{ //@{ /** * create a face of map1 marked as boundary */ Dart newBoundaryCycle(unsigned int nbE); //! Close a topological hole (a sequence of connected fixed point of phi3). DO NOT USE, only for import/creation algorithm //! Close a topological hole (a sequence of connected fixed point of phi3). DO NOT USE, only for import/creation algorithm /*! \pre dart d MUST be fixed point of phi3 relation /*! \pre dart d MUST be fixed point of phi3 relation * Add a volume to the map that closes the hole. * Add a volume to the map that closes the hole. ... ...
 ... @@ -66,25 +66,25 @@ Dart GMap1::newCycle(unsigned int nbEdges) ... @@ -66,25 +66,25 @@ Dart GMap1::newCycle(unsigned int nbEdges) return d0; return d0; } } Dart GMap1::newBoundaryCycle(unsigned int nbEdges) //Dart GMap1::newBoundaryCycle(unsigned int nbEdges) { //{ assert(nbEdges > 0 || !"Cannot create a face with no edge") ; // assert(nbEdges > 0 || !"Cannot create a face with no edge") ; // Dart d0 = GMap0::newEdge(); // create the first edge // Dart d0 = GMap0::newEdge(); // create the first edge boundaryMark2(d0); // boundaryMark2(d0); boundaryMark2(beta0(d0)); // boundaryMark2(beta0(d0)); Dart dp = beta0(d0); // store an extremity // Dart dp = beta0(d0); // store an extremity for (unsigned int i = 1; i < nbEdges; ++i) // for (unsigned int i = 1; i < nbEdges; ++i) { // { Dart di = GMap0::newEdge(); // create the next edge // Dart di = GMap0::newEdge(); // create the next edge boundaryMark2(di); // boundaryMark2(di); boundaryMark2(beta0(di)); // boundaryMark2(beta0(di)); beta1sew(dp,di); // beta1sew(dp,di); dp = beta0(di); // change the preceding // dp = beta0(di); // change the preceding } // } beta1sew(dp,d0); // sew the last with the first // beta1sew(dp,d0); // sew the last with the first return d0; // return d0; } //} void GMap1::deleteCycle(Dart d) void GMap1::deleteCycle(Dart d) { { ... ...
 ... @@ -62,7 +62,7 @@ Dart GMap2::newFace(unsigned int nbEdges, bool withBoundary) ... @@ -62,7 +62,7 @@ Dart GMap2::newFace(unsigned int nbEdges, bool withBoundary) Dart d = GMap1::newCycle(nbEdges); Dart d = GMap1::newCycle(nbEdges); if (withBoundary) if (withBoundary) { { Dart e = GMap1::newBoundaryCycle(nbEdges); Dart e = newBoundaryCycle(nbEdges); Dart it = d; Dart it = d; do do ... @@ -378,7 +378,7 @@ void GMap2::unsewFaces(Dart d) ... @@ -378,7 +378,7 @@ void GMap2::unsewFaces(Dart d) Dart dd = phi2(d); Dart dd = phi2(d); Dart e = GMap1::newBoundaryCycle(2); Dart e = newBoundaryCycle(2); Dart ee = phi1(e) ; Dart ee = phi1(e) ; Dart f = findBoundaryEdgeOfVertex(d) ; Dart f = findBoundaryEdgeOfVertex(d) ; ... @@ -883,6 +883,13 @@ bool GMap2::foreach_dart_of_oriented_cc(Dart d, FunctorType& f, unsigned int thr ... @@ -883,6 +883,13 @@ bool GMap2::foreach_dart_of_oriented_cc(Dart d, FunctorType& f, unsigned int thr * These functions must be used with care, generally only by import/creation algorithms * These functions must be used with care, generally only by import/creation algorithms *************************************************************************/ *************************************************************************/ Dart GMap2::newBoundaryCycle(unsigned int nbE) { Dart d = GMap1::newCycle(nbE); boundaryMarkOrbit(d); return d; } unsigned int GMap2::closeHole(Dart d, bool forboundary) unsigned int GMap2::closeHole(Dart d, bool forboundary) { { assert(beta2(d) == d); // Nothing to close assert(beta2(d) == d); // Nothing to close ... ...
 ... @@ -918,6 +918,13 @@ bool GMap3::foreach_dart_of_cc(Dart d, FunctorType& f, unsigned int thread) ... @@ -918,6 +918,13 @@ bool GMap3::foreach_dart_of_cc(Dart d, FunctorType& f, unsigned int thread) * These functions must be used with care, generally only by import/creation algorithms * These functions must be used with care, generally only by import/creation algorithms *************************************************************************/ *************************************************************************/ Dart GMap3::newBoundaryCycle(unsigned int nbE) { Dart d = GMap1::newCycle(nbE); boundaryMarkOrbit(d); return d; } unsigned int GMap3::closeHole(Dart d, bool forboundary) unsigned int GMap3::closeHole(Dart d, bool forboundary) { { assert(beta3(d) == d); // Nothing to close assert(beta3(d) == d); // Nothing to close ... ...
 ... @@ -68,15 +68,15 @@ Dart Map1::newCycle(unsigned int nbEdges) ... @@ -68,15 +68,15 @@ Dart Map1::newCycle(unsigned int nbEdges) return d ; return d ; } } Dart Map1::newBoundaryCycle(unsigned int nbEdges) //Dart Map1::newBoundaryCycle(unsigned int nbEdges) { //{ assert(nbEdges > 0 || !"Cannot create a face with no edge") ; // assert(nbEdges > 0 || !"Cannot create a face with no edge") ; Dart d = newDart() ; // Create the first edge // Dart d = newDart() ; // Create the first edge boundaryMark2(d); // boundaryMark2(d); for (unsigned int i = 1 ; i < nbEdges ; ++i) // for (unsigned int i = 1 ; i < nbEdges ; ++i) Map1::cutEdge(d) ; // Subdivide nbEdges-1 times this edge // Map1::cutEdge(d) ; // Subdivide nbEdges-1 times this edge return d ; // return d ; } //} void Map1::deleteCycle(Dart d) void Map1::deleteCycle(Dart d) { { ... ...
 ... @@ -112,7 +112,7 @@ Dart Map2::newFace(unsigned int nbEdges, bool withBoundary) ... @@ -112,7 +112,7 @@ Dart Map2::newFace(unsigned int nbEdges, bool withBoundary) Dart d = Map1::newCycle(nbEdges); Dart d = Map1::newCycle(nbEdges); if (withBoundary) if (withBoundary) { { Dart e = Map1::newBoundaryCycle(nbEdges); Dart e = newBoundaryCycle(nbEdges); Dart it = d; Dart it = d; do do ... @@ -839,6 +839,13 @@ bool Map2::foreach_dart_of_cc(Dart d, FunctorType& f, unsigned int thread) ... @@ -839,6 +839,13 @@ bool Map2::foreach_dart_of_cc(Dart d, FunctorType& f, unsigned int thread) * These functions must be used with care, generally only by import/creation algorithms * These functions must be used with care, generally only by import/creation algorithms *************************************************************************/ *************************************************************************/ Dart Map2::newBoundaryCycle(unsigned int nbE) { Dart d = Map1::newCycle(nbE); boundaryMarkOrbit(d); return d; } unsigned int Map2::closeHole(Dart d, bool forboundary) unsigned int Map2::closeHole(Dart d, bool forboundary) { { assert(phi2(d) == d); // Nothing to close assert(phi2(d) == d); // Nothing to close ... @@ -867,7 +874,7 @@ unsigned int Map2::closeHole(Dart d, bool forboundary) ... @@ -867,7 +874,7 @@ unsigned int Map2::closeHole(Dart d, bool forboundary) } } } while (dPhi1 != d); } while (dPhi1 != d); if(forboundary) if (forboundary) boundaryMarkOrbit(phi2(d)); boundaryMarkOrbit(phi2(d)); return countEdges ; return countEdges ; ... ...
 ... @@ -1074,6 +1074,13 @@ bool Map3::foreach_dart_of_cc(Dart d, FunctorType& f, unsigned int thread) ... @@ -1074,6 +1074,13 @@ bool Map3::foreach_dart_of_cc(Dart d, FunctorType& f, unsigned int thread) * These functions must be used with care, generally only by import/creation algorithms * These functions must be used with care, generally only by import/creation algorithms *************************************************************************/ *************************************************************************/ Dart Map3::newBoundaryCycle(unsigned int nbE) { Dart d = Map1::newCycle(nbE); boundaryMarkOrbit(d); return d; } unsigned int Map3::closeHole(Dart d, bool forboundary) unsigned int Map3::closeHole(Dart d, bool forboundary) { { assert(phi3(d) == d); // Nothing to close assert(phi3(d) == d); // Nothing to close ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!