The class symmetrically sample particles. /note We currently assume that the particles are Hierarchys, it should be changes to general Hierarchy.
Public Member Functions | |
DiscreteSet * | get_space (Particle *p) const |
void | move2state (const CombState *cs) |
void | populate_states_of_particles (Particles *particles, std::map< std::string, CombState * > *states) const |
void | show (std::ostream &out=std::cout) const |
SymmetrySampler (Particles *ps, TransformationDiscreteSet *ts, const algebra::Cylinder3D &c) | |
Constructor. | |
Protected Member Functions | |
void | reset_placement (const CombState *cs) |
Protected Attributes | |
algebra::Cylinder3D | cyl_ |
Particles * | ps_ |
std::map< Particle *, algebra::Transformation3D > | ref_ |
std::map< Particle *, int > | symm_deg_ |
TransformationDiscreteSet * | ts_ |
IMP::domino::SymmetrySampler::SymmetrySampler | ( | Particles * | ps, | |
TransformationDiscreteSet * | ts, | |||
const algebra::Cylinder3D & | c | |||
) |
Constructor.
/param[in] ps the particles that should obey N-symmetry ( N is the number of particles). /param[in] ts a set of transformations for the first particle /param[in] c the cylinder represent the symmery axis of the particles /note The sampler assumes that the order of the particles in the ring is the order of the input particles. /note The sampled set of transformations for particle number i is the set of input transformations rotated by (360/N)*i around the symmetry axis. /todo consider calculating the cylinder in construction