diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-12-16 22:19:08 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-12-16 22:19:08 +0300 |
commit | 5e48ab8d75bd5ce3085a9de183f36107f6d5d616 (patch) | |
tree | dd93878d1daa80aaa1984b989a081dadedebdd11 /source/blender/blenlib/intern/math_geom.c | |
parent | fabb36a98af27aa5353c9c968ca7df3f7c134a77 (diff) |
Sculpt:
* Increase epsilon for intersection a bit more, ortho view + small
faces are problematic.
* Fix a redraw issue with one partial redraw too much at the end of
the stroke.
Diffstat (limited to 'source/blender/blenlib/intern/math_geom.c')
-rw-r--r-- | source/blender/blenlib/intern/math_geom.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 75c32c5b45b..3e714b384a7 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -474,14 +474,15 @@ int isect_ray_tri_epsilon_v3(float p1[3], float d[3], float v0[3], float v1[3], sub_v3_v3v3(s, p1, v0); cross_v3_v3v3(q, s, e1); - *lambda = f * dot_v3v3(e2, q); - if ((*lambda < 0.0)) return 0; - + u = f * dot_v3v3(s, p); - if ((u < -epsilon)||(u > 1.0+epsilon)) return 0; + if ((u < -epsilon)||(u > 1.0f+epsilon)) return 0; v = f * dot_v3v3(d, q); - if ((v < -epsilon)||((u + v) > 1.0+epsilon)) return 0; + if ((v < -epsilon)||((u + v) > 1.0f+epsilon)) return 0; + + *lambda = f * dot_v3v3(e2, q); + if ((*lambda < 0.0f)) return 0; if(uv) { uv[0]= u; |