That was my thought. Having unused coordinated is bad and all levels should be equivalent.that they make any more sense than coordinates for any other level of the atom::Hierarchy.On this I agree with you - if atoms have coordinates, then so should residues, chains, domains, proteins. It certainly seems reasonable therefore that *none* of these things should have coordinates "byconstruction" and that we just use an XYZDecorator (or an XYZRDecorator)if we want to additionally treat them as points or spheres.
The problem is just a practical one: either we use virtual inheritence or we have two particle pointers. Neither is very nice.Well, that is true, but it seems reasonable to allow multiple inheritance in decorators - or at least, it seems unreasonable to preclude it.