Коммит 4f1304b1 создал по автору Ilya Portnov's avatar Ilya Portnov
Просмотр файлов

Vectorization effort.

владелец e47c5bd3
...@@ -258,36 +258,38 @@ class SvConicSectionNode(bpy.types.Node, SverchCustomTreeNode): ...@@ -258,36 +258,38 @@ class SvConicSectionNode(bpy.types.Node, SverchCustomTreeNode):
objects = match_long_repeat([apexes_s, conedirs_s, alphas_s, conegens_s, counts_s, plane_centers_s, plane_dirs_s, max_ds_s]) objects = match_long_repeat([apexes_s, conedirs_s, alphas_s, conegens_s, counts_s, plane_centers_s, plane_dirs_s, max_ds_s])
for apexes, conedirs, alphas, conegens, counts, plane_centers, plane_dirs, max_ds in zip(*objects): for apexes, conedirs, alphas, conegens, counts, plane_centers, plane_dirs, max_ds in zip(*objects):
section_data = self.make_section(apexes[0], conedirs[0], alphas[0], conegens[0], counts[0], plane_centers[0], plane_dirs[0], max_ds[0]) sub_objects = match_long_repeat([apexes, conedirs, alphas, conegens, counts, plane_centers, plane_dirs, max_ds])
for apex, conedir, alpha, conegen, count, plane_center, plane_dir, max_d in zip(*sub_objects):
verts = section_data.verts section_data = self.make_section(apex, conedir, alpha, conegen, count, plane_center, plane_dir, max_d)
branch_mask = section_data.branch_mask
side_mask = section_data.side_mask verts = section_data.verts
breaks = section_data.breaks branch_mask = section_data.branch_mask
side_mask = section_data.side_mask
v1idxs, v2idxs, edges1, edges2 = self.make_edges(branch_mask, breaks) breaks = section_data.breaks
if self.evenly: v1idxs, v2idxs, edges1, edges2 = self.make_edges(branch_mask, breaks)
verts1 = [verts[i] for i in v1idxs]
verts2 = [verts[i] for i in v2idxs] if self.evenly:
is_cyclic = len(breaks) == 0 verts1 = [verts[i] for i in v1idxs]
verts1, edges1 = self.interpolate(verts1, counts[0], is_cyclic) verts2 = [verts[i] for i in v2idxs]
verts2, edges2 = self.interpolate(verts2, counts[0], is_cyclic) is_cyclic = len(breaks) == 0
verts = verts1 + verts2 verts1, edges1 = self.interpolate(verts1, counts[0], is_cyclic)
n1 = len(verts1) verts2, edges2 = self.interpolate(verts2, counts[0], is_cyclic)
edges2 = [[i+n1, j+n1] for i,j in edges2] verts = verts1 + verts2
n1 = len(verts1)
edges = edges1 + edges2 edges2 = [[i+n1, j+n1] for i,j in edges2]
if any(v is None for v in verts): edges = edges1 + edges2
print(verts)
branch_mask = [section_data.get_branch(v) for v in verts] if any(v is None for v in verts):
side_mask = [section_data.get_side(v) for v in verts] print(verts)
branch_mask = [section_data.get_branch(v) for v in verts]
out_verts.append(verts) side_mask = [section_data.get_side(v) for v in verts]
out_edges.append(edges)
out_branch_masks.append(branch_mask) out_verts.append(verts)
out_side_masks.append(side_mask) out_edges.append(edges)
out_branch_masks.append(branch_mask)
out_side_masks.append(side_mask)
self.outputs['Vertices'].sv_set(out_verts) self.outputs['Vertices'].sv_set(out_verts)
self.outputs['Edges'].sv_set(out_edges) self.outputs['Edges'].sv_set(out_edges)
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать