Skip to content
Snippets Groups Projects
Commit 3386c0f1 authored by Koen Hillewaert's avatar Koen Hillewaert
Browse files

bug fix in quad and tri reorientation for higher orders

parent 1364f936
No related branches found
No related tags found
No related merge requests found
...@@ -331,7 +331,7 @@ double MQuadrangle::getInnerRadius() ...@@ -331,7 +331,7 @@ double MQuadrangle::getInnerRadius()
void MQuadrangle::reorient(int rot, bool swap) { void MQuadrangle::reorient(int rot, bool swap) {
MVertex* tmp[4]; 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]; else for (int i=0;i<4;i++) tmp[i] = _v[(4+i-rot)%4];
std::memcpy(_v,tmp,4*sizeof(MVertex*)); std::memcpy(_v,tmp,4*sizeof(MVertex*));
} }
...@@ -342,7 +342,7 @@ void MQuadrangle8::reorient(int rot, bool swap) { ...@@ -342,7 +342,7 @@ void MQuadrangle8::reorient(int rot, bool swap) {
MQuadrangle::reorient(rot,swap); MQuadrangle::reorient(rot,swap);
MVertex* tmp[4]; 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]; else for (int i=0;i<4;i++) tmp[i] = _vs[(4+i-rot)%4];
std::memcpy(_vs,tmp,4*sizeof(MVertex*)); std::memcpy(_vs,tmp,4*sizeof(MVertex*));
} }
......
...@@ -269,19 +269,23 @@ void MTriangle::reorient(int rot,bool swap) { ...@@ -269,19 +269,23 @@ void MTriangle::reorient(int rot,bool swap) {
MVertex* tmp[3]; MVertex* tmp[3];
std::memcpy(tmp,_v,3*sizeof(MVertex*)); 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]; 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; if (rot == 0 && !swap) return;
MTriangle::reorient(rot,swap); MTriangle::reorient(rot,swap);
MVertex* tmp[3]; MVertex* tmp[3];
std::memcpy(tmp,_vs,3*sizeof(MVertex*)); std::memcpy(tmp,_vs,3*sizeof(MVertex*));
if (swap) for (int i=0;i<3;i++) _vs[i] = tmp[(7-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+i-rot)%3]; else for (int i=0;i<3;i++) _vs[i] = tmp[(3-rot+i)%3];
} }
void MTriangleN::reorient(int rot, bool swap) { void MTriangleN::reorient(int rot, bool swap) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment