Построение деформируемого параллелепипеда
Функция
MbResultType NurbsBlockSolid( const MbPlacement3D & place,
double ax,
double ay,
double az,
bool outDir,
const MbSNameMaker & names,
SimpleName name,
NurbsBlockValues & param,
MbSolid *& result )
выполняет построение тела в форме прямого параллелепипеда с деформируемыми гранями.
Входными параметрами функции являются:
place – локальная система координат;
ax – размер по оси X;
ay – размер по оси Y;
az – размер по оси Z;
outDir – ориентация нормалей граней наружу тела (true – нормали направлены наружу);
names – именователь операции;
name – главное имя;
param – параметры построения граней (см. структуру NurbsBlockValues в op_shell_parameter.h).
Выходным параметром функции является тело result, построенное на NURBS-поверхностях.
Функция объявлена в файле action_direct.h.
Рассматриваемая функция позволяет получить деформируемое тело в форме прямоугольного параллелепипеда, размеры которого в локальной системе координат place определяют параметры ax, ay, az. Все грани параллелепипеда построены на базе плоских NURBS-поверхностей, порядок которых и количество контрольных точек определяются параметром param.
На рисунке приведен параллелепипед result, построенный с помощью функции NurbsBlockSolid(), и его контрольные точки. На рисунке справа приведен тот же параллелепипед после деформирования путем перемещения контрольных точек граней:
Функция NurbsBlockSolid() добавляет в журнал построенного тела строитель MbNurbsBlockSolid, который содержит все необходимые данные для выполнения операции. Строитель MbNurbsBlockSolid объявлен в файле cr_nurbs_block_solid.h.