Форум

Редактор нормалей: Face для нескольких выделенных лиц

24 августа 2016 21:05 #11382
Предлагаю простое изменение в коде класса B4W_FaceVertexNormals (vertex_normals.py) которое позволяет этой функции работать с любым количеством выделенных лиц и задавать им независимые нормали:

Старый код:
if len(sel_indices) < 3:
self.report({'INFO'}, _('Please select at least 3 vertices'))
return {"FINISHED"}

for p in mesh.polygons:
all_in = True

for i in sel_indices:
if mesh.vertices.index not in p.vertices:
all_in = False
break

if all_in:
for i in sel_indices:
set_vertex_normal(i, (p.normal.x, p.normal.y, p.normal.z))

Новый код:
if len(sel_indices) < 3:
self.report({'INFO'}, _('Please select at least 3 vertices'))
return {"FINISHED"}
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.mode_set(mode='EDIT')

sel_polys = []

for p in mesh.polygons:
if p.select == True:
sel_polys.append(p)

for i in sel_indices:
resVec = mathutils.Vector((0,0,0))
for p in sel_polys:
if i.index in p.vertices:
resVec = resVec + p.normal
resVec.normalize()
set_vertex_normal(i,(resVec.x,resVec.y,resVec.z))
25 августа 2016 15:49 #11396
Здравствуйте! И добро пожаловать на наш форум!

Самый удобный способ предложения изменений в коде - это сделать pull request в проект на гитхабе https://github.com/TriumphLLC/Blend4Web
Менее удобный - опубликовать здесь на форуме патч, сформированный командой diff или git diff.
А так получается неотформатированный текст, который придется вручную заменять и формировать отступы, что для питона является частью синтаксиса.
Было бы очень здорово, если бы вы воспользовались одним из предложенных способов. Спасибо за интерес к нашему проекту!
Александр (команда Blend4Web)
25 августа 2016 16:20 #11397
PS Правда есть небольшая юридическая заморочка: если патч будет принят, вам придется подписать Contributor License Agreement, подобное тому, что у Canonical.
Александр (команда Blend4Web)
27 августа 2016 22:49 #11440
Спасибо за помощь, сделал через GitHub. Жду ответа там.
29 августа 2016 10:21 #11452
Спасибо! К следующему релизу обязательно рассмотрим этот патч.
Александр (команда Blend4Web)
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.