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