Архитектурная акустика/Реализация/CFacePointCollectionIterator::Оператор косвенного доступа

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
const CAMaaS::POINT3DEXT* operator->() const;

Оператор косвенного разыменовывания.

Возвращаемое значение:
Адрес точки, с которой связан итератор CFacePointCollectionIterator, на отражающей поверхности. Объект, который адресует возвращаемый указатель, реализуется прокси-объектом, включенным в класс CFacePointCollectionIterator, поэтому обращение по этому адресу после изменения позиции итератора не определено и в таких сценариях необходимо локально создавать точку POINT3DEXT или объект, инициализируемый копией компонента POINT3DEXT, и инициализировать его результатом разыменовывания итератора.

Оператор используется для доступа к интерфейсу класса POINT3DEXT непосредственно через обращение к связанному итератору CFacePointCollectionIterator.

Пример
const double dr = 0.01;
CFace face = /*...*/;
CFacePointCollection coll = face.GetFacePointCollection(dr);
for (CFacePointCollectionIterator it = coll.begin(); it != coll.end(); ++it)
    std::cout << "{" << it->x() << "; " << it->y() << "; " << it->z() << "}\n";