.. role:: blue :class: blue Управление вычислением триангуляции =================================== .. _Triangulation_Calculation_Control: .. версия ядра: На входе в методы построения полигональных представлений используется структура :blue:`MbStepData`, которая приведена на рис. 1: .. figure:: ../../pictures/R.1.1.1.png :width: 9cm :align: center Рис. 1 Структура *MbStepData* объявлена в файле *mb_data.h*. Структура *MbStepData* содержит следующие данные: - *unsigned char stepType* – поле, определяющее способ вычисления приращения параметра; - *double sag* – максимально допустимое отклонение по прогибу; - *double angle* – максимально допустимое отклонение по углу касательных или нормалей; - *double length* – максимально допустимое расстояние между соседними точками; - *unsigned int maxCount* – максимальное количество ячеек в строке или столбце триангуляционной сетки. Структура *MbStepData* управляет густотой сетки полигонального объекта и содержит данные, по которым вычисляется шаг по параметру при движении вдоль кривых и поверхностей модели. Поле *stepType* определяет способ вычисления приращения параметра при движении вдоль кривой или поверхности и может содержать маски перечисления :blue:`MbeStepType`, объявленного в файле *mb_enum.h*: - *ist_SpaceStep* – для визуализации геометрической формы; - *ist_DeviationStep* – для операций построения; - *ist_MetricStep* – для 3D принтеров; - *ist_ParamStep* – для визуализации геометрической формы объектов с привязкой текстуры к параметрам поверхности; - *ist_CollisionStep* – для определения столкновений элементов модели; - *ist_MipStep* – для вычисления инерционных характеристик. Параметр *sag* ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого отклонения полигонального объекта от оригинала по прогибу. Параметр *angle* ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого отклонения полигонального объекта от оригинала по угловому отклонению касательных кривой или нормалей поверхности в соседних точках на расстоянии шага. Параметр *length* ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого размера элемента полигонального объекта – стороны треугольника или отрезка полигона. Параметр *maxCount* ограничивает шаг по параметру кривой или поверхности исходя из максимально допустимого количества разбиений в строке или столбце триангуляционной сетки. На входе в методы построения полигональных представлений используется структура *MbFormNote*, которая приведена на рис. 2: .. figure:: ../../pictures/R.1.1.2.png :width: 9cm :align: center Рис. 2 Структура *MbFormNote* объявлена в файле *mb_data.h*. Структура *MbFormNote* содержит следующие данные: - *bool wire* – флаг построения полигонного объекта; - *bool grid* – флаг построения полигонного объекта; - *bool seam* – флаг использования шовных рёбер. Структура *MbFormNote* определяет способ построения полигонального объекта: при *wire* == true полигональный объект заполняется ломаными линиями, при *grid* == true полигональный объект заполняется триангуляциями. Параметр *seam* определяет способ представления швов в полигональном объекте: при *seam* == true триангуляция не замыкается на швах и шовные рёбра обрабатываются как обычные рёбра – в триангуляции их точки считаются краевыми и для них строятся полигоны; при *seam* == false триангуляция замыкается на швах и шовные рёбра игнорируются – триангуляции строятся замкнутыми, а полигоны для швов не строятся.