C3D Kernel  104065
Классы | Перечисления | Функции
Файл reference_item.h

Счетчик ссылок (владельцев объекта). Подробнее...

Классы

class  MbRefItem
 Объект с подсчетом ссылок. Подробнее...

Перечисления

enum  MbeRefType {
  rt_RefItem = 0, rt_PlaneItem, rt_SpaceItem, rt_TopItem,
  rt_Creator, rt_Attribute, rt_Primitive
}
 Типы объекта со счетчиком ссылок. Подробнее...

Функции

template<class Type >
void DeleteMatItem (Type *&item)
 Удалить объект без ссылок.
template<class Vector >
void DeleteMatItems (Vector &items)
 Удалить объекты без ссылок.
template<class Type >
Type & DuplicateIfUsed (Type &item)
 Сделать копию, если объект используется, иначе вернуть оригинал.
template<class Type , class RegType >
Type & DuplicateIfUsed (Type &item, RegType *iReg)
 Сделать копию, если объект используется, иначе вернуть оригинал.
template<class Type >
Type * DuplicateIfUsed (SPtr< Type > &item)
 Сделать копию, если объект используется, иначе вернуть оригинал.
template<class Type , class RegType >
Type * DuplicateIfUsed (SPtr< Type > &item, RegType *iReg)
 Сделать копию, если объект используется, иначе вернуть оригинал.
template<class Type >
void DeleteItem (Type *&item)
 Удалить объект, если он больше никому не нужен.
template<class Type >
void ReleaseItem (Type *&item)
 Освободить ссылку на объект.
template<class Type >
void AddRefItem (const Type *item)
 Захватить объект.
template<class Type >
void DecRefItem (const Type *item)
 Отпустить объект без удаления.
template<class Vector >
void AddRefItems (const Vector &items)
 Захватить объекты.
template<class Vector >
void DecRefItems (const Vector &items)
 Отпустить объекты без удаления.
template<class Vector >
void DeleteItems (Vector &items)
 Удалить никому не нужные объекты.
template<class Vector >
void ReleaseItems (Vector &items)
 Отпустить объекты с возможным удалением.
template<class Vector , class coType >
void DeleteItems (Vector &items, SArray< coType > &coItems)
 Удалить никому не нужные объекты.
template<class Vector , class coType >
void ReleaseItems (Vector &items, SArray< coType > &coItems)
 Отпустить объекты с возможным удалением.
template<class TypeVector , class Type >
void AddRefItems (const TypeVector &srcItems, bool same, RPArray< Type > &dstItems)
 Переложить элементы с захватом и возможным копированием.
template<class TypeVector , class Type >
void AddRefItems (const TypeVector &srcItems, bool same, std::vector< SPtr< Type > > &dstItems)
 Переложить элементы с захватом и возможным копированием.
template<class TypeVector , class Type >
void AddRefItems (const TypeVector &srcItems, bool same, std::vector< Type * > &dstItems)
 Переложить элементы с захватом и возможным копированием.
template<class TypeVector , class Type , class RegType >
void AddRefRegItems (const TypeVector &srcItems, bool same, RPArray< Type > &dstItems, RegType *iReg)
 Переложить элементы с захватом и возможным копированием.
template<class TypeVector , class Type , class RegType >
void AddRefRegItems (const TypeVector &srcItems, bool same, std::vector< SPtr< Type > > &dstItems, RegType *iReg)
 Переложить элементы с захватом и возможным копированием.
template<class TypeVector , class Type , class RegType >
void AddRefRegItems (const TypeVector &srcItems, bool same, std::vector< Type * > &dstItems, RegType *iReg)
 Переложить элементы с захватом и возможным копированием.
template<class Item >
bool IsItemSame (const Item *item1, const Item *item2, double accuracy)
 Являются ли объекты подобными.
template<class Vector >
bool AreItemsSame (const Vector &items1, const Vector &items2, double accuracy)
 Являются ли объекты подобными.
template<class Vector >
bool AreObjectsSame (const Vector &items1, const Vector &items2, double accuracy)
 Являются ли объекты подобными.
template<class Vector >
bool AreItemsSimilar (const Vector &items1, const Vector &items2)
 Являются ли объекты подобными.
template<class Vector >
bool SetItemsEqual (const Vector &srcItems, Vector &dstItems)
 Сделать равными.
template<class TypeVector , class Type , class RegType >
void DuplicateItems (const TypeVector &srcItems, RegType *iReg, bool same, RPArray< Type > &dstItems)
 Дублировать c регистратором (опционально переложить оригиналы).
template<class TypeVector , class Type , class RegType >
void DuplicateItems (const TypeVector &srcItems, RegType *iReg, bool same, std::vector< SPtr< Type > > &dstItems)
 Дублировать c регистратором (опционально переложить оригиналы).
template<class TypeVector , class Type , class RegType >
void DuplicateItems (const TypeVector &srcItems, RegType *iReg, bool same, std::vector< Type * > &dstItems)
 Дублировать c регистратором (опционально переложить оригиналы).
