Не подтверждена Коммит 3ce462e4 создал по автору Sergey's avatar Sergey Зафиксировано автором GitHub
Просмотр файлов

Repeater vectorization (#4601)

* fix vectorization problem

* limit for level 1 only
владелец 7c702746
...@@ -17,10 +17,10 @@ ...@@ -17,10 +17,10 @@
# ##### END GPL LICENSE BLOCK ##### # ##### END GPL LICENSE BLOCK #####
import bpy import bpy
from bpy.props import BoolProperty, IntProperty, StringProperty from bpy.props import BoolProperty, IntProperty
from sverchok.node_tree import SverchCustomTreeNode from sverchok.node_tree import SverchCustomTreeNode
from sverchok.data_structure import (updateNode, changable_sockets) from sverchok.data_structure import (updateNode, changable_sockets, fixed_iter)
class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode): class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode):
...@@ -33,8 +33,6 @@ class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode): ...@@ -33,8 +33,6 @@ class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode):
level: IntProperty(name='level', default=1, min=0, update=updateNode) level: IntProperty(name='level', default=1, min=0, update=updateNode)
number: IntProperty(name='number', default=1, min=1, update=updateNode) number: IntProperty(name='number', default=1, min=1, update=updateNode)
unwrap: BoolProperty(name='unwrap', default=False, update=updateNode) unwrap: BoolProperty(name='unwrap', default=False, update=updateNode)
typ: StringProperty(name='typ', default='')
newsock: BoolProperty(name='newsock', default=False)
def draw_buttons(self, context, layout): def draw_buttons(self, context, layout):
layout.prop(self, "level", text="level") layout.prop(self, "level", text="level")
...@@ -46,22 +44,23 @@ class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode): ...@@ -46,22 +44,23 @@ class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode):
self.outputs.new('SvStringsSocket', "Data") self.outputs.new('SvStringsSocket', "Data")
def sv_update(self): def sv_update(self):
if 'Data' in self.inputs and self.inputs['Data'].links: if self.inputs['Data'].is_linked:
inputsocketname = 'Data' inputsocketname = 'Data'
outputsocketname = ['Data', ] outputsocketname = ['Data', ]
changable_sockets(self, inputsocketname, outputsocketname) changable_sockets(self, inputsocketname, outputsocketname)
def process(self): def process(self):
if not (self.inputs['Data'].is_linked and self.outputs['Data'].is_linked): data = self.inputs['Data'].sv_get(deepcopy=False, default=[])
return number = self.inputs['Number'].sv_get(deepcopy=False)[0]
data = self.inputs['Data'].sv_get(deepcopy=False) if self.level == 1: # only for 1 otherwise it changes behaviour dramatically
Number = self.inputs['Number'].sv_get(default=[[self.number]], deepcopy=False)[0] obj_num = max(len(data), len(number))
data = fixed_iter(data, obj_num) if data else []
out_ = self.count(data, self.level, Number) out_ = self.count(data, self.level, number)
if self.unwrap: if self.unwrap:
out = []
if len(out_) > 0: if len(out_) > 0:
out = []
for o in out_: for o in out_:
out.extend(o) out.extend(o)
else: else:
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать