[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