diff --git a/Geo/MQuadrangle.cpp b/Geo/MQuadrangle.cpp index fa7f30395be0b5eb7ec2e83d7d6c57d82da82a79..7a354659b7119fb5049c86378a3ec2ca822e83e7 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");