solstice-solver

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

commit 32e47a1dec694729df6a2d032840b3be9f9e9416
parent df450e75206b25f114e547eed4a0ea42eab448e3
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 13 Jan 2017 14:16:09 +0100

Fix quadric intersection

The quadric transformation was wrong on ray intersection.

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

diff --git a/src/ssol_shape.c b/src/ssol_shape.c @@ -802,9 +802,9 @@ punched_shape_project_point ASSERT(shape->type == SHAPE_PUNCHED); /* Compute world<->quadric space transformations */ - d33_muld33(R, shape->quadric.transform, transform); - d33_muld3 (T, shape->quadric.transform, transform+9); - d3_add(T, shape->quadric.transform + 9, T); + d33_muld33(R, transform, shape->quadric.transform); + d33_muld3(T, transform, shape->quadric.transform+9); + d3_add(T, T, transform + 9); d33_invtrans(R_invtrans, R); d3_minus(T_inv, T); @@ -848,9 +848,9 @@ punched_shape_trace_ray ASSERT(shape->type == SHAPE_PUNCHED); /* Compute world<->quadric space transformations */ - d33_muld33(R, shape->quadric.transform, transform); - d33_muld3 (T, shape->quadric.transform, transform+9); - d3_add(T, shape->quadric.transform + 9, T); + d33_muld33(R, transform, shape->quadric.transform); + d33_muld3(T, transform, shape->quadric.transform+9); + d3_add(T, T, transform + 9); d33_invtrans(R_invtrans, R); d3_minus(T_inv, T);