From 81b6fc4931a5fb2fc369a4855599490011f4222f Mon Sep 17 00:00:00 2001
From: Amaury Johnan <amjohnen@gmail.com>
Date: Thu, 12 Sep 2013 14:39:01 +0000
Subject: [PATCH] debug one search, tree search & horizon = 1

---
 Mesh/meshGFaceRecombine.cpp | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/Mesh/meshGFaceRecombine.cpp b/Mesh/meshGFaceRecombine.cpp
index 26797b7105..9126b24b71 100644
--- a/Mesh/meshGFaceRecombine.cpp
+++ b/Mesh/meshGFaceRecombine.cpp
@@ -1308,12 +1308,13 @@ Rec2DAction* Rec2DData::getOneAction()
   return NULL;
 }
 
-void Rec2DData::getElementsOneAction(std::vector<Rec2DElement*> &vec)
+void Rec2DData::getElementsOneAction(std::vector<Rec2DElement*> &v)
 {
-  vec.clear();
+  v.clear();
   std::set<Rec2DElement*>::iterator it = _cur->_elementWithOneAction.begin();
   while (it != _cur->_elementWithOneAction.end()) {
-    vec.push_back(*it);
+    v.push_back(*it);
+    ++it;
   }
 }
 
@@ -5288,9 +5289,12 @@ void Node::branch_root()
   while (candidateTriangle.empty()) {
     switch (searchType) {
     case 0:
-      if (root_tree_srch) {
+      if (horizon > 1 && root_tree_srch && current != initial) {
         for (unsigned int i = 0; i < _children.size(); ++i)
           _children[i]->goAhead(1);
+        if (sequence.back() != this) Msg::Fatal("Aaargh");
+        sequence.pop_back();
+        return;
       }
       else {
         for (unsigned int i = 0; i < _children.size(); ++i)
@@ -5368,16 +5372,15 @@ void Node::branch(int depth)
   while (candidateTriangle.empty()) {
     switch (searchType) {
     case 0:
-      if (plus_tree_srch) {
+      if (depth < horizon - 1 && plus_tree_srch && current != initial) {
         if (_children.size()) {
           for (unsigned int i = 0; i < _children.size(); ++i)
             _children[i]->goAhead(depth + 1);
         }
-        else {
-          if (sequence.back() != this) Msg::Fatal("Aaargh 1");
+        if (sequence.back() != this) Msg::Fatal("Aaargh 1");
           sequence.pop_back();
-          return;
-        }
+
+        return;
       }
       else {
         for (unsigned int i = 0; i < _children.size(); ++i)
-- 
GitLab