Hi all,

I got stung for not fully reading some doc today and thought I would share to get some opinions on whether the method behaviour should/could change. I'll explain more in a bit but here's what I was doing.

The following snippet (https://gist.github.com/3139004) checks if the the container has coordinates for it's atoms and will invoke the renderer if it does. If we don't have coordinates we handle appropriately. 

if (GeometryTools.has2DCoordinates(container)) {
    renderer.paint(container, new AWTDrawVisitor(g2), bounds, true);
} else {
    // can log or invoke g2.drawString() to display "no coordinates"
}

This will work for the majority of cases however if can cause the paint method to throw an exception. In my mind the 'has2DCoordinates' tells me whether we have coordinates for all atoms in our container/molecule. However what it will actually tell you is whether any of your atoms have 2D coordinates. As I said this was my fault for not fully reading the doc and assuming 'Determines if this AtomContainer contains 2D coordinates' means all atoms. There is the method 'has2DCoordinatesNew' which we can use to get an integer and determine full (2) or partial coordinates (1). In my mind a method like  'has2DCoordinates' would be mainly used to check an input is valid (as above) and not fail.

It should be noted that equivalent 'has3DCoordinates' will return true only if all atoms have 3D coordinates as I had presumed with the 2D method.

It would be good to unify the 'has2DCoordinates' and 'has3DCoordinates' to behave the same way. Personally I would opt to change 'has2DCoordinates' as I can see the use cases for such a method being used more for preventing errors then checking molecules with partial atoms.

Please let me know your opinions.

Many thanks,
John