[Bf-extensions-cvs] [ff8ef5c] master: fix major xall bug and bump version

zeffii noreply at git.blender.org
Fri Feb 17 09:17:26 CET 2017


Commit: ff8ef5cb121e590ef1a5f3e5f57b9bf99c46559d
Author: zeffii
Date:   Fri Feb 17 09:17:07 2017 +0100
Branches: master
https://developer.blender.org/rBAff8ef5cb121e590ef1a5f3e5f57b9bf99c46559d

fix major xall bug and bump version

===================================================================

M	mesh_tiny_cad/XALL.py
M	mesh_tiny_cad/__init__.py

===================================================================

diff --git a/mesh_tiny_cad/XALL.py b/mesh_tiny_cad/XALL.py
index 8cd25a5..83ecdb5 100644
--- a/mesh_tiny_cad/XALL.py
+++ b/mesh_tiny_cad/XALL.py
@@ -108,37 +108,30 @@ def get_intersection_dictionary(bm, edge_indices):
     return d
 
 
-def update_mesh(obj, d):
+def update_mesh(bm, d):
     ''' Make new geometry (delete old first) '''
 
-    bpy.ops.mesh.delete(type='EDGE')
-    bpy.ops.object.editmode_toggle()
-
-    oe = obj.data.edges
-    ov = obj.data.vertices
-    vert_count = len(ov)
-    edge_count = len(oe)
+    oe = bm.edges
+    ov = bm.verts
 
+    new_verts = []
+    collect = new_verts.extend
     for old_edge, point_list in d.items():
-        num_points = len(point_list)
-        num_edges_to_add = num_points - 1
-
+        num_edges_to_add = len(point_list)-1
         for i in range(num_edges_to_add):
-            oe.add(1)
-            ov.add(2)
+            a = ov.new(point_list[i])
+            b = ov.new(point_list[i+1])
+            oe.new((a, b))
+            bm.normal_update()
+            collect([a, b])
 
-            ov[vert_count].co = point_list[i]
-            ov[vert_count + 1].co = point_list[i + 1]
+    bmesh.ops.delete(bm, geom=[edge for edge in bm.edges if edge.select], context=2) # 2 = edges
 
-            oe[edge_count].vertices = [vert_count, vert_count + 1]
-            vert_count = len(ov)
-            edge_count = len(oe)
+    #bpy.ops.mesh.remove_doubles(
+    #    threshold=cm.CAD_prefs.VTX_DOUBLES_THRSHLD,
+    #    use_unselected=False)
 
-    # set edit mode
-    bpy.ops.object.editmode_toggle()
-    bpy.ops.mesh.remove_doubles(
-        threshold=cm.CAD_prefs.VTX_DOUBLES_THRSHLD,
-        use_unselected=False)
+    bmesh.ops.remove_doubles(bm, verts=new_verts, dist=cm.CAD_prefs.VTX_DOUBLES_THRSHLD)
 
 
 def unselect_nonintersecting(bm, d_edges, edge_indices):
@@ -174,7 +167,9 @@ class TCIntersectAllEdges(bpy.types.Operator):
             d = get_intersection_dictionary(bm, edge_indices)
 
             unselect_nonintersecting(bm, d.keys(), edge_indices)
-            update_mesh(obj, d)
+            update_mesh(bm, d)
+
+            bmesh.update_edit_mesh(obj.data)
         else:
             print('must be in edit mode')
 
diff --git a/mesh_tiny_cad/__init__.py b/mesh_tiny_cad/__init__.py
index 4c2c2ac..611c67c 100644
--- a/mesh_tiny_cad/__init__.py
+++ b/mesh_tiny_cad/__init__.py
@@ -22,13 +22,13 @@
 bl_info = {
     "name": "tinyCAD Mesh tools",
     "author": "zeffii (aka Dealga McArdle)",
-    "version": (1, 3, 0),
+    "version": (1, 3, 1),
     "blender": (2, 7, 7),
     "category": "Mesh",
     "location": "View3D > EditMode > (w) Specials",
     "wiki_url": "http://zeffii.github.io/mesh_tiny_cad/",
     "tracker_url": "https://github.com/zeffii/mesh_tiny_cad/issues"
-    }
+}
 
 
 if "bpy" in locals():



More information about the Bf-extensions-cvs mailing list