Get the string attribute name or return default_value if the
particle does not have any such attribute.
*/
const String& get_string(ModelData *m,
Particle *p,
const String& name,
const String& default_value=String())
Obviously there are int and float versions.
Should such things go in to imp proper? On one hand they are
extremely useful. On the other it is increasing the size of the
interface and while it makes it more convenient, it doesn't add any
power.
Next I have some helpers for manipulating hierarchy and bond
particles (getting the number of children, getting specific children
etc). These should go somewhere to establish norms for hierarchies.