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

Объявление и определение классов расширения протокола


Пример, включенный в конце этой главы обеспечивает простую иллюстрацию расширения протокола. Это определяет “температурный” класс расширения протокола собственности. Заданное по умолчанию выполнение определено для AcDbEntity, и определенные выполнение определены для AcDbCircle и AcDbRegion.

Пример обслуживает как модель для более сложный (и реалистический) использования ObjectARX механизма расширения протокола. Базовый класс для этого расширения протокола, названного AsdkEntTemperature, получен из AcRxObject. Этот класс определяет виртуальные функции, которые будут унаследованы полученными классами расширения протокола, AsdkDefaultTemperature, AsdkCircleTemperature, и AsdkRegionTemperature. В этом примере, имеется только одна функция: reflectedEnergy().

Иерархия классов для классов расширения протокола показывается в следующем рисунке:

Первый шаг в использование расширения протокола должен объявлять и определить каждый из классов расширения протокола. Базовый класс, AsdkEntTemperature, является абстрактным классом, который определен, используя ACRX_NO_CONS_DEFINE_MEMBERS () макрокоманда. Этот класс будет в конечном счете зарегистрирован как часть ObjectARX

иерархии классов.

Дочерние классы определены, используя стандартный синтаксис C++ для наследования новых классов. Эти классы не должны быть зарегистрированы в ObjectARX

иерархии классов, так что Вы не должны использовать макрокоманды ObjectARX

для них.

Для каждого класса, Вы осуществляете функции, которые составляют расширение протокола. В этом примере, каждый класс имеет только одну функцию, reflectedEnergy(), который вычисляет температуру для примитива.



Содержание раздела