template<class Array , class Matrix , class RegType >
void TransformItems (Array &items, const Matrix &matr, RegType *iReg)
 Преобразовать элементы согласно матрице.
template<class Array , class Matrix >
void TransformObjects (Array &objects, const Matrix &matr)
 Преобразовать элементы согласно матрице.
template<class Array , class Vector , class RegType >
void MoveItems (Array &items, const Vector &to, RegType *iReg)
 Сдвинуть вдоль объекты вектора.
template<class Array , class Vector >
void MoveObjects (Array &objects, const Vector &to)
 Сдвинуть вдоль объекты вектора.
template<class Array , class Axis , class RegType >
void RotateItems (Array &items, const Axis &axis, double angle, RegType *iReg)
 Повернуть вокруг оси.
template<class Array , class Axis >
void RotateObjects (Array &objects, const Axis &axis, double angle)
 Повернуть вокруг оси.
template<class Vector , class Writer >
void WriteRefItems (const Vector &items, Writer &out)
 Запись объектов в поток.
template<class Type , class Writer >
void WriteRefItems (const std::vector< SPtr< Type > > &items, Writer &out)
 Запись объекты в поток.
template<class Type , class Reader >
void ReadRefItems (Reader &in, RPArray< Type > &items)
 Чтение массива объектов из потока с захватом.
template<class Type , class Reader >
void ReadRefItems (Reader &in, std::vector< Type * > &items)
 Чтение массива объектов из потока с захватом.
template<class Type , class Reader >
void ReadRefItems (Reader &in, std::vector< SPtr< Type > > &items)
 Чтение массива объектов из потока с захватом.
template<class Vector >
void ReleaseAndDetachItem_ (Vector &items, size_t index)
 Отцепить от массива и уменьшить счетчик ссылок.
template<class Vector , class Type >
void AddRefAndAddItem_ (Vector &items, Type *newItem)
 Добавить объект и увеличить счетчик ссылок.
template<class Vector , class Type >
void AddRefAndAddAtItem_ (Vector &items, Type *newItem, size_t index)
 Добавить объект и увеличить счетчик ссылок.
template<class Type >
void ReleaseAndDetachItem_ (std::vector< SPtr< Type > > &items, size_t index)
 Отцепить от массива и уменьшить счетчик ссылок.
template<class Type >
void AddRefAndAddItem_ (std::vector< SPtr< Type > > &items, Type *newItem)
 Добавить объект и увеличить счетчик ссылок.
template<class Type >
void AddRefAndAddAtItem_ (std::vector< SPtr< Type > > &items, Type *newItem, size_t index)
 Добавить объект и увеличить счетчик ссылок.
template<class Type >
Type * DetachItem (SPtr< Type > &itemOwner)
 Отцепить объект из владеющего указателя.
template<class Type >
void ReplaceByCopy (Type *&item)
 Заменить объект на копию.
template<class Objects , class Gab >
void AddYourGabaritTo (Objects &objects, Gab &gab)
 Включить габариты объектов массива в общий габарит.

Подробное описание


Функции

template<class Vector >
void ReleaseAndDetachItem_ ( Vector &  items,
size_t  index 
)

Отцепить от массива и уменьшить счетчик ссылок без проверок.

Аргументы:
[in,out]items- Множество элементов.
[in]index- Номер элемента. Не проверяется на корректность.
template<class Vector , class Type >
void AddRefAndAddItem_ ( Vector &  items,
Type *  newItem 
)

Добавить объект и увеличить счетчик ссылок без проверок.

Аргументы:
[in,out]items- Множество элементов.
[in]newItem- Новый элемент.
template<class Vector , class Type >
void AddRefAndAddAtItem_ ( Vector &  items,
Type *  newItem,
size_t  index 
)

Добавить объект и увеличить счетчик ссылок без проверок.

Аргументы:
[in,out]items- Множество элементов.
[in]newItem- Новый элемент.
[in]index- Номер элемента. Не проверяется на корректность.
template<class Type >
void ReleaseAndDetachItem_ ( std::vector< SPtr< Type > > &  items,
size_t  index 
)

Отцепить от массива и уменьшить счетчик ссылок без проверок.

Аргументы:
[in,out]items- Множество элементов.
[in]index- Номер элемента. Не проверяется на корректность.
template<class Type >
void AddRefAndAddItem_ ( std::vector< SPtr< Type > > &  items,
Type *  newItem 
)

Добавить объект и увеличить счетчик ссылок без проверок.

Аргументы:
[in,out]items- Множество элементов.
[in]newItem- Новый элемент.
template<class Type >
void AddRefAndAddAtItem_ ( std::vector< SPtr< Type > > &  items,
Type *  newItem,
size_t  index 
)

Добавить объект и увеличить счетчик ссылок без проверок.

Аргументы:
[in,out]items- Множество элементов.
[in]newItem- Новый элемент.
[in]index- Номер элемента. Не проверяется на корректность.
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы