ObjectARX, AutoCAD. Среда программирования библиотеки C++


AcGi Краткий обзор


AcGi библиотека определяет набор интерфейсов, с которыми объекты могут выполнять себя к основной системе графики. Эта глава обсуждает, как AcGi работает в среде AutoCAD. Однако, это работает подобным способом для других систем, которые осуществляют интерфейсы AcGi.

AcGi библиотека позволяет примитивам сделать запрос для информации относительно процесса регенерации, и детализировать набор примитивов, использующих классы геометрии.

Обратитесь к AcGi, происходит в пределах следующего три функции члена базового класса AcGiDrawable:

Adesk::Boolean

worldDraw( AcGiWorldDraw*);

void

viewportDraw( AcGiViewportDraw*);

 

Adesk::UInt32

setAttributes( AcGiDrawableTraits*);

 

AcDbEntity наследует эти функции от AcGiDrawable. Как правило, при осуществлении заказного примитива, Вы перегрузите эти функции и обеспечите ваше собственное выполнение.

Когда AutoCAD должен восстановить графику, чтобы отобразить примитив, это вызывает эти функции следующим способом:

AcGiDrawable *pDrawable;

pDrawable->setAttributes(pDt);

if (!pDrawable->worldDraw(pWd))

{

for each viewport

pDrawable->viewportDraw(pVd);

}

Для заказных примитивов, AutoCAD вызывает ваш setAttributes (), worldDraw (), и viewportDraw () функциями, если Вы перегрузили их. AutoCAD проходит в соответствующих объектах AcGi к этим функциям. Это позволило бы AutoCAD отобразить ваш заказной примитив, также, как если это был встроенный примитив.

SetAttributes() функция инициализирует атрибуты для примитива, типа цвета, уровня, и linetype. WorldDraw () функция формирует часть из графического представления примитива, которое может быть определено независимым от любого специфического вида пространства модели или контекстов области просмотра пространства листа. ViewportDraw () функция тогда формирует часть иждивенца представления из графики примитива. Если любая из графики примитива - иждивенец представления, worldDraw () должен возвратить kFalse, и viewportDraw () должен быть осуществлен.

Наоборот, если примитив не имеет никакой графики иждивенца представления, то worldDraw () должен возвратить kTrue, и заказной примитив не осуществляет viewportDraw ().




Начало  Назад  Вперед



Книжный магазин