mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-21 08:45:22 +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):
|
def get_editmesh_geom(self, obj):
|
||||||
"""Parses editmode mesh geometry into line segments"""
|
"""Parses editmode mesh geometry into line segments"""
|
||||||
mesh = bmesh.from_edit_mesh(obj.data)
|
# TODO: avoid bmesh here?
|
||||||
vertices = []
|
bm = bmesh.from_edit_mesh(obj.data)
|
||||||
indices = []
|
indices = [[v.index for v in edge.verts] for edge in bm.edges]
|
||||||
idx = 0
|
vertices = [obj.matrix_world @ v.co for v in bm.verts]
|
||||||
|
|
||||||
# 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]
|
|
||||||
|
|
||||||
return vertices, indices
|
return vertices, indices
|
||||||
|
|
||||||
def decorate(self, context, object):
|
def decorate(self, context, object):
|
||||||
@@ -1469,6 +1461,7 @@ class BreakDecorator(BaseDecorator):
|
|||||||
verts, idxs = self.get_editmesh_geom(obj)
|
verts, idxs = self.get_editmesh_geom(obj)
|
||||||
else:
|
else:
|
||||||
verts, idxs = self.get_mesh_geom(obj)
|
verts, idxs = self.get_mesh_geom(obj)
|
||||||
|
print(len(verts), len(idxs))
|
||||||
self.draw_lines(context, obj, verts, idxs)
|
self.draw_lines(context, obj, verts, idxs)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user