Построение полигонов объекта
Виртуальный метод трёхмерных геометрических объектов
void MbSpaceItem::CalculateWire( double sag,
MbMesh & mesh );
заполняет присланный полигональный объект mesh набором полигонов, аппроксимирующих геометрический объект.
Входным параметром метода является sag – максимально допустимое отклонение полигонального элемента от оригинала по прогибу.
Выходным параметром метода является полигональный объект mesh.
Метод объявлен в файле space_item.h и заголовочных файлах наследников MbSpaceItem.
Полигональный объект описан в подразделе Полигональный объект MbMesh. Параметр sag определяет максимально допустимое расстояние между объектом и ломаной линией, проходящей по точкам полигонов. Рассматриваемый метод заполняет только множество указателей на полигоны mesh.wires (ломаные линии).
Кривую рассматриваемый метод аппроксимирует одним полигоном. Контур рассматриваемый метод аппроксимирует несколькими полигонами, каждый из которых проходит по соответствующему сегменту контура. На рис. 1 приведена кривая и её полигональный объект, состоящий из одного полигона.
Рис. 1
Поверхность рассматриваемый метод аппроксимирует набором полигонов, проходящих по u-линиям, v-линиям и по границе поверхности. На рис. 2 приведён полигональный объект поверхности, состоящий из нескольких ломаных линий.
Рис. 2
Тело рассматриваемый метод аппроксимирует набором ломаных линий, проходящих внутри грани вдоль u-линий и v-линий поверхностей граней, и набором ломаных, аппроксимирующих кривые, на которых базируются рёбра тела. На рис. 3 справа приведён полигональный объект тела:
Рис. 3
Для объектов геометрической модели рассматриваемый метод работает аналогично методу CalculateMesh() при stepData.stepType == ist_SpaceStep, stepData.sag == sag, note.wire == true, note.seam == true.