[Bf-extensions-cvs] [25ae9e13] master: select doubles rewrite
Eugenio Pignataro
noreply at git.blender.org
Tue Jan 1 21:44:40 CET 2019
Commit: 25ae9e134472c5bca62add0a1db3cdfc2d86aaa7
Author: Eugenio Pignataro
Date: Tue Jan 1 17:44:34 2019 -0300
Branches: master
https://developer.blender.org/rBA25ae9e134472c5bca62add0a1db3cdfc2d86aaa7
select doubles rewrite
===================================================================
M oscurart_tools/mesh/select_doubles.py
===================================================================
diff --git a/oscurart_tools/mesh/select_doubles.py b/oscurart_tools/mesh/select_doubles.py
index 15282b0b..b2a7d434 100644
--- a/oscurart_tools/mesh/select_doubles.py
+++ b/oscurart_tools/mesh/select_doubles.py
@@ -19,6 +19,7 @@
# <pep8 compliant>
import bpy
+
from mathutils import Vector
from bpy.types import Operator
from bpy.props import (
@@ -35,26 +36,22 @@ D = bpy.data
-def SelDoubles(self, context):
- bm = bmesh.from_edit_mesh(bpy.context.object.data)
-
- for v in bm.verts:
- v.select = 0
-
- dictloc = {}
+def SelDoubles(self, context, distance):
+ obj = bpy.context.object
+ me = obj.data
+ bm = bmesh.from_edit_mesh(me)
+ double = bmesh.ops.find_doubles(bm, verts=bm.verts, dist=distance)
- rd = lambda x: (round(x[0], 4), round(x[1], 4), round(x[2], 4))
+ bpy.ops.mesh.select_all(action = 'DESELECT')
- for vert in bm.verts:
- dictloc.setdefault(rd(vert.co), []).append(vert.index)
+ for vertice in double['targetmap']:
+ vertice.select = True
- for loc, ind in dictloc.items():
- if len(ind) > 1:
- for v in ind:
- bm.verts[v].select = 1
-
- bpy.context.view_layer.objects.active = bpy.context.view_layer.objects.active
+ # Switch to vertex select
+ bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='VERT')
+ # Show the updates in the viewport
+ bmesh.update_edit_mesh(me, False)
class SelectDoubles(Operator):
"""Selects duplicated vertex without merge them"""
@@ -68,8 +65,12 @@ class SelectDoubles(Operator):
context.view_layer.objects.active.type == 'MESH' and
context.view_layer.objects.active.mode == "EDIT")
+ distance : bpy.props.FloatProperty(
+ default=.0001,
+ name="Distance")
+
def execute(self, context):
- SelDoubles(self, context)
+ SelDoubles(self, context,self.distance)
return {'FINISHED'}
More information about the Bf-extensions-cvs
mailing list