FloatKey Weight::get_weight_key(int j) { static FloatKeys kk; if (kk.empty()) { for (int i = 0; i < nstates_max; ++i) { std::stringstream out; out << i; kk.push_back(FloatKey("weight" + out.str())); } } return kk[j]; }
void read_particles_from_buffer( const base::Vector<char> &buffer, const ParticlesTemp &particles, const FloatKeys &keys) { if (particles.empty() || keys.empty()) { return; } read_particles_from_buffer(&buffer.front(), buffer.size()*sizeof(double), particles, keys); IMP_CHECK_MODEL_PARTICLES(particles[0]->get_model()); }
base::Vector<char> write_particles_to_buffer(const ParticlesTemp &particles, const FloatKeys &keys) { if (particles.empty() || keys.empty()) { return base::Vector<char>(); } unsigned int size= particles.size()*keys.size()*sizeof(double); base::Vector<char> ret(size); write_particles_to_buffer(particles, keys, &ret.front(), size); return ret; }
void Particle::show(std::ostream &out) const { internal::PrefixStream preout(&out); preout << "index: " << get_index() << (get_is_active() ? " (active)" : " (dead)"); preout << std::endl; if (get_model()) { { FloatKeys fks = get_float_keys(); if (!fks.empty()) { preout << "float attributes:" << std::endl; preout.set_prefix(" "); for (FloatKeys::const_iterator it = fks.begin(); it != fks.end(); ++it) { FloatKey k = *it; preout << k << ": " << get_model()->get_attribute(k, id_, false); preout << " (" << get_model()->get_derivative(k, id_, false) << ") "; preout << (get_is_optimized(k) ? " (optimized)" : ""); preout << std::endl; } preout.set_prefix(""); } } show_attributes(get_model(), get_int_keys(), id_, "int", IdentityValue(), preout); show_attributes(get_model(), get_string_keys(), id_, "string", IdentityValue(), preout); show_attributes( get_model(), get_model()->internal::ParticleAttributeTable::get_attribute_keys(id_), id_, "particle", NameValue(get_model()), preout); show_attributes( get_model(), get_model()->internal::ObjectAttributeTable::get_attribute_keys(id_), id_, "object", DirectNameValue(), preout); show_attributes( get_model(), get_model()->internal::ParticlesAttributeTable::get_attribute_keys(id_), id_, "particles", SizeValue<NameValue>(NameValue(get_model())), preout); show_attributes( get_model(), get_model()->internal::ObjectsAttributeTable::get_attribute_keys(id_), id_, "objects", SizeValue<DirectNameValue>(), preout); show_attributes( get_model(), get_model()->internal::IntsAttributeTable::get_attribute_keys(id_), id_, "ints", SizeValue<IdentityValue>(), preout); } }