Построение плоской проекции модели

Метод

void GetVestiges( const MbPlacement3D &        place,
                        double                 znear,
                  const RPArray< MbLump > &    lumps,
                  const MbProjectionsObjects & objects,
                        MbVEFVestiges &        result,
                        bool                   invisible,
                        VERSION                version );

выполняет построение плоской проекции множества тел и других объектов.

Входными параметрами метода являются:

  • place – проекционная плоскость,

  • znear – параметр точки наблюдения,

  • lumps – проецируемые тела в локальных системах координат,

  • objects – прочие проецируемые объекты,

  • invisible – признак построения невидимых линий,

  • version – версия построения, последняя версия Math::DefaultMathVersion().

Выходным параметром метода является result – структура, содержащая информацию о проекции.

Метод не возвращает значений.

Метод объявлен в файле map_create.h.

Проекционной плоскостью является плоскость XY локальной системы координат place.

Параметр znear определяет тип изображения. При znear = 0 строится параллельная проекция объектов. Параметр lumps содержит тела и матрицы преобразования их из локальной системы координат. Параметр objects содержит вспомогательные объекты, необходимые для оформления проекции: вспомогательные точки, кривые, условные обозначения, объекты аннотации. Параметр invisible сообщает о необходимости строить невидимые линии. В некоторых случаях при отказе от построения невидимых линий метод работает заметно быстрее.

На рис. 1 приведено тело, линии проекции которого на плоскость, параллельную плоскости экрана, приведены на рис. 2. На рис. 3 приведены только видимые линии проекции тела, показанного на рис. 1.

../../../../_images/R.2.2.1.png

Рис. 1

../../../../_images/R.2.2.2.png

Рис. 2

../../../../_images/R.2.2.3.png

Рис. 3

Последний параметр рассматриваемого метода используется для поддержки предыдущих версий построения.

Метод

void VisualLinesMapping( const MbPlacement3D &     place,
                               double              znear,
                         const RPArray< MbLump > & lumps,
                               MbVEFVestiges &     result,
                               bool                invisible = true );

выполняет построение плоской проекции множества тел и отличается от метода GetVestiges() отсутствием дополнительных объектов objects.