Example #1
0
void SPObject::cropToObject(SPObject *except)
{
    std::vector<SPObject*> toDelete;
    for ( SPObject *child = this->firstChild(); child; child = child->getNext() ) {
        if (SP_IS_ITEM(child)) {
            if (child->isAncestorOf(except)) {
                child->cropToObject(except);
            } else if(child != except) {
                toDelete.push_back(child);
            }
        }
    }
    for (std::size_t i = 0; i < toDelete.size(); ++i) {
        (toDelete[i])->deleteObject(true, true);
    }
}