Управление вычислением триангуляции

На входе в методы построения полигональных представлений используется структура MbStepData, которая приведена на рис. 1:

../../../../_images/R.1.1.1.png

Рис. 1

Структура MbStepData объявлена в файле mb_data.h. Структура MbStepData содержит следующие данные:

  • unsigned char stepType – поле, определяющее способ вычисления приращения параметра;

  • double sag – максимально допустимое отклонение по прогибу;

  • double angle – максимально допустимое отклонение по углу касательных или нормалей;

  • double length – максимально допустимое расстояние между соседними точками;

  • unsigned int maxCount – максимальное количество ячеек в строке или столбце триангуляционной сетки.

Структура MbStepData управляет густотой сетки полигонального объекта и содержит данные, по которым вычисляется шаг по параметру при движении вдоль кривых и поверхностей модели. Поле stepType определяет способ вычисления приращения параметра при движении вдоль кривой или поверхности и может содержать маски перечисления MbeStepType, объявленного в файле mb_enum.h:

  • ist_SpaceStep – для визуализации геометрической формы;

  • ist_DeviationStep – для операций построения;

  • ist_MetricStep – для 3D принтеров;

  • ist_ParamStep – для визуализации геометрической формы объектов с привязкой текстуры к параметрам поверхности;

  • ist_CollisionStep – для определения столкновений элементов модели;

  • ist_MipStep – для вычисления инерционных характеристик.

Параметр sag ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого отклонения полигонального объекта от оригинала по прогибу. Параметр angle ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого отклонения полигонального объекта от оригинала по угловому отклонению касательных кривой или нормалей поверхности в соседних точках на расстоянии шага. Параметр length ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого размера элемента полигонального объекта – стороны треугольника или отрезка полигона. Параметр maxCount ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого количества разбиений в строке или столбце триангуляционной сетки.

На входе в методы построения полигональных представлений используется структура MbFormNote, которая приведена на рис. 2:

../../../../_images/R.1.1.2.png

Рис. 2

Структура MbFormNote объявлена в файле mb_data.h. Структура MbFormNote содержит следующие данные:

  • bool wire – флаг построения полигонного объекта;

  • bool grid – флаг построения полигонного объекта;

  • bool seam – флаг использования шовных рёбер.

Структура MbFormNote определяет способ построения полигонального объекта: при wire == true полигональный объект заполняется ломаными линиями, при grid == true полигональный объект заполняется триангуляциями. Параметр seam определяет способ представления швов в полигональном объекте: при seam == true триангуляция не замыкается на швах и шовные рёбра обрабатываются как обычные рёбра – в триангуляции их точки считаются краевыми и для них строятся полигоны; при seam == false триангуляция замыкается на швах и шовные рёбра игнорируются – триангуляции строятся замкнутыми, а полигоны для швов не строятся.