From 5d3f46f755cd5445b83a276c4da1554a5c5c6c01 Mon Sep 17 00:00:00 2001
From: Koen Hillewaert <koen.hillewaert@cenaero.be>
Date: Tue, 9 Aug 2016 18:53:21 +0000
Subject: [PATCH] further bug fix in reorientation of quadrangle

---
 Geo/MQuadrangle.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Geo/MQuadrangle.cpp b/Geo/MQuadrangle.cpp
index fa7f30395b..7a354659b7 100644
--- a/Geo/MQuadrangle.cpp
+++ b/Geo/MQuadrangle.cpp
@@ -353,7 +353,7 @@ void MQuadrangle9::reorient(int rot, bool swap) {
   
   MQuadrangle::reorient(rot,swap);
   MVertex* tmp[4];
-  if (swap) for (int i=0;i<4;i++) tmp[i] = _vs[(9-i-rot)%4]; // edge swapped
+  if (swap) for (int i=0;i<4;i++) tmp[i] = _vs[(7-i+rot)%4]; // edge swapped
   else      for (int i=0;i<4;i++) tmp[i] = _vs[(4+i-rot)%4];
   std::memcpy(_vs,tmp,4*sizeof(MVertex*));
 }
@@ -371,7 +371,7 @@ void MQuadrangleN::reorient(int rot, bool swap) {
 
   if (swap) {
     for (int iEdge=0;iEdge<4;iEdge++) {
-      int edgeIdx = ((9-iEdge-rot)%4)*nbEdgePts;
+      int edgeIdx = ((7-iEdge+rot)%4)*nbEdgePts;
       for (int i=nbEdgePts-1;i>=0;i--) tmp.push_back(_vs[edgeIdx+i]);
     }
   }
@@ -387,11 +387,11 @@ void MQuadrangleN::reorient(int rot, bool swap) {
   if (_vs.size() >= idx) {
     nbEdgePts = order - 3;
     if (order > 2) {
-      if (swap) for (int i=0;i<4;i++) tmp.push_back(_vs[idx + (8-i-rot)%4]);
+      if (swap) for (int i=0;i<4;i++) tmp.push_back(_vs[idx + (4-i+rot)%4]);
       else      for (int i=0;i<4;i++) tmp.push_back(_vs[idx + (4+i-rot)%4]);
       idx += 4;
       if (order > 3) {
-        if (swap) for (int i=0;i<4;i++) tmp.push_back(_vs[idx + (9-i-rot)%4]);
+        if (swap) for (int i=0;i<4;i++) tmp.push_back(_vs[idx + (7-i+rot)%4]);
         else      for (int i=0;i<4;i++) tmp.push_back(_vs[idx + (4+i-rot)%4]);
         idx += 4;
         if (order > 4) Msg::Error("Reorientation of quad not supported above order 4");
-- 
GitLab