solstice-solver

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

commit 893bbf705f95b2e060bd90fcc63a2db963530601
parent 8ffa05559455d15853615a71e92388a902571add
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu,  5 Jan 2017 10:21:14 +0100

Fix the punched_shape_<trace_ray|project_point> functions

Fix the transformation from world space to local punched surface space.

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

diff --git a/src/ssol_shape.c b/src/ssol_shape.c @@ -803,13 +803,9 @@ punched_shape_project_point ASSERT(shape->type == SHAPE_PUNCHED); /* Compute world<->quadric space transformations */ - if(d33_is_identity(shape->quadric.transform)) { - d33_set(R, transform); - d3_set (T, transform+9); - } else { - d33_muld33(R, shape->quadric.transform, transform); - d33_muld3 (T, shape->quadric.transform, transform+9); - } + d33_muld33(R, shape->quadric.transform, transform); + d33_muld3 (T, shape->quadric.transform, transform+9); + d3_add(T, shape->quadric.transform + 9, T); d33_invtrans(R_invtrans, R); d3_minus(T_inv, T); @@ -853,13 +849,9 @@ punched_shape_trace_ray ASSERT(shape->type == SHAPE_PUNCHED); /* Compute world<->quadric space transformations */ - if(d33_is_identity(shape->quadric.transform)) { - d33_set(R, transform); - d3_set (T, transform+9); - } else { - d33_muld33(R, shape->quadric.transform, transform); - d33_muld3 (T, shape->quadric.transform, transform+9); - } + d33_muld33(R, shape->quadric.transform, transform); + d33_muld3 (T, shape->quadric.transform, transform+9); + d3_add(T, shape->quadric.transform + 9, T); d33_invtrans(R_invtrans, R); d3_minus(T_inv, T);