.. role:: blue :class: blue Построение полигональной проекции тел ====================================== .. _Constructing_Polygonal_Projections_of_Bodies: .. версия ядра: Метод .. code-block:: cpp 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**. Метод .. code-block:: cpp void VisualLinesMapping( const RPArray< MbLump > & lumps, const MbPlacement3D & place, double znear, double sag, RPArray< MbPolygon3DSolid > & visibleEdges, RPArray< MbPolygon3DSolid > & visibleTangs ); выполняет построение только видимой полигональной проекции множества тел на заданную плоскость. Рассматриваемый метод выполняет те же построения, что и метод HiddenLinesMapping\(), с той разницей, что строит только видимые проекции. В некоторых случаях метод VisualLinesMapping\() работает заметно быстрее метода HiddenLinesMapping\().