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

       

Iterators


Каждая таблица идентификаторов имеет передачу iterator, что Вы можете создавать с

 AcDb##BASE_NAME##Table::newIterator () функция.

Acad::ErrorStatus

AcDb##BASE_NAME##Table::newIterator(

AcDb##BASE_NAME##TableIterator*& pIterator,

Adesk::Boolean atBeginning = Adesk::kTrue,

Adesk::Boolean skipErased = Adesk::kTrue) const;

NewIterator () функция создает объект, который может использоваться, чтобы шагнуть через содержание таблицы и заставляет pIterator указывать на iterator объект. Если atBeginning - kTrue, запуски iterator в начале таблицы; если kFalse, это начинается в конце таблицы. Если skipErased параметр - kTrue, iterator позиционирован первоначально в первый (или последний{*прошлый*}) нестертая запись; если kFalse, это позиционировано в первый (или последний{*прошлый*}) запись, независимо от того, было ли это стерто. Для описания функций, доступных для каждого iterator класса, см. ObjectARX Ссылку.

Когда Вы создаете новый iterator, Вы также ответствены за удаление этого. Таблица идентификаторов не должна быть закрыта, пока все iterators, который это создало, не были удалены.

В дополнение к таблицам идентификаторов, запись таблицы блоков имеет iterator, который работает на примитивах, которые это имеет. AcDbBlockTableRecord класс возвращает объект класса AcDbBlockTableRecordIterator, когда Вы спрашиваете это относительно нового iterator. Этот iterator дает возможность Вам шагнуть через примитивы, содержащиеся в записи таблицы блоков и искать специфические примитивы.



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