void Layer::addSublayer(const LayerPtr& layer) { if(!isSublayer(layer)) { if(layer->superlayer) { WOUT("added layer that already had superlayer: "<<layer->description()); } layer->superlayer = this; sublayers.push_back(layer); } else { WOUT("tried to add layer that was already sublayer: "<<layer->description()); } }
void Layer::removeSublayer(const LayerPtr& layer) { auto pos = std::find(sublayers.begin(), sublayers.end(), layer); if(pos != sublayers.end()) { LayerPtr sublayer = *pos; sublayer->superlayer = NULL; sublayers.erase(pos); } else { WOUT("tried to remove layer that wasn't sublayer: "<<layer->description()); } }