From da4001792424fc5e7c1da67b2c42137ac8d635cc Mon Sep 17 00:00:00 2001 From: thery Date: Tue, 11 Feb 2014 16:27:33 +0100 Subject: [PATCH] bug in Traversor2FFaV --- include/Topology/generic/traversor2.h | 1 + include/Topology/generic/traversor2.hpp | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/Topology/generic/traversor2.h b/include/Topology/generic/traversor2.h index f4cf59a9..28d9de0b 100644 --- a/include/Topology/generic/traversor2.h +++ b/include/Topology/generic/traversor2.h @@ -241,6 +241,7 @@ public: } ; // Traverse the faces adjacent to a given face through sharing a common edge +// Warning mult-incidence is not managed (some faces can be send several times) template class Traversor2FFaE //: public Traversor { diff --git a/include/Topology/generic/traversor2.hpp b/include/Topology/generic/traversor2.hpp index 6c1a5642..0f142e9f 100644 --- a/include/Topology/generic/traversor2.hpp +++ b/include/Topology/generic/traversor2.hpp @@ -530,12 +530,12 @@ Traversor2FFaV::Traversor2FFaV(const MAP& map, Dart dart) : m(map),m_QLT(NU else { start = m.phi2(m.phi_1(m.phi2(m.phi_1(dart)))) ; - current = start ; - if(start == dart) + while (start == dart) { - stop = m.phi2(m.phi_1(dart)) ; - start = next() ; + dart = m.phi1(dart); + start = m.phi2(m.phi_1(m.phi2(m.phi_1(dart)))) ; } + current = start ; stop = dart ; if(m.isBoundaryMarked2(start)) start = next() ; @@ -577,12 +577,15 @@ Dart Traversor2FFaV::next() current = m.phi2(m.phi_1(m.phi2(m.phi_1(d)))) ; if(current == d) { - stop = m.phi2(m.phi_1(d)) ; + stop = m.phi1(d); + current = m.phi2(d); return next() ; } stop = d ; - if(m.isBoundaryMarked2(current)) - return next() ; + } + if(m.isBoundaryMarked2(current)) + { + return next() ; } if(current == start) current = NIL ; -- GitLab