Debug.output("setGrabPoints(OMCircle): centerpoint: " + center);
    public void setGrabPoints(OMGraphic graphic) {        if (!(graphic instanceof OMCircle)) {            return;        }        assertGrabPoints();        OMCircle circle = (OMCircle) graphic;        boolean ntr = circle.getNeedToRegenerate();        int renderType = circle.getRenderType();        int centerx = 0;        int centery = 0;        if (ntr == false) {            if (renderType == OMGraphic.RENDERTYPE_LATLON                    || renderType == OMGraphic.RENDERTYPE_OFFSET) {                if (projection != null) {                    LatLonPoint center = circle.getLatLon();                    Debug.output("setGrabPoints(OMCircle): centerpoint: " + center);                    Point2D p = projection.forward(center);                    centerx = (int) p.getX();                    centery = (int) p.getY();                    Debug.output("setGrabPoints(OMCircle): centerpoint: " + center + ", centerX: " + centerx + ", centerY: " + centery);                }                if (renderType == OMGraphic.RENDERTYPE_OFFSET) {                    gpo.setX(centerx);                    gpo.setY(centery);                    centerx += circle.getOffX();                    centery += circle.getOffY();                }            } else if (renderType == OMGraphic.RENDERTYPE_XY) {                centerx = circle.getX();                centery = circle.getY();            }            if (renderType == OMGraphic.RENDERTYPE_LATLON) {                Debug.message("eomg",                        "EditableOMCircle: modifying lat/lon circle");                if (projection != null) {                    gpc.set(centerx, centery);                }                // Note that we really don't handle this situation                // well, if there isn't a projection. We kind of                // assume later that there is one, and although there                // shouldn't be massive meltdowns, data could look                // funky on the screen if the projection is                // unavailable.            } else {                // Grab the projected endpoints                Debug.message("eomg",                        "EditableOMCircle: modifying x/y or offset standard circle");                int height = circle.getHeight() / 2;                int width = circle.getWidth() / 2;                gpc.set(centerx, centery);                gpe.set(centerx + width, centery, true);                gps.set(centerx, centery + height, true);                gpw.set(centerx - width, centery, true);                gpn.set(centerx, centery - height, true);                gpne.set(gpe.getX(), gpn.getY());                gpnw.set(gpw.getX(), gpn.getY());                gpse.set(gpe.getX(), gps.getY());                gpsw.set(gpw.getX(), gps.getY());                gpc.updateOffsets();                // Debug.output("***\nheight:" + height + ", width:" +                // width +                // "\n EditableOMCircle: east at x: " + gpe.getX() +                // ", y:" + gpe.getY());                // Debug.output(" EditableOMCircle: north at x: " +                // gpn.getX() +                // ", y:" + gpn.getY());                // Debug.output(" EditableOMCircle: northeast at x: "                // + gpne.getX() +                // ", y:" + gpne.getY());                // Debug.output(" EditableOMCircle: center at x: " +                // centerx +                // ", y:" + centery);            }            // Check to see if the circle is a offset circle, and set            // the            // offset grab point offsets accordingly.            if (circle.getRenderType() == OMGraphic.RENDERTYPE_OFFSET) {                gpo.updateOffsets();            }        } else {            Debug.message("eomg",                    "EditableOMCircle.setGrabPoints: graphic needs to be regenerated");        }    }