DisplayObject* DisplayList::getDisplayObjectAtDepth(int depth) { testInvariant(); for (iterator it = _charsByDepth.begin(), itEnd = _charsByDepth.end(); it != itEnd; ++it) { DisplayObject* ch = *it; // found if (ch->get_depth() == depth) return ch; // non-existent (chars are ordered by depth) if (ch->get_depth() > depth) return 0; } return 0; }
DisplayObject* DisplayList::getDisplayObjectAtDepth(int depth) const { testInvariant(); for (const_iterator it = _charsByDepth.begin(), itEnd = _charsByDepth.end(); it != itEnd; ++it) { DisplayObject* ch = *it; // Should not be there! if (ch->isDestroyed()) continue; // found if (ch->get_depth() == depth) return ch; // non-existent (chars are ordered by depth) if (ch->get_depth() > depth) return 0; } return 0; }
int DisplayList::getNextHighestDepth() const { testInvariant(); int nexthighestdepth=0; for (const_iterator it = _charsByDepth.begin(), itEnd = _charsByDepth.end(); it != itEnd; ++it) { DisplayObject* ch = *it; const int chdepth = ch->get_depth(); if (chdepth >= nexthighestdepth) { nexthighestdepth = chdepth+1; } } return nexthighestdepth; }