У меня есть четырехугольник, определяемый 4 (x, y, z) точками (как плоскость с ребрами). У меня есть сетка OpenVDB. Я хочу заполнить все вокселы значением 1, которые находятся внутри моего четырехугольника (включая ребра). Это возможно без установки каждого вокселя четырехугольника (ограниченной плоскости) вручную?
Если четыре точки строят прямоугольник, это может быть возможно с помощью
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);
Если это не так, вам придется установить значения самостоятельно.
Других решений пока нет …