ModelObjectsTemp ParticleOutputs::do_get_outputs( Model *m, const ParticleIndexes &pis) const { ModelObjectsTemp ret; for (unsigned int i = 0; i < pis.size(); ++i) { ret += get_output_containers(m->get_particle(pis[i])); ret += get_output_particles(m->get_particle(pis[i])); } return ret; }
ContainersTemp get_output_containers(const ModelObjectsTemp &mo) { ContainersTemp ret; for (unsigned int i = 0; i < mo.size(); ++i) { ModelObject *o = mo[i]; Container *p = dynamic_cast<Container *>(o); if (p) ret.push_back(p); else { ret += get_output_containers(o->get_inputs()); } } return ret; }