vector<Boundable*>* STRtree::createParentBoundablesFromVerticalSlices(vector<vector<Boundable*>*> *verticalSlices, int newLevel) { Assert::isTrue(verticalSlices->size()>0); vector<Boundable*> *parentBoundables=new vector<Boundable*>(); for (unsigned int i = 0; i <verticalSlices->size(); i++) { vector<Boundable*> *toAdd=createParentBoundablesFromVerticalSlice((*verticalSlices)[i], newLevel); parentBoundables->insert(parentBoundables->end(),toAdd->begin(),toAdd->end()); delete toAdd; } return parentBoundables; }
/*private*/ std::auto_ptr<BoundableList> STRtree::createParentBoundablesFromVerticalSlices(std::vector<BoundableList*>* verticalSlices, int newLevel) { assert(!verticalSlices->empty()); std::auto_ptr<BoundableList> parentBoundables( new BoundableList() ); for (size_t i=0, vssize=verticalSlices->size(); i<vssize; ++i) { std::auto_ptr<BoundableList> toAdd ( createParentBoundablesFromVerticalSlice( (*verticalSlices)[i], newLevel) ); assert(!toAdd->empty()); parentBoundables->insert( parentBoundables->end(), toAdd->begin(), toAdd->end()); } return parentBoundables; }