Как заполнить вокселы OpenVDB, которые находятся внутри заданной плоскости?

У меня есть четырехугольник, определяемый 4 (x, y, z) точками (как плоскость с ребрами). У меня есть сетка OpenVDB. Я хочу заполнить все вокселы значением 1, которые находятся внутри моего четырехугольника (включая ребра). Это возможно без установки каждого вокселя четырехугольника (ограниченной плоскости) вручную?

2

Решение

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

void fill(const CoordBBox& bbox, const ValueType& value, bool active = true);

функция, которая существует в Grid-учебный класс. Невозможно преобразовать CoordBBox для вращений вместо этого вы должны будете сделать это, изменив трансформацию сетки. С псевдокодом это может выглядеть

CoordBBox plane; // created from your points
Transform old = grid.transform();
grid.setTransform(...); // Some transformation that places the grid correctly with respect to the plane
grid.fill(plane, 1);
grid.setTransform(old);

Если это не так, вам придется установить значения самостоятельно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]