Открыть боковую панель
nikitronn
sverchok
Коммиты
d11262b8
Коммит
d11262b8
создал
Сен 12, 2022
по автору
Ilya Portnov
Просмотр файлов
Create new viewer nodes instead of Evaluate Curve/Surface + Viewer Draw
from right click menu.
владелец
a1d710a9
Изменения
1
Скрыть пробелы
Построчно
Рядом
ui/nodeview_rclick_menu.py
Просмотр файла @
d11262b8
...
...
@@ -105,7 +105,7 @@ def conect_to_3d_viewer(tree):
if
hasattr
(
tree
.
nodes
.
active
,
'viewer_map'
):
view_node
(
tree
)
else
:
add_connection
(
tree
,
bl_idname_new_node
=
"SvViewerDrawMk4"
,
offset
=
[
60
,
0
])
add_connection
(
tree
,
bl_idname_new_node
=
None
,
offset
=
[
60
,
0
])
def
view_node
(
tree
):
'''viewer map is a node attribute to inform to the operator how to visualize
...
...
@@ -145,15 +145,27 @@ def view_node(tree):
links
.
new
(
node_list
[
output_s
[
0
]].
outputs
[
output_s
[
1
]],
node_list
[
input_s
[
0
]].
inputs
[
input_s
[
1
]])
def
get_viewer_node_bl_idname
(
output_map
,
specific_bl_idname
):
if
specific_bl_idname
is
not
None
:
return
specific_bl_idname
else
:
if
'curve'
in
output_map
:
return
'SvCurveViewerDrawNode'
elif
'surface'
in
output_map
:
return
'SvSurfaceViewerDrawNode'
elif
'solid'
in
output_map
:
return
'SvSolidViewerNode'
else
:
return
'SvViewerDrawMk4'
def
add_connection
(
tree
,
bl_idname_new_node
,
offset
):
nodes
=
tree
.
nodes
links
=
tree
.
links
output_map
=
get_output_sockets_map
(
nodes
.
active
)
existing_node
=
nodes
.
active
output_map
=
get_output_sockets_map
(
existing_node
)
bl_idname_new_node
=
get_viewer_node_bl_idname
(
output_map
,
bl_idname_new_node
)
if
isinstance
(
bl_idname_new_node
,
str
):
# single new node..
...
...
@@ -190,37 +202,12 @@ def add_connection(tree, bl_idname_new_node, offset):
links
.
new
(
outputs
[
output_map
[
'faces'
]],
inputs
[
2
])
if
'edges'
in
output_map
:
links
.
new
(
outputs
[
output_map
[
'edges'
]],
inputs
[
1
])
elif
'curve'
in
output_map
:
eval_node
=
nodes
.
new
(
'SvExEvalCurveNode'
)
apply_default_preset
(
eval_node
)
offset_node_location
(
existing_node
,
eval_node
,
offset
)
frame_adjust
(
existing_node
,
eval_node
)
offset_node_location
(
eval_node
,
new_node
,
offset
)
frame_adjust
(
eval_node
,
new_node
)
links
.
new
(
outputs
[
output_map
[
'curve'
]],
eval_node
.
inputs
[
0
])
links
.
new
(
eval_node
.
outputs
[
0
],
inputs
[
0
])
links
.
new
(
eval_node
.
outputs
[
1
],
inputs
[
1
])
elif
'surface'
in
output_map
:
eval_node
=
nodes
.
new
(
'SvExEvalSurfaceNode'
)
apply_default_preset
(
eval_node
)
offset_node_location
(
existing_node
,
eval_node
,
offset
)
frame_adjust
(
existing_node
,
eval_node
)
offset_node_location
(
eval_node
,
new_node
,
offset
)
frame_adjust
(
eval_node
,
new_node
)
links
.
new
(
outputs
[
output_map
[
'surface'
]],
eval_node
.
inputs
[
0
])
links
.
new
(
eval_node
.
outputs
[
0
],
inputs
[
0
])
links
.
new
(
eval_node
.
outputs
[
1
],
inputs
[
1
])
links
.
new
(
eval_node
.
outputs
[
2
],
inputs
[
2
])
elif
'solid'
in
output_map
:
tree
.
nodes
.
remove
(
new_node
)
new_node
=
nodes
.
new
(
'SvSolidViewerNode'
)
apply_default_preset
(
new_node
)
offset_node_location
(
existing_node
,
new_node
,
offset
)
frame_adjust
(
existing_node
,
new_node
)
links
.
new
(
outputs
[
output_map
[
'solid'
]],
new_node
.
inputs
[
0
])
# existing_node.process_node(None)
elif
bl_idname_new_node
==
'SvCurveViewerDrawNode'
:
links
.
new
(
outputs
[
output_map
[
'curve'
]],
new_node
.
inputs
[
'Curve'
])
elif
bl_idname_new_node
==
'SvSurfaceViewerDrawNode'
:
links
.
new
(
outputs
[
output_map
[
'surface'
]],
new_node
.
inputs
[
'Surface'
])
elif
bl_idname_new_node
==
'SvSolidViewerNode'
:
links
.
new
(
outputs
[
output_map
[
'solid'
]],
new_node
.
inputs
[
'Solid'
])
else
:
...
...
...
@@ -228,8 +215,6 @@ def add_connection(tree, bl_idname_new_node, offset):
# maybe vdmk2 + indexviewer
...
class
SvGenericDeligationOperator
(
bpy
.
types
.
Operator
):
bl_idname
=
"node.sv_deligate_operator"
...
...
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать