ModelObjectsTemp ConnectivityRestraint::do_get_inputs() const { if (!sc_) return ModelObjectsTemp(); ModelObjectsTemp ret; ret += ps_->get_inputs(get_model(), sc_->get_all_possible_indexes()); ret.push_back(sc_); return ret; }
ScoreStatesTemp SingleParticleScoringFunction ::get_required_score_states(const DependencyGraph &dg, const DependencyGraphVertexIndex &index) const { IMP_OBJECT_LOG; ScoreStatesTemp from_restraints =IMP::internal::RestraintsScoringFunction::get_required_score_states(dg, index); IMP_LOG(TERSE, "Score states from restraints are " << from_restraints << "(" << IMP::internal::RestraintsScoringFunction::get_restraints() << ")" << std::endl); ScoreStatesTemp from_dummy = IMP::get_required_score_states(dummy_restraints_, dg, index); IMP_LOG(TERSE, "Score states from dummy are " << from_dummy << "(" << dummy_restraints_ << ")" << std::endl); ScoreStatesTemp deps = IMP::get_dependent_score_states(get_model()->get_particle(pi_), ModelObjectsTemp(), dg, index); IMP_LOG(TERSE, "Dependent score states are " << deps << std::endl); std::sort(deps.begin(), deps.end()); ScoreStatesTemp allin= from_restraints+from_dummy; std::sort(allin.begin(), allin.end()); // intersect the lists to determine which depend on this particle and are need ScoreStatesTemp ret; std::set_intersection(allin.begin(), allin.end(), deps.begin(), deps.end(), std::back_inserter(ret)); IMP_LOG(TERSE, "Particle " << Showable(get_model()->get_particle(pi_)) << " will update " << get_ordered_score_states(ret) << std::endl); return get_ordered_score_states(ret); }
ModelObjectsTemp LogWrapper::do_get_inputs() const { return ModelObjectsTemp(restraints_begin(), restraints_end()); }
ModelObjectsTemp StateAdaptor::do_get_inputs() const { return ModelObjectsTemp(); }
ModelObjectsTemp _ConstRestraint::do_get_inputs() const { return ModelObjectsTemp(ps_.begin(), ps_.end()); }
ModelObjectsTemp Particle::do_get_outputs() const { return ModelObjectsTemp(); }
ModelObjectsTemp FixedRefiner::do_get_inputs( Model *, const ParticleIndexes &) const { return ModelObjectsTemp(); }
ModelObjectsTemp ExampleConstraint::do_get_outputs() const { return ModelObjectsTemp(1, p_); }
ModelObjectsTemp DummyConstraint::do_get_outputs() const { return ModelObjectsTemp(out_.begin(), out_.end()); }
ModelObjectsTemp WeightMover::do_get_inputs() const { return ModelObjectsTemp(1, w_.get_particle()); }
ModelObjectsTemp RigidBodyMover::do_get_inputs() const { return ModelObjectsTemp(1, get_model()->get_particle(pi_)); }
ModelObjectsTemp MSConnectivityRestraint::do_get_inputs() const { if (!sc_) return ModelObjectsTemp(); ModelObjectsTemp ret; IMP_CONTAINER_ACCESS(SingletonContainer, sc_, { ret += ps_->get_inputs(get_model(), imp_indexes); });
ModelObjectsTemp MoveStatisticsScoreState::do_get_outputs() const { return ModelObjectsTemp(); }
/* Return all particles whose attributes are read by the restraints. To do this, ask the pair score what particles it uses.*/ ModelObjectsTemp ExampleRestraint::do_get_inputs() const { return ModelObjectsTemp(1, get_model()->get_particle(p_)); }
ModelObjectsTemp AllPairContainer::do_get_inputs() const { return ModelObjectsTemp(1, c_); }
ModelObjectsTemp ConstantRestraint::do_get_inputs() const { return ModelObjectsTemp(); }
ModelObjectsTemp DummyConstraint::do_get_inputs() const { return ModelObjectsTemp(1, in_); }