Houdini VEX: методы перебора точек с примерами кода

В Houdini VEX (Vector Expression) — это мощный язык сценариев, используемый для управления геометрией и создания пользовательских эффектов. Чтобы перебрать точки в Houdini с помощью VEX, вы можете использовать несколько методов. Вот несколько примеров:

Метод 1: цикл for

int numPoints = npoints(geoself());
for (int i = 0; i < numPoints; ++i)
{
    vector pos = point(geoself(), "P", i);
    // Do something with the position
}

Метод 2: для каждого цикла

int pt;
vector pos;
foreach (pt; @ptnum)
{
    pos = point(geoself(), "P", pt);
    // Do something with the position
}

Метод 3: спор между точками

int pts[] = expandpointgroup(geoself(), "@ptnum");
foreach (int pt; pts)
{
    vector pos = point(geoself(), "P", pt);
    // Do something with the position
}

Метод 4: Облако точек

pcopen(geoself(), "P", @P, ch("maxdist"), chi("maxpoints"));
while (pciterate(0))
{
    int pt = pcimport(0, "point.number");
    vector pos = pcimport(0, "P", pt);
    // Do something with the position
}

Это всего лишь несколько примеров того, как перебирать точки с помощью VEX в Houdini. Не забудьте заменить комментарий «// Сделайте что-нибудь с позицией» на желаемый код или операцию.