Это действительно два отдельных вопроса, но здесь идет речь:
Эта функция вернет массив, состоящий из индекса лица и значения 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
.