1) Change the interpretation of a RigidMember to simply be any
particle which is moved rigidly with the rigid body, rather than a
particle which is necessarily part of the representation used for
collision detection and things. For example, you could then create a
rigid body from a protein. This rigid body would have RigidMembers
which are pieces of the representation of the protein at a variety of
resolutions, as well as, possibly, markers for key parts of the
protein. The RigidClosePairs finder would then take a Refiner which
could be used to tell it that, for example, you want to perform
collision detection between the leaves of the atom.Hierarchy. This
change would require small changes to code which uses the
RigidClosePairsFinder.
2) An a Object attributes to Particles which stores a pointer to an
IMP::Object. This can be used for associating arbitrary data with the
Particle. For example, Javi has images that he needs to associate with
particles and I have collision detection hierarchies which can be used
to accelerate finding close pairs or the closest pair between two
rigid bodies. I'm tempted to merge these attributes with the Particle
attributes, but am not sure of the performance implications.