int i, j, npts;
int i, npts;
        public boolean generate(Projection proj) {            int i, j, npts;            shape = null;            if (proj == null) {                Debug.message("omgraphic",                        "OMPoly: null projection in generate!");                return false;            }            if (xs == null) {                Debug.message("omgraphic",                        "OMPoly offset rendertype null coordinates");                return false;            }            npts = xs.length;            int[] _x = new int[npts];            int[] _y = new int[npts];            // forward project the radian point            Point origin = proj.forward(lat, lon, new Point(0, 0), true);//radians            if (coordMode == COORDMODE_ORIGIN) {                for (i = 0; i < npts; i++) {                    _x[i] = xs[i] + origin.x;                    _y[i] = ys[i] + origin.y;                }            } else { // CModePrevious offset deltas                _x[0] = xs[0] + origin.x;                _y[0] = ys[0] + origin.y;                for (i = 1; i < npts; i++) {                    _x[i] = xs[i] + _x[i - 1];                    _y[i] = ys[i] + _y[i - 1];                }            }            // Need to keep these around for the LabeledOMPoly            xpoints = new int[1][0];            xpoints[0] = _x;            ypoints = new int[1][0];            ypoints[0] = _y;            if (doShapes) {                this.createShape();            }            setNeedToRegenerate(false);            return true;        }