Построение составной кривой

Функция

MbResultType CreateContour( MbCurve3D   &  curve,
                            MbContour3D *& result )

выполняет построение составной кривой на базе одной исходной кривой.

Входным параметром функции является исходная кривая curve.

При успешном завершении работы функция возвращает rt_Success, в противном случае функция возвращает код ошибки из перечисления MbResultType.

Выходным параметром функции является построенная составная кривая (контур) result.

При успешном выполнении в result возвращается указатель на новый объект MbContour3D; удаление объекта возлагается на вызывающий код.

Функция объявлена в файле action_curve3d.h.

Функция создает составную кривую result на базе исходной кривой curve. Если исходная кривая curve является составной кривой, то в кривую result будут положены составляющие элементы исходной кривой. Составная кривая описана в параграфе Контур MbContour3D.

Функция

MbResultType AddCurveToContour( MbCurve3D & curve,
                                MbCurve3D & contour,
                                bool        toEnd )

модифицирует составную кривую путём добавления кривой.

Входными параметрами функции являются:

  • curve — добавляемая кривая;

  • contour — модифицируемая составная кривая;

  • toEnd — флаг места добавления кривой.

Выходным параметром функции является модифицируемая кривая contour.

При успешном завершении работы функция возвращает rt_Success, в противном случае функция возвращает код ошибки из перечисления MbResultType.

Функция объявлена в файле action_curve3d.h.

Функция модифицирует составную кривую contour путём добавления кривой curve в начало или конец составной кривой. Если toEnd = true, то кривая curve будет добавлена в конец составной кривой contour, если toEnd = false, то кривая curve будет добавлена в начало составной кривой contour. Точки стыковки модифицируемой кривой и добавляемой кривой должны совпадать, рис. 1:

../../../../_images/M.4.7.1.png

Рис. 1

Если добавляемая кривая curve является составной кривой, то в кривую contour будут добавлены составляющие элементы добавляемой кривой.

Функция

MbResultType CreateContours( RPArray<MbCurve3D>   & curves,
                             double                 metricEps,
                             RPArray<MbContour3D> & result,
                             bool                   onlySmoothConnected = false,
                             VERSION                version = Math::DefaultMathVersion() )

выполняет построение составных кривых из множества исходных кривых (оригиналов кривых).

Входными параметрами функции являются:

  • curves — множество исходных кривых;

  • metricEps — радиус захвата для стыковки исходных кривых;

  • onlySmoothConnected — флаг использования гладкой стыковки исходных кривых;

  • version — версия исполнения.

Выходным параметром функции является множество построенных составных кривых result.

При успешном завершении работы функция возвращает rt_Success, в противном случае функция возвращает код ошибки из перечисления MbResultType.

Функция объявлена в файле action_curve3d.h.

Функция на базе исходных кривых curves создает составные кривые и складывает их в множество result.

Если флаг onlySmoothConnected = true, то все построенные составные кривые будут гладкими, то есть в точках стыковки кривые будут иметь одинаково направленные касательные, но длина производной в точках стыковки может меняться скачком. Если какая-либо исходная кривая множества curves является составной кривой, то в составную кривую будут добавлены составляющие элементы такой исходной кривой.

Вырожденные кривые, кривые с нулевым указателем и дубликаты кривых удаляются из входного массива, если у них нет владельца.

Функция

MbResultType CreateContours( RPArray<MbCurve3D> & curves,
                             double               metricAcc,
                             bool                 onlySmoothConnected = false,
                             VERSION              version = Math::DefaultMathVersion() )

выполняет построение контуров по набору кривых с удалением вырожденных кривых (на оригиналах кривых).

Входными параметрами функции являются:

  • curves — множество исходных кривых (модифицируется);

  • metricAcc — радиус захвата для стыковки исходных кривых;

  • onlySmoothConnected — флаг использования в контуре только гладко стыкующихся сегментов;

  • version — версия исполнения.

Выходным параметром функции является множество curves, которое после выполнения содержит построенные составные кривые.

При успешном завершении работы функция возвращает rt_Success, в противном случае функция возвращает код ошибки из перечисления MbResultType.

Функция объявлена в файле action_curve3d.h.

Функция автоматически удаляет из массива curves вырожденные кривые (с нулевой длиной или с совпадающими начальной и конечной точками (для незамкнутых кривых)), кривые с нулевым указателем и дубликаты кривых, не имеющих владельца. Результирующие составные кривые складываются обратно в массив curves, заменяя исходные элементы.