Счётчик ссылок MbRefItem
Класс MbRefItem объявлен в файле reference_item.h.
Класс MbRefItem описывается количеством своих владельцев useCount и представляет собой счётчик объектов, владеющих данным объектом.
Все геометрические объекты ядра C3D делятся на три группы: двумерные геометрические объекты, трёхмерные геометрические объекты и топологические объекты. Все геометрические объекты являются наследниками классов MbRefItem и TapeBase:
Класс TapeBase обеспечивает для своих наследников запись в поток и чтение из потока.
Наследниками классов MbRefItem и TapeBase являются следующие объекты:
MbSpaceItem – базовый абстрактный класс трёхмерных геометрических объектов;
MbTopItem – базовый абстрактный класс топологических объектов;
MbPlaneItem – базовый абстрактный класс двумерных геометрических объектов;
MbFunction – базовый абстрактный класс скалярных функций.
Счётчик ссылок обеспечивает корректную работу классов и методов, содержащих указатели на геометрические объекты. Если некоторый класс в своих данных содержит указатель на геометрический объект, то он обязан в конструкторе увеличить счётчик ссылок у геометрического объекта на единицу методом AddRef(), а в деструкторе должен вызвать у геометрического объекта метод Release(), который уменьшает счётчик ссылок геометрического объекта на единицу и, при достижении счётчиком ссылок нуля, удаляет геометрический объект.
Метод DecRef() уменьшает счётчик ссылок геометрического объекта на единицу.
Класс MbRefItem обрабатывается регистратором дублирования MbRegDuplicate и регистратором преобразования MbRegTransform.
Метод RefType() возвращает регистрационный тип объекта, использующего счётчик ссылок.