Collection<Point2d[]> getCoordinates(IAtomContainer mol) {
        try {
            // create the library key to lookup an entry, we also store
            // the canonical out ordering
            int n = mol.getAtomCount();
            int[] ordering = new int[n];
            String smiles = cansmi(mol, ordering);

            final Collection<Point2d[]> coordSet = templateMap.get(smiles);
            final List<Point2d[]> orderedCoordSet = new ArrayList<>(coordSet.size());

            for (Point2d[] coords : coordSet) {
                Point2d[] orderedCoords = new Point2d[coords.length];
                for (int i = 0; i < n; i++) {
                    orderedCoords[i] = new Point2d(coords[ordering[i]]);
                }
                orderedCoordSet.add(orderedCoords);
            }
            return Collections.unmodifiableList(orderedCoordSet);
        } catch (CDKException e) {
            return Collections.emptyList();
        }
    }
Collection < Point2d [ ] > getCoordinates ( IAtomContainer mol ) { try { int n = mol . getAtomCount ( ) ; int [ ] ordering = new int [ n ] ; String smiles = cansmi ( mol , ordering ) ; final Collection < Point2d [ ] > coordSet = templateMap . get ( smiles ) ; final List < Point2d [ ] > orderedCoordSet = new ArrayList < > ( coordSet . size ( ) ) ; for ( Point2d [ ] coords : coordSet ) { Point2d [ ] orderedCoords = new Point2d [ coords . length ] ; for ( int i = 0 ; i < n ; i ++ ) { orderedCoords [ i ] = new Point2d ( coords [ ordering [ i ] ] ) ; } orderedCoordSet . add ( orderedCoords ) ; } return Collections . unmodifiableList ( orderedCoordSet ) ; } catch ( CDKException e ) { return Collections . emptyList ( ) ; } }
Get all templated coordinates for the provided molecule. The return collection has
coordinates ordered based on the input.

@param mol molecule (or fragment) to lookup
@return the coordinates