[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41149] branches/bmesh/blender/source/ blender/editors/mesh/knifetool.c: Trial fix for knife cut intermediate point snapping: snap intermediate points ( for edge intersections between clicks in knife tool) to midpoints or endpoints, depending on which is closest
Andrew Wiggin
ender79bl at gmail.com
Thu Oct 20 15:41:52 CEST 2011
Revision: 41149
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41149
Author: ender79
Date: 2011-10-20 13:41:52 +0000 (Thu, 20 Oct 2011)
Log Message:
-----------
Trial fix for knife cut intermediate point snapping: snap intermediate points (for edge intersections between clicks in knife tool) to midpoints or endpoints, depending on which is closest
Modified Paths:
--------------
branches/bmesh/blender/source/blender/editors/mesh/knifetool.c
Modified: branches/bmesh/blender/source/blender/editors/mesh/knifetool.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/knifetool.c 2011-10-20 12:15:39 UTC (rev 41148)
+++ branches/bmesh/blender/source/blender/editors/mesh/knifetool.c 2011-10-20 13:41:52 UTC (rev 41149)
@@ -858,8 +858,21 @@
copy_v3_v3(hit.realhit, p);
if (kcd->snap_midpoints) {
- interp_v3_v3v3(hit.hit, kfe->v1->co, kfe->v2->co, 0.5f);
- interp_v3_v3v3(hit.cagehit, kfe->v1->cageco, kfe->v2->cageco, 0.5f);
+ float perc = hit.perc;
+
+ /* select the closest from the edge endpoints or the midpoint */
+ if (perc < 0.25f) {
+ perc = 0.0f;
+ }
+ else if (perc < 0.75f) {
+ perc = 0.5f;
+ }
+ else {
+ perc = 1.0f;
+ }
+
+ interp_v3_v3v3(hit.hit, kfe->v1->co, kfe->v2->co, perc);
+ interp_v3_v3v3(hit.cagehit, kfe->v1->cageco, kfe->v2->cageco, perc);
} else {
copy_v3_v3(hit.hit, p);
}
More information about the Bf-blender-cvs
mailing list