diff --git a/Geo/MQuadrangle.cpp b/Geo/MQuadrangle.cpp index 9aa42dea1e7ce87597f4ee1eca916bfe7a980910..fa7f30395be0b5eb7ec2e83d7d6c57d82da82a79 100644 --- a/Geo/MQuadrangle.cpp +++ b/Geo/MQuadrangle.cpp @@ -331,7 +331,7 @@ double MQuadrangle::getInnerRadius() void MQuadrangle::reorient(int rot, bool swap) { MVertex* tmp[4]; - if (swap) for (int i=0;i<4;i++) tmp[i] = _v[(8-i-rot)%4]; + if (swap) for (int i=0;i<4;i++) tmp[i] = _v[(4-i+rot)%4]; else for (int i=0;i<4;i++) tmp[i] = _v[(4+i-rot)%4]; std::memcpy(_v,tmp,4*sizeof(MVertex*)); } @@ -342,7 +342,7 @@ void MQuadrangle8::reorient(int rot, bool swap) { MQuadrangle::reorient(rot,swap); MVertex* tmp[4]; - if (swap) for (int i=0;i<4;i++) tmp[i] = _vs[(8-i-rot)%4]; + if (swap) for (int i=0;i<4;i++) tmp[i] = _vs[(7-i+rot)%4]; else for (int i=0;i<4;i++) tmp[i] = _vs[(4+i-rot)%4]; std::memcpy(_vs,tmp,4*sizeof(MVertex*)); } diff --git a/Geo/MTriangle.cpp b/Geo/MTriangle.cpp index ec79b528582b09179f6b0b307255d15feefa2ff6..c3c88554d4ebcd0a1b99ce693ae133aee17f6ec3 100644 --- a/Geo/MTriangle.cpp +++ b/Geo/MTriangle.cpp @@ -269,19 +269,23 @@ void MTriangle::reorient(int rot,bool swap) { MVertex* tmp[3]; std::memcpy(tmp,_v,3*sizeof(MVertex*)); - if (swap) for (int i=0;i<3;i++) _v[i] = tmp[(6-i-rot)%3]; + if (swap) for (int i=0;i<3;i++) _v[i] = tmp[(3-i+rot)%3]; else for (int i=0;i<3;i++) _v[i] = tmp[(3+i-rot)%3]; } -void MTriangle6::reorient(int rot, bool swap) { +#include "HighOrder.h" +void MTriangle6::reorient(int rot, bool swap) { + + Msg::Info("Reorienting triangle 6 with rot %d and swap %d", + rot,swap ? 1:0); if (rot == 0 && !swap) return; MTriangle::reorient(rot,swap); MVertex* tmp[3]; std::memcpy(tmp,_vs,3*sizeof(MVertex*)); - if (swap) for (int i=0;i<3;i++) _vs[i] = tmp[(7-i-rot)%3]; - else for (int i=0;i<3;i++) _vs[i] = tmp[(3+i-rot)%3]; + if (swap) for (int i=0;i<3;i++) _vs[i] = tmp[(5+rot-i)%3]; + else for (int i=0;i<3;i++) _vs[i] = tmp[(3-rot+i)%3]; } void MTriangleN::reorient(int rot, bool swap) {