Построение полигональной проекции тел
Метод
void HiddenLinesMapping( const RPArray< MbLump > & lumps,
const MbPlacement3D & place,
double znear,
double sag,
RPArray< MbPolygon3DSolid > & visibleEdges,
RPArray< MbPolygon3DSolid > & hiddenEdges,
RPArray< MbPolygon3DSolid > & visibleTangs,
RPArray< MbPolygon3DSolid > & hiddenTangs );
выполняет построение полигональной проекции множества тел на заданную плоскость.
Входными параметрами метода являются:
lumps – проецируемые тела в локальных системах координат,
place – проекционная плоскость,
znear – параметр точки наблюдения,
sag – максимально допустимое отклонение по прогибу.
Выходными параметрами метода являются:
visibleEdges – полигоны видимых негладких ребер,
hiddenEdges – полигоны невидимых негладких ребер,
visibleTangs – полигоны видимых гладких ребер,
hiddenTangs – полигоны невидимых гладких ребер.
Метод не возвращает значений.
Метод объявлен в файле map_create.h.
Проекционной плоскостью является плоскость XY локальной системы координат place.
Параметр lumps содержит тела и матрицы преобразования их из локальной системы координат. Параметр znear определяет тип изображения. При znear = 0 строится параллельная проекция объектов. Класс MbPolygon3DSolid содержит номер компонента и указатель на полигон, состоящий из множества точек, последовательное соединение которых дает аппроксимацию проекции ребра на плоскость. Точность аппроксимации определяет параметр sag. Полигоны visibleEdges и hiddenEdges представляют собой соответственно видимые и невидимые полигональные проекции негладких ребер на плоскость XY локальной системы координат place. Полигоны visibleTangs и hiddenTangs представляют собой соответственно видимые и невидимые полигональные проекции гладких ребер на плоскость XY локальной системы координат place.
Метод
void VisualLinesMapping( const RPArray< MbLump > & lumps,
const MbPlacement3D & place,
double znear,
double sag,
RPArray< MbPolygon3DSolid > & visibleEdges,
RPArray< MbPolygon3DSolid > & visibleTangs );
выполняет построение только видимой полигональной проекции множества тел на заданную плоскость. Рассматриваемый метод выполняет те же построения, что и метод HiddenLinesMapping(), с той разницей, что строит только видимые проекции. В некоторых случаях метод VisualLinesMapping() работает заметно быстрее метода HiddenLinesMapping().