solstice-solver

Solver library of the solstice app
git clone git://git.meso-star.com/solstice-solver.git
Log | Files | Refs | README | LICENSE

commit 8e66ad810c8dbf887c746e0536db19b733098b4b
parent 514a3ee5f8734b7de79993116dc2a09061d1c7e1
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Mon, 19 Sep 2016 15:23:10 +0200

BugFix: wrong cast for an union field

Diffstat:
Msrc/ssol_shape.c | 15++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/ssol_shape.c b/src/ssol_shape.c @@ -708,13 +708,12 @@ punched_shape_set_z_local(const struct ssol_shape* shape, double pt[3]) { } case SSOL_QUADRIC_PARABOLIC_CYLINDER: { const struct ssol_quadric_parabolic_cylinder* quad - = (struct ssol_quadric_parabolic_cylinder*)&shape->quadric.data; + = &shape->quadric.data.parabolic_cylinder; pt[2] = (pt[1] * pt[1]) / (4.0 * quad->focal); break; } case SSOL_QUADRIC_PARABOL: { - const struct ssol_quadric_parabol* quad - = (struct ssol_quadric_parabol*)&shape->quadric.data; + const struct ssol_quadric_parabol* quad = &shape->quadric.data.parabol; pt[2] = (pt[0] * pt[0] + pt[1] * pt[1]) / (4.0 * quad->focal); break; } @@ -737,13 +736,12 @@ punched_shape_set_normal_local } case SSOL_QUADRIC_PARABOLIC_CYLINDER: { const struct ssol_quadric_parabolic_cylinder* quad - = (struct ssol_quadric_parabolic_cylinder*)&shape->quadric.data; + = &shape->quadric.data.parabolic_cylinder; quadric_parabolic_cylinder_gradient_local(quad, pt, normal); break; } case SSOL_QUADRIC_PARABOL: { - const struct ssol_quadric_parabol* quad - = (struct ssol_quadric_parabol*)&shape->quadric.data; + const struct ssol_quadric_parabol* quad = &shape->quadric.data.parabol; quadric_parabol_gradient_local(quad, pt, normal); break; } @@ -771,13 +769,12 @@ punched_shape_intersect_local } case SSOL_QUADRIC_PARABOLIC_CYLINDER: { const struct ssol_quadric_parabolic_cylinder* quad - = (struct ssol_quadric_parabolic_cylinder*)&shape->quadric; + = &shape->quadric.data.parabolic_cylinder; return quadric_parabolic_cylinder_intersect_local( quad, org, dir, hint, pt, normal, dist); } case SSOL_QUADRIC_PARABOL: { - const struct ssol_quadric_parabol* quad - = (struct ssol_quadric_parabol*)&shape->quadric; + const struct ssol_quadric_parabol* quad = &shape->quadric.data.parabol; return quadric_parabol_intersect_local( quad, org, dir, hint, pt, normal, dist); }