// DataSetList::ClearTop() void DataSetList::ClearTop() { DataListType setsToKeep; setsToKeep.reserve( DataList_.size() - TopList_.size() ); for (DataListType::const_iterator ds = DataList_.begin(); ds != DataList_.end(); ++ds) if ( (*ds)->Type() != DataSet::TOPOLOGY ) setsToKeep.push_back( *ds ); if (!hasCopies_) for (DataListType::const_iterator ds = TopList_.begin(); ds != TopList_.end(); ++ds) delete *ds; TopList_.clear(); DataList_ = setsToKeep; }
// DataSetList::ClearRef() void DataSetList::ClearRef() { DataListType setsToKeep; setsToKeep.reserve( DataList_.size() - RefList_.size() ); for (DataListType::const_iterator ds = DataList_.begin(); ds != DataList_.end(); ++ds) if ( (*ds)->Type() != DataSet::REF_FRAME ) setsToKeep.push_back( *ds ); if (!hasCopies_) for (DataListType::const_iterator ds = RefList_.begin(); ds != RefList_.end(); ++ds) delete *ds; RefList_.clear(); DataList_ = setsToKeep; }
// DataSetList::Clear() void DataSetList::Clear() { DataListType setsToErase; DataListType setsToKeep; setsToKeep.reserve( RefList_.size() + TopList_.size() ); for (DataListType::const_iterator ds = DataList_.begin(); ds != DataList_.end(); ++ds) if ( (*ds)->Type() == DataSet::REF_FRAME || (*ds)->Type() == DataSet::TOPOLOGY ) setsToKeep.push_back( *ds ); else setsToErase.push_back( *ds ); if (!hasCopies_) for (DataListType::iterator ds = setsToErase.begin(); ds != setsToErase.end(); ++ds) delete *ds; DataList_ = setsToKeep; }