[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25415] trunk/blender/source/blender: Sculpt:
Brecht Van Lommel
brecht at blender.org
Wed Dec 16 20:19:08 CET 2009
Revision: 25415
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25415
Author: blendix
Date: 2009-12-16 20:19:08 +0100 (Wed, 16 Dec 2009)
Log Message:
-----------
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.
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/intern/math_geom.c
trunk/blender/source/blender/blenlib/intern/pbvh.c
trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
Modified: trunk/blender/source/blender/blenlib/intern/math_geom.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/math_geom.c 2009-12-16 18:26:27 UTC (rev 25414)
+++ trunk/blender/source/blender/blenlib/intern/math_geom.c 2009-12-16 19:19:08 UTC (rev 25415)
@@ -474,15 +474,16 @@
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;
uv[1]= v;
Modified: trunk/blender/source/blender/blenlib/intern/pbvh.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/pbvh.c 2009-12-16 18:26:27 UTC (rev 25414)
+++ trunk/blender/source/blender/blenlib/intern/pbvh.c 2009-12-16 19:19:08 UTC (rev 25415)
@@ -1142,7 +1142,7 @@
float dist = FLT_MAX;
if(!isect_ray_tri_epsilon_v3(ray_start, ray_normal, t0, t1, t2,
- &dist, NULL, 0.001f))
+ &dist, NULL, 0.1f))
dist = FLT_MAX;
if(dist >= 0 && dist < *fdist) {
Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt.c 2009-12-16 18:26:27 UTC (rev 25414)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt.c 2009-12-16 19:19:08 UTC (rev 25415)
@@ -1843,6 +1843,7 @@
invert_m4_m4(obimat, ss->ob->obmat);
mul_m4_v3(obimat, ray_start);
mul_mat3_m4_v3(obimat, ray_normal);
+ normalize_v3(ray_normal);
srd.ss = vc->obact->sculpt;
srd.ray_start = ray_start;
@@ -2055,6 +2056,7 @@
if(ss->refkb) sculpt_key_to_mesh(ss->refkb, ob);
+ ss->partial_redraw = 0;
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
}
}
More information about the Bf-blender-cvs
mailing list