Полигональный объект MbMesh

Класс MbMesh объявлен в файле mesh.h.

Полигональный объект MbMesh является наследником класса MbItem и описывается множеством триангуляций RPArray< MbGrid > grids, множеством полигонов RPArray< MbPolygon3D > wires, множеством апексов RPArray< MbApex3D > peaks, указателем на оригинальный объект MbRefItem item, типом type, габаритным кубом cube и признаком замкнутости closed.

Полигональный объект представляет собой набор треугольных и четырёхугольных пластин, ломаных линий и отдельных точек. Одним из способов построения полигонального объекта является аппроксимация других объектов геометрической модели, например тела. Каждая i-ая грань тела аппроксимируется триангуляцией grids[i], каждое j-ое ребро тела аппроксимируется полигоном wires[j], каждой k-ой вершине тела соответствует апекс peaks[k], признак замкнутости closed соответствует замкнутости тела. Ещё одним способом получения полигонального объекта является импорт данных с помощью конвертера полигонального представления.

Триангуляция MbGrid представляет собой множество точек SArray< MbFloatPoint3D > points, согласованное с ним множество нормалей SArray< MbFloatVector3D > normals (количество точек равно количеству нормалей), множество двумерных точек параметрической области поверхности SArray< MbFloatPoint > params (количество двумерных точек равно количеству трёхмерных точек или равно нулю – множество может быть пустым), множество треугольных пластин SArray< MbTriangle > triangles в виде трёх индексов множества точек points, множество четырёхугольных пластин SArray< MbQuadrangle > quadrangles в виде четырёх индексов множества точек points. Пластины триангуляции аппроксимируют некоторую поверхность.

Полигон MbPolygon3D представляет собой упорядоченное множество точек, последовательное соединение которых даёт ломаную линию, аппроксимирующую некоторую кривую.

Апекс MbApex3D представляет собой точку, наделённую дополнительными данными.

Указатель на оригинальный объект item может быть равен нулю, а тип type может быть неопределённым.

Векторное изображение полигонального объекта приведено на рис. 1:

../../../../_images/O.8.5.1.png

Рис. 1

Тонированное изображение полигонального объекта приведено на рис. 2:

../../../../_images/O.8.5.2.png

Рис. 2

На рисунке видны отдельные треугольники объекта из-за того, что направление нормалей в каждом треугольнике постоянно. Если направление нормалей в треугольниках триангуляции непрерывно меняется, то отдельные треугольники объекта становятся не видны, см. рис. 3:

../../../../_images/O.8.5.3.png

Рис. 3

Полигональный объект может быть создан методом MbItem:: CreateMesh() или методом MbItem:: AddYourMesh(). Полигональный объект используется для визуализации, расчётов и производства моделируемых объектов. Основным преимуществом полигонального объекта является простота и высокая скорость вычислений, например пересечения с прямой линией.