示例#1
0
// 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;
}
示例#2
0
// 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;
}
示例#3
0
// 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;
}