mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 09:48:32 +00:00
Decorators - a bit more consistent geometry parsing between edit/object modes
This commit is contained in:
@@ -304,18 +304,10 @@ class BaseDecorator:
|
||||
|
||||
def get_editmesh_geom(self, obj):
|
||||
"""Parses editmode mesh geometry into line segments"""
|
||||
mesh = bmesh.from_edit_mesh(obj.data)
|
||||
vertices = []
|
||||
indices = []
|
||||
idx = 0
|
||||
|
||||
# TODO: are we adding same verts twice?
|
||||
for edge in mesh.edges:
|
||||
vertices.extend(edge.verts)
|
||||
indices.append((idx, idx + 1))
|
||||
idx += 2
|
||||
vertices = [obj.matrix_world @ v.co for v in vertices]
|
||||
|
||||
# TODO: avoid bmesh here?
|
||||
bm = bmesh.from_edit_mesh(obj.data)
|
||||
indices = [[v.index for v in edge.verts] for edge in bm.edges]
|
||||
vertices = [obj.matrix_world @ v.co for v in bm.verts]
|
||||
return vertices, indices
|
||||
|
||||
def decorate(self, context, object):
|
||||
@@ -1469,6 +1461,7 @@ class BreakDecorator(BaseDecorator):
|
||||
verts, idxs = self.get_editmesh_geom(obj)
|
||||
else:
|
||||
verts, idxs = self.get_mesh_geom(obj)
|
||||
print(len(verts), len(idxs))
|
||||
self.draw_lines(context, obj, verts, idxs)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user