Пример #1
0
void Subset<ksp_plugin::Vessel>::Properties::Collect(
    not_null<PileUps*> const pile_ups) {
  if (collected_) {
    return;
  }
  collected_ = true;
  if (!EqualsExistingPileUp()) {
    if (StrictSubsetOfExistingPileUp()) {
      vessels_.front()->clear_pile_up();
    }
    pile_ups->emplace_front(std::move(vessels_));
    auto const it = pile_ups->begin();
    for (not_null<Vessel*> const vessel : it->vessels()) {
      vessel->set_containing_pile_up(IteratorOn<PileUps>(pile_ups, it));
    }
  } else {
    PileUp& pile_up = *vessels_.front()->containing_pile_up()->iterator();
    pile_up.set_mass(total_mass_);
    pile_up.set_intrinsic_force(total_intrinsic_force_);
  }
}