Merge pull request #36 from MattiaMontanari/moveHFFsInIFs
Fix #29 and clean simplex structfixes-turtlebasket
commit
866c01ea0c
|
@ -40,8 +40,6 @@ typedef struct gkPolytope_ {
|
||||||
/// @brief Structure of the simplex
|
/// @brief Structure of the simplex
|
||||||
typedef struct gkSimplex_ {
|
typedef struct gkSimplex_ {
|
||||||
int nvrtx; // Number of simplex's vertices
|
int nvrtx; // Number of simplex's vertices
|
||||||
int wids[4]; // Label of the simplex's vertices
|
|
||||||
gkFloat lambdas[4]; // Barycentric coordiantes for each vertex
|
|
||||||
gkFloat vrtx[4][3]; // Coordinates of simplex's vertices
|
gkFloat vrtx[4][3]; // Coordinates of simplex's vertices
|
||||||
} gkSimplex;
|
} gkSimplex;
|
||||||
|
|
||||||
|
|
|
@ -226,12 +226,12 @@ inline static void S2D(gkSimplex *s, gkFloat *v) {
|
||||||
gkFloat *s3p = s->vrtx[0];
|
gkFloat *s3p = s->vrtx[0];
|
||||||
int hff1f_s12 = hff1(s1p, s2p);
|
int hff1f_s12 = hff1(s1p, s2p);
|
||||||
int hff1f_s13 = hff1(s1p, s3p);
|
int hff1f_s13 = hff1(s1p, s3p);
|
||||||
int hff2f_23 = !hff2(s1p, s2p, s3p);
|
|
||||||
int hff2f_32 = !hff2(s1p, s3p, s2p);
|
|
||||||
|
|
||||||
if (hff1f_s12) {
|
if (hff1f_s12) {
|
||||||
|
int hff2f_23 = !hff2(s1p, s2p, s3p);
|
||||||
if (hff2f_23) {
|
if (hff2f_23) {
|
||||||
if (hff1f_s13) {
|
if (hff1f_s13) {
|
||||||
|
int hff2f_32 = !hff2(s1p, s3p, s2p);
|
||||||
if (hff2f_32) {
|
if (hff2f_32) {
|
||||||
projectOnPlane(s1p, s2p, s3p, v); // Update s, no need to update c
|
projectOnPlane(s1p, s2p, s3p, v); // Update s, no need to update c
|
||||||
return; // Return V{1,2,3}
|
return; // Return V{1,2,3}
|
||||||
|
@ -250,6 +250,7 @@ inline static void S2D(gkSimplex *s, gkFloat *v) {
|
||||||
return; // Return V{1,2}
|
return; // Return V{1,2}
|
||||||
}
|
}
|
||||||
} else if (hff1f_s13) {
|
} else if (hff1f_s13) {
|
||||||
|
int hff2f_32 = !hff2(s1p, s3p, s2p);
|
||||||
if (hff2f_32) {
|
if (hff2f_32) {
|
||||||
projectOnPlane(s1p, s2p, s3p, v); // Update s, no need to update v
|
projectOnPlane(s1p, s2p, s3p, v); // Update s, no need to update v
|
||||||
return; // Return V{1,2,3}
|
return; // Return V{1,2,3}
|
||||||
|
|
Loading…
Reference in New Issue