Построение полигональной проекции тел

Метод

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().