Построение линейчатого незамкнутого тела
Функция
MbResultType RuledShell( const MbRuledShellParams & ruledParams,
MbRuledShellResult & outParams );
выполняет построение линейчатого незамкнутого тела по двум кривым, заданным в параметрах.
Функция принимает в качестве входного параметра объект ruledParams класса MbRuledShellParams (см. определение в op_shell_parameter.h), содержащий параметры построения:
pars — параметры операции (геометрическая информация, необходимая для построения тела);
operNames — именователь граней, ребер и вершин построенного тела;
isPhantom — режим создания фантома.
Выходным параметром функции является построенное тело result.
Функция возвращает код результата операции из перечисления MbResultType.
Функция объявлена в файле action_shell.h.
Линейчатое тело строится по кривым pars.curve0 и pars.curve1. Если кривые являются составными, то на каждой паре сегментов составных кривых будет построена линейчатая поверхность, а на каждой поверхности будет построена грань тела. Смежные грани будут иметь общие ребра.
Кривые pars.curve0 и pars.curve1 могут быть дополнительно разбиты на сегменты параметрами pars.breaks0 и pars.breaks1.
Параметр pars.joinByVertices указывает, соединять ли контуры с одинаковым количеством сегментов через вершины. По умолчанию pars.joinByVertices = false.
Параметр pars.checkSelfInt указывает, проверять ли кривые на самопересечение. По умолчанию pars.checkSelfInt = false.
Параметр pars.simplifyFaces указывает, упрощать ли грани построенного тела.
Параметр pars.proportional инициирует пропорциональную натуральной параметризацию кривых.
Параметр pars.mismatchMax определяет допустимое несовпадение противолежащих точек стыковки сегментов.
Параметр pars.segmentSplit указывает, разделять ли оболочку на грани по сегментам контуров.
На рисунке приведено линейчатое тело, построенное по составным кривым, каждая из которых содержит три сегмента:
Построенное тело состоит из одной или нескольких граней. Линейчатое тело всегда имеет края, проходящие по исходным кривым. Рассматриваемая функция может выполнять проверку на самопересечение граней. Кривые pars.curve0 и pars.curve1 могут быть циклически замкнуты. В журнал созданного тела функция добавляет строитель MbRuledShell, который объявлен в файле cr_ruled_shell.h.