Skip to content
Snippets Groups Projects
Commit 26109bf5 authored by Amaury Johnen's avatar Amaury Johnen
Browse files

fix bug normals pyramid

parent e8fe6cc6
No related branches found
No related tags found
No related merge requests found
...@@ -131,6 +131,8 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double * ...@@ -131,6 +131,8 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double *
iVertex4 = 3; iVertex4 = 3;
} }
SPoint3 pnt1, pnt2, pnt3;
if (iFace < 4) { if (iFace < 4) {
int ix = 0, iy = 0; int ix = 0, iy = 0;
...@@ -147,7 +149,6 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double * ...@@ -147,7 +149,6 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double *
const double d = 1. / numSubEdges; const double d = 1. / numSubEdges;
SPoint3 pnt1, pnt2, pnt3;
double u1, v1, u2, v2, u3, v3; double u1, v1, u2, v2, u3, v3;
if (ix % 2 == 0){ if (ix % 2 == 0){
u1 = ix / 2 * d; v1= iy*d; u1 = ix / 2 * d; v1= iy*d;
...@@ -175,21 +176,8 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double * ...@@ -175,21 +176,8 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double *
pyr->pnt(U1, V1, W1, pnt1); pyr->pnt(U1, V1, W1, pnt1);
pyr->pnt(U2, V2, W2, pnt2); pyr->pnt(U2, V2, W2, pnt2);
pyr->pnt(U3, V3, W3, pnt3); pyr->pnt(U3, V3, W3, pnt3);
x[0] = pnt1.x(); x[1] = pnt2.x(); x[2] = pnt3.x();
y[0] = pnt1.y(); y[1] = pnt2.y(); y[2] = pnt3.y();
z[0] = pnt1.z(); z[1] = pnt2.z(); z[2] = pnt3.z();
SVector3 d1(x[1] - x[0], y[1] - y[0], z[1] - z[0]);
SVector3 d2(x[2] - x[0], y[2] - y[0], z[2] - z[0]);
n[0] = crossprod(d1, d2);
n[0].normalize();
n[1] = n[0];
n[2] = n[0];
} }
else { else {
SPoint3 pnt1, pnt2, pnt3;
/* /*
0 0
...@@ -326,14 +314,18 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double * ...@@ -326,14 +314,18 @@ static void _myGetFaceRep(MPyramid *pyr, int num, double *x, double *y, double *
pyr->pnt(U2,V2,W2, pnt2); pyr->pnt(U2,V2,W2, pnt2);
pyr->pnt(U3,V3,W3, pnt3); pyr->pnt(U3,V3,W3, pnt3);
} }
}
n[0] = 1;
n[1] = 1;
n[2] = 1;
x[0] = pnt1.x(); x[1] = pnt2.x(); x[2] = pnt3.x(); x[0] = pnt1.x(); x[1] = pnt2.x(); x[2] = pnt3.x();
y[0] = pnt1.y(); y[1] = pnt2.y(); y[2] = pnt3.y(); y[0] = pnt1.y(); y[1] = pnt2.y(); y[2] = pnt3.y();
z[0] = pnt1.z(); z[1] = pnt2.z(); z[2] = pnt3.z(); z[0] = pnt1.z(); z[1] = pnt2.z(); z[2] = pnt3.z();
}
SVector3 d1(x[1] - x[0], y[1] - y[0], z[1] - z[0]);
SVector3 d2(x[2] - x[0], y[2] - y[0], z[2] - z[0]);
n[0] = crossprod(d1, d2);
n[0].normalize();
n[1] = n[0];
n[2] = n[0];
} }
void MPyramid::getFaceRep(bool curved, int num, void MPyramid::getFaceRep(bool curved, int num,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment