Exemplo n.º 1
0
inline S& make_lower(S& s)
{
    typedef string_traits<S>                                string_traits_t;
    typedef ss_typename_type_k string_traits_t::char_type   char_t;
    typedef ctype_traits<char_t>                            ctype_traits_t;

    return transform_impl(s, &ctype_traits_t::to_lower);
}
Exemplo n.º 2
0
void transform(atom::Hierarchy h, const algebra::Transformation3D &tr) {
  Model *m = h.get_model();
  typedef std::pair<ParticleIndex, ParticleIndexes> RBP;
  boost::unordered_map<ParticleIndex, ParticleIndexes>
      rigid_bodies;
  transform_impl(m, h.get_particle_index(), tr, rigid_bodies);
  IMP_FOREACH(const RBP & rbp, rigid_bodies) {
    core::RigidBody rb(m, rbp.first);
    ParticleIndexes members = rb.get_member_indexes();
    if (rbp.second.size() != members.size()) {
      IMP_USAGE_CHECK(
          rbp.second.size() == members.size(),
          "Hierarchy contains rigid body members of incomplete rigid bodies. "
          "It must contain all members of a rigid body or no members. Rigid "
          "body is "
              << m->get_particle_name(rbp.first));
    }
    core::transform(rb, tr);
  }