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.
Comments?