[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59411] trunk/blender/source/blender/bmesh /operators/bmo_bisect_plane.c: fix for error in recetly added bisect operator, in rare cases it could attempt to remove vertices twice.
Campbell Barton
ideasman42 at gmail.com
Fri Aug 23 12:19:58 CEST 2013
Revision: 59411
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59411
Author: campbellbarton
Date: 2013-08-23 10:19:58 +0000 (Fri, 23 Aug 2013)
Log Message:
-----------
fix for error in recetly added bisect operator, in rare cases it could attempt to remove vertices twice.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/operators/bmo_bisect_plane.c
Modified: trunk/blender/source/blender/bmesh/operators/bmo_bisect_plane.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_bisect_plane.c 2013-08-23 10:18:15 UTC (rev 59410)
+++ trunk/blender/source/blender/bmesh/operators/bmo_bisect_plane.c 2013-08-23 10:19:58 UTC (rev 59411)
@@ -72,29 +72,21 @@
if (clear_outer || clear_inner) {
BMOIter siter;
BMVert *v;
- float plane_alt[4];
+ float plane_inner[4];
+ float plane_outer[4];
- copy_v3_v3(plane_alt, plane);
+ copy_v3_v3(plane_outer, plane);
+ copy_v3_v3(plane_inner, plane);
+ plane_outer[3] = plane[3] - dist;
+ plane_inner[3] = plane[3] + dist;
- if (clear_outer) {
- plane_alt[3] = plane[3] - dist;
-
- BMO_ITER (v, &siter, op->slots_in, "geom", BM_VERT) {
- if (plane_point_side_v3(plane_alt, v->co) > 0.0f) {
- BM_vert_kill(bm, v);
- }
+ BMO_ITER (v, &siter, op->slots_in, "geom", BM_VERT) {
+ if ((clear_outer && plane_point_side_v3(plane_outer, v->co) > 0.0f) ||
+ (clear_inner && plane_point_side_v3(plane_inner, v->co) < 0.0f))
+ {
+ BM_vert_kill(bm, v);
}
}
-
- if (clear_inner) {
- plane_alt[3] = plane[3] + dist;
-
- BMO_ITER (v, &siter, op->slots_in, "geom", BM_VERT) {
- if (plane_point_side_v3(plane_alt, v->co) < 0.0f) {
- BM_vert_kill(bm, v);
- }
- }
- }
}
BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "geom.out", BM_ALL_NOLOOP, ELE_NEW | ELE_INPUT);
More information about the Bf-blender-cvs
mailing list