private Geometry readRoundRectObject() throws IOException { try { final Coordinate c1 = readMIFCoordinate(); final Coordinate c2 = readMIFCoordinate(); final double a = Double.parseDouble(mif_.getToken(' ', true)); final RoundRectangle2D.Double ellipse = new RoundRectangle2D.Double(Math.max(c1.x, c2.x), Math.max(c1.y, c2.y), Math.abs(c2.x - c1.x), Math.abs(c2.y - c1.y), a, a); final double ecartRoundRect = Math.min(ellipse.height, ellipse.width) / 20; final PathIterator it = ellipse.getPathIterator(null, ecartRoundRect); final double[] coord = new double[2]; final List coor = new ArrayList(20); while (!it.isDone()) { it.currentSegment(coord); coor.add(new Coordinate(coord[0], coord[1])); } return geomFactory_.createLinearRing((Coordinate[]) coor.toArray(new Coordinate[coor.size()])); } catch (final Exception e) { throw createExc(e); } }