IMPEM2D_BEGIN_NAMESPACE

RelativePositionMover::RelativePositionMover(core::RigidBody d,
                                             Float max_translation,
                                             Float max_rotation)
    : RigidBodyMover(d.get_model(), d.get_particle_index(),
                     max_translation, max_rotation) {
  IMP_LOG_VERBOSE("Building RelativePositionMover");
  rbA_ = d;
  max_angle_ = max_rotation;
  max_translation_ = max_translation;
  probability_of_random_move_ = 0.0;
}
IMPSYMMETRY_BEGIN_NAMESPACE

RigidBodyMover::RigidBodyMover(core::RigidBody d, Particles ps,
                               Float max_tr, Float max_ang,
                               algebra::Vector3Ds ctrs,
                               algebra::Transformation3Ds trs)
    : MonteCarloMover(d->get_model(), "RigidBodyMover%1%") {
  // master rigid body
  d_ = d;
  // list of slave particles
  ps_ = ps;
  // list of slave particles not member of rigid bodies
  ps_norb_ = get_particles(ps);
  // list of slave rigid bodies
  rbs_ = get_rigid_bodies(ps);
  // maximum translation
  max_tr_ = max_tr;
  // maximum rotation
  max_ang_ = max_ang;
  // list of all cell centers
  ctrs_ = ctrs;
  // list of transformation from primitive to all cells
  trs_ = trs;
}