Это действительно два отдельных вопроса, но здесь идет:
Эта функция возвращает массив, состоящий из индекса номинальной, а значение point3 изображающая индексы вершин, которые создают это лицо.
fn GetAllFaceVertices meshObj =
(
for v = 1 to m.numVerts collect #(v, getFace v)
)
Эта функция вернет угол между двумя гранями. Он делает это, получая нормаль каждого лица, а затем возвращает дуговый косинус точечного произведения двух нормалей.
fn GetFaceAngles meshObj faceA faceB =
(
local nA = getFaceNormal meshObj faceA
local nB = getFaceNormal meshObj faceB
acos (dot nA nB)
)
Обратите внимание, что обе эти функции ожидать editable mesh
объекта. Если вам нужно работать с объектом editable poly
, существуют аналогичные методы, которые используют структуру polyop
.
Мне удалось решить это с помощью полиопа. Одна вещь: как определить направление угла? Насколько я понимаю, нормали обращены наружу, так как я могу определить, является ли 90 ° губой или ударом? – Zurechtweiser