Открыть боковую панель
nikitronn
sverchok
Коммиты
3ce462e4
Не подтверждена
Коммит
3ce462e4
создал
Авг 01, 2022
по автору
Sergey
Зафиксировано автором
GitHub
Авг 01, 2022
Просмотр файлов
Repeater vectorization (#4601)
* fix vectorization problem * limit for level 1 only
владелец
7c702746
Изменения
1
Скрыть пробелы
Построчно
Рядом
nodes/list_struct/repeater.py
Просмотр файла @
3ce462e4
...
...
@@ -17,10 +17,10 @@
# ##### END GPL LICENSE BLOCK #####
import
bpy
from
bpy.props
import
BoolProperty
,
IntProperty
,
StringProperty
from
bpy.props
import
BoolProperty
,
IntProperty
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
):
...
...
@@ -33,8 +33,6 @@ class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode):
level
:
IntProperty
(
name
=
'level'
,
default
=
1
,
min
=
0
,
update
=
updateNode
)
number
:
IntProperty
(
name
=
'number'
,
default
=
1
,
min
=
1
,
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
):
layout
.
prop
(
self
,
"level"
,
text
=
"level"
)
...
...
@@ -46,22 +44,23 @@ class ListRepeaterNode(bpy.types.Node, SverchCustomTreeNode):
self
.
outputs
.
new
(
'SvStringsSocket'
,
"Data"
)
def
sv_update
(
self
):
if
'Data'
in
self
.
inputs
and
self
.
inputs
[
'Data'
].
link
s
:
if
self
.
inputs
[
'Data'
].
is_
link
ed
:
inputsocketname
=
'Data'
outputsocketname
=
[
'Data'
,
]
changable_sockets
(
self
,
inputsocketname
,
outputsocketname
)
def
process
(
self
):
if
not
(
self
.
inputs
[
'Data'
].
is_linked
and
self
.
outputs
[
'Data'
].
is_linked
):
return
data
=
self
.
inputs
[
'Data'
].
sv_get
(
deepcopy
=
False
,
default
=
[])
number
=
self
.
inputs
[
'Number'
].
sv_get
(
deepcopy
=
False
)[
0
]
data
=
self
.
inputs
[
'Data'
].
sv_get
(
deepcopy
=
False
)
Number
=
self
.
inputs
[
'Number'
].
sv_get
(
default
=
[[
self
.
number
]],
deepcopy
=
False
)[
0
]
if
self
.
level
==
1
:
# only for 1 otherwise it changes behaviour dramatically
obj_num
=
max
(
len
(
data
),
len
(
number
))
data
=
fixed_iter
(
data
,
obj_num
)
if
data
else
[]
out_
=
self
.
count
(
data
,
self
.
level
,
N
umber
)
out_
=
self
.
count
(
data
,
self
.
level
,
n
umber
)
if
self
.
unwrap
:
out
=
[]
if
len
(
out_
)
>
0
:
out
=
[]
for
o
in
out_
:
out
.
extend
(
o
)
else
:
...
...
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать