Maya Mel Script - Как получить нижнюю точку модели? - PullRequest
0 голосов
/ 08 июня 2018

Как получить нижнюю точку модели с помощью скрипта Mel?Maya Bottom Point

Если я могу получить координату Y нижней точки, я могу получить точку нижней, но я не могу понять, как ее получить.

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Цикл по всем вершинам может быть медленным, особенно с плотной сеткой.Вместо этого можно использовать ограничивающий прямоугольник объекта:

float $bb[] = `getAttr pCube1.boundingBoxMin`;
print($bb[1]); // Lowest position in Y

Еще одно преимущество заключается в том, что вы не полагаетесь на вершины, поэтому это не обязательно должен быть полигональный меш.

0 голосов
/ 08 июня 2018

Если я могу получить координату Y нижней точки, я могу получить точку нижней, но не могу понять, как ее получить.

Iвыяснить это: Y-координата нижней точки = Y-координата нижней вершины модели.Сделайте это следующим образом: переберите все вершины, чтобы получить самую низкую вершину.

Предположим, что целевой объект: "pCube1".Вот код для получения наименьшего Y.

int $vtxIdx;
int $vCount[] = `polyEvaluate -vertex pCube1`; //Get vertex count
float $lowestY = 2147483647.0;
float  $crtY = 0.0;
for ($vtxIdx = 0; $vtxIdx < $vCount[0]; $vtxIdx++)//Loop through vetex
{
    float $pos[] = `xform -q -ws -t ("pCube1.vtx["+$vtxIdx+"]")`;//Get vertex position
    $crtY = $pos[1];
    if($crtY < $lowestY)
    {
        $lowestY = $crtY;//Get the lowest Y
    }
}
print ($lowestY);

Итак, наименьшая точка = (pCube1.X, lowY, pCube1.Z).

...