亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? omgeometrylist.java

?? openmap java寫的開源數(shù)字地圖程序. 用applet實現(xiàn),可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
            } else {                iterator = targets.listIterator();                while (iterator.hasNext()) {                    geometry = (OMGeometry) iterator.next();                    if (geometry.isVisible()) {                        renderGeometry(geometry, gr);                    }                }            }        }    }    protected void renderGeometry(OMGeometry geometry, Graphics gr) {        if (matted) {            if (gr instanceof Graphics2D && stroke instanceof BasicStroke) {                ((Graphics2D) gr).setStroke(new BasicStroke(((BasicStroke) stroke).getLineWidth() + 2f));                setGraphicsColor(gr, mattingPaint);                geometry.draw(gr);            }        }        setGraphicsForFill(gr);        geometry.fill(gr);        setGraphicsForEdge(gr);        geometry.draw(gr);    }    /**     * Renders all the objects in the list a geometry's context, in     * their 'selected' mode. This is the same as <code>paint()</code>     * for AWT components. The geometries are rendered in the order of     * traverseMode. Any geometries where <code>isVisible()</code>     * returns false are not rendered. All of the geometries on the     * list are returned to their deselected state.     *      * @param gr the AWT Graphics context     */    public void renderAllAsSelected(Graphics gr) {        if (shape != null) {            setGraphicsForFill(gr);            ((Graphics2D) gr).fill(shape);            select();            setGraphicsForEdge(gr);            ((Graphics2D) gr).draw(shape);            deselect();        }    }    /**     * Prepare the geometries for rendering. This must be done before     * calling <code>render()</code>! This recursively calls     * generate() on the OMGeometries on the list.     *      * @param p a <code>Projection</code>     * @param forceProjectAll if true, all the geometries on the list     *        are generated with the new projection. If false they are     *        only generated if getNeedToRegenerate() returns true     * @see OMGeometry#generate     * @see OMGeometry#regenerate     */    public synchronized void generate(Projection p, boolean forceProjectAll) {        // Important! Resets the shape.        shape = null;        // Create a shape object out of all of the shape objects.        ListIterator iterator;        if (traverseMode == FIRST_ADDED_ON_TOP) {            iterator = graphics.listIterator(graphics.size());            while (iterator.hasPrevious()) {                updateShape((OMGeometry) iterator.previous(),                        p,                        forceProjectAll);            }        } else {            iterator = graphics.listIterator();            while (iterator.hasNext()) {                updateShape((OMGeometry) iterator.next(), p, forceProjectAll);            }        }        setNeedToRegenerate(false);    }    /**     * Given a OMGeometry, it calls generate/regenerate on it, and     * then adds the GeneralPath shape within it to the OMGeometryList     * shape object.     */    protected void updateShape(OMGeometry geometry, Projection p,                               boolean forceProject) {        if (forceProject) {            geometry.generate(p);        } else {            geometry.regenerate(p);        }        if (geometry.isVisible()) {            GeneralPath gp = (GeneralPath) geometry.getShape();            if (gp == null) {                return;            }            if (shape == null) {                shape = gp;            } else {                ((GeneralPath) shape).append(gp, connectParts);            }        }    }    /**     * Return the shortest distance from the graphic to an XY-point.     * Checks to see of the point is contained within the OMGraphic,     * which may, or may not be the right thing for clear OMGraphics     * or lines.     * <p>     *      * _distance was added so subclasses could make this call if their     * geometries/attributes require this action (when fill color     * doesn't matter).     *      * @param x X coordinate of the point.     * @param y Y coordinate of the point.     * @return float distance, in pixels, from graphic to the point.     *         Returns Float.POSITIVE_INFINITY if the graphic isn't     *         ready (ungenerated).     */    protected float _distance(int x, int y) {        float distance = Float.POSITIVE_INFINITY;        if (isVague()) {            if (getNeedToRegenerate() || shape == null) {                return distance;            }            if (shape.contains((double) x, (double) y)) {                //          if (Debug.debugging("omgraphicdetail")) {                //              Debug.output(" contains " + x + ", " + y);                //          }                distance = 0f;            } else {                distance = distanceToEdge(x, y);            }        } else {            distance = super._distance(x, y);        }        return distance;    }    protected synchronized OMDist _findClosest(int x, int y, float limit,                                               boolean resetSelect) {        if (shape != null) {            float currentDistance = _distance(x, y);            OMDist omd = new OMDist();            if (currentDistance < limit) {                omd.omg = this;                omd.d = currentDistance;            }            return omd;        } else {            return super._findClosest(x, y, limit, resetSelect);        }    }    /**     * Finds the object located the closest to the point, if the     * object distance away is within the limit. The search is always     * conducted from the topmost geometry to the bottommost,     * depending on the traverseMode. Any geometries where     * <code>isVisible()</code> returns false are not considered.     *      * @param x the x coordinate on the component the geometries are     *        displayed on.     * @param y the y coordinate on the component the geometries are     *        displayed on.     * @param limit the max distance that a geometry has to be within     *        to be returned, in pixels.     * @return OMGeometry the closest on the list within the limit, or     *         null if not found.     */    public OMGeometry findClosestGeometry(int x, int y, float limit) {        return _findClosest(x, y, limit).omg;    }    /**     * This method returns an OMGraphic if the thing that is found     * closest to the coordinates is an OMGraphic. It mose likely is     * an OMGeometry, so it can return null if it found something     * close to the coordinates that isn't an OMGraphic.     */    public OMGraphic findClosest(int x, int y, float limit) {        return objectToOMGraphic(_findClosest(x, y, limit).omg);    }    /**     * This method returns an OMGraphic if the thing that is found     * closest to the coordinates is an OMGraphic. It mose likely is     * an OMGeometry, so it can return null if it found something     * close to the coordinates that isn't an OMGraphic. It will tell     * anything it finds to be selected, however, whether it is an     * OMGraphic or OMGeometry.     */    public OMGraphic selectClosest(int x, int y, float limit) {        return objectToOMGraphic(_selectClosest(x, y, limit));    }    /**     * Finds the object located the closest to the point, regardless     * of how far away it is. This method returns null if the list is     * not valid. The search starts at the first-added geometry. <br>     * This is the same as calling     * <code>findClosest(x, y, Float.MAX_VALUE)</code>.     *      * @param x the horizontal pixel position of the window, from the     *        left of the window.     * @param y the vertical pixel position of the window, from the     *        top of the window.     * @return the closest geometry to the xy window point.     * @see #findClosest(int, int, float)     */    public OMGeometry findClosestGeometry(int x, int y) {        return _findClosest(x, y, Float.MAX_VALUE).omg;    }    /**     * Finds the object located the closest to the coordinates,     * regardless of how far away it is. Sets the select paint of that     * object, and resets the paint of all the other objects. The     * search starts at the first-added graphic.     *      * @param x the x coordinate on the component the graphics are     *        displayed on.     * @param y the y coordinate on the component the graphics are     *        displayed on.     * @return the closest OMGraphic on the list.     */    public OMGeometry selectClosestGeometry(int x, int y) {        return _selectClosest(x, y, Float.MAX_VALUE);    }    /**     * Finds the object located the closest to the point, if the     * object distance away is within the limit, and sets the paint of     * that geometry to its select paint. It sets the paints to all     * the other objects to the regular paint. The search starts at     * the first-added geometry. Any geometries where     * <code>isVisible()</code> returns false are not considered.     *      * @param x the horizontal pixel position of the window, from the     *        left of the window.     * @param y the vertical pixel position of the window, from the     *        top of the window.     * @param limit the max distance that a geometry has to be within     *        to be returned, in pixels.     * @return the closest OMGeometry on the list, within the limit or     *         null if none found.     */    public OMGeometry selectClosestGeometry(int x, int y, float limit) {        return _selectClosest(x, y, limit);    }    /**     * Finds the first OMGeometry (the one on top) that is under this     * pixel. This method will return the particular OMGeometry that     * may fall around the pixel location. If you want to know if the     * pixel touches any part of this list, call contains(x, y)     * instead.     *      * @param x the horizontal pixel position of the window, from the     *        left of the window.     * @param y the vertical pixel position of the window, from the     *        top of the window.     * @return the geometry that contains the pixel, NONE (null) if     *         none are found.     */    public OMGeometry getContains(int x, int y) {        if (shape != null && isVague() && shape.contains(x, y)) {            return this;        } else {            return _getContains(x, y);        }    }    /**     * Returns this list if x, y is inside the bounds of the contents     * of this list.     */    public OMGraphic getOMGraphicThatContains(int x, int y) {        return objectToOMGraphic(getContains(x, y));    }    /**     * Perform an action on the provided geometry. If the geometry is     * not currently on the list, it is added (if the action doesn't     * say to delete it). If the geometry is null, the list checks for     * an action to take on the list (deselectAll).     */    public void doAction(OMGeometry geometry, OMAction action) {        _doAction(geometry, action);    }    /**     * Read a cache of OMGeometries, given a ObjectInputStream.     *      * @param objstream ObjectInputStream of geometry list.     */    public void readGraphics(ObjectInputStream objstream) throws IOException {        Debug.message("omgraphics", "OMGeometryList: Reading cached geometries");        try {            while (true) {                try {                    OMGeometry omg = (OMGeometry) objstream.readObject();                    this.add(omg);                } catch (ClassNotFoundException e) {                    e.printStackTrace();                } catch (OptionalDataException ode) {                    ode.printStackTrace();                }            }        } catch (EOFException e) {        }    }    /**     * Set whether the OMGeometries on the list should be connected to     * make a one-part shape object (if true), or a multi-part shape     * object (if false).     */    public void setConnectParts(boolean value) {        connectParts = value;    }    /**     * Get whether the OMGeometries on the list should be connected to     * make a one-part shape object (if true), or a multi-part shape     * object (if false).     */    public boolean getConnectParts() {        return connectParts;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女网站色| 日本不卡视频在线| 91色在线porny| 亚洲欧洲日本在线| 色婷婷av一区二区三区软件| 亚洲精品国产无天堂网2021| 91激情在线视频| 日本成人中文字幕在线视频| 精品国产精品网麻豆系列| 国产盗摄女厕一区二区三区| 亚洲色大成网站www久久九九| 偷窥国产亚洲免费视频| 日韩精品一区二区三区三区免费| 韩国午夜理伦三级不卡影院| 国产精品国产三级国产专播品爱网 | 国产日韩欧美综合一区| 91丝袜国产在线播放| 亚洲国产成人av| 久久综合色8888| 91浏览器打开| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久欧美一区二区| 在线亚洲高清视频| 久久精品国产一区二区三| 欧美国产一区在线| 欧美狂野另类xxxxoooo| 国产成人在线观看| 肉色丝袜一区二区| 国产精品久久毛片| 欧美一二三四在线| 91一区二区在线观看| 蜜桃av噜噜一区| 日韩理论片在线| 精品国产一区二区国模嫣然| 色8久久精品久久久久久蜜| 精品一区二区三区视频在线观看| 国产精品丝袜一区| 欧美不卡激情三级在线观看| 91视视频在线观看入口直接观看www | 国产精品久久久久久久久动漫| 欧美午夜宅男影院| 成人深夜视频在线观看| 免费看日韩精品| 一区二区三区 在线观看视频| 久久综合狠狠综合久久激情| 欧美色图12p| 91在线视频网址| 精彩视频一区二区三区| 亚洲国产精品自拍| 亚洲欧美区自拍先锋| 国产日韩精品一区二区浪潮av| 51精品视频一区二区三区| 99久久国产综合精品色伊| 国产一区不卡在线| 蜜桃一区二区三区在线| 亚洲午夜精品在线| 亚洲日本在线视频观看| 国产精品色噜噜| 26uuuu精品一区二区| 日韩欧美中文字幕精品| 欧美视频一区二区在线观看| 99国产精品99久久久久久| 成人一级片网址| 黄色小说综合网站| 激情综合一区二区三区| 奇米777欧美一区二区| 天天操天天色综合| 亚洲成人免费在线| 亚洲成人免费影院| 视频一区二区欧美| 日韩制服丝袜av| 五月天一区二区| 亚洲成人一二三| 亚洲gay无套男同| 亚洲成人av电影| 天堂影院一区二区| 免费观看91视频大全| 日韩1区2区3区| 免费在线欧美视频| 免费成人在线影院| 久久狠狠亚洲综合| 国产黑丝在线一区二区三区| 粉嫩蜜臀av国产精品网站| 不卡一二三区首页| 在线亚洲一区二区| 欧美日韩一级大片网址| 91精品在线观看入口| 日韩视频免费观看高清完整版| 欧美成人在线直播| 日本一区二区三区国色天香| 亚洲特黄一级片| 亚洲国产日产av| 免费高清在线一区| 国产成人a级片| 色综合久久九月婷婷色综合| 欧美日韩精品欧美日韩精品一| 欧美精品乱人伦久久久久久| 欧美成人激情免费网| 亚洲国产高清在线观看视频| 亚洲视频你懂的| 午夜精品在线视频一区| 极品少妇一区二区| 成人黄色国产精品网站大全在线免费观看 | 91片黄在线观看| 欧美伦理电影网| xvideos.蜜桃一区二区| 亚洲色欲色欲www在线观看| 亚洲v精品v日韩v欧美v专区| 极品少妇xxxx偷拍精品少妇| va亚洲va日韩不卡在线观看| 欧美在线看片a免费观看| 欧美zozo另类异族| 亚洲男人电影天堂| 麻豆国产精品一区二区三区 | 丝袜亚洲另类丝袜在线| 国产乱妇无码大片在线观看| 色哟哟国产精品| 久久综合给合久久狠狠狠97色69| 亚洲手机成人高清视频| 久久国产精品99久久久久久老狼| 99久久国产综合精品麻豆| 91麻豆精品国产91久久久久久| 久久你懂得1024| 亚洲成av人影院| 粉嫩高潮美女一区二区三区 | 精品欧美一区二区久久| 亚洲特级片在线| 精品亚洲国内自在自线福利| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美高清视频www夜色资源网| 亚洲国产成人在线| 美女www一区二区| 色综合久久99| 国产精品污www在线观看| 免费成人在线网站| 在线免费观看成人短视频| 国产色综合久久| 麻豆精品国产91久久久久久| 欧美在线三级电影| 日韩美女啊v在线免费观看| 国产一区视频网站| 日韩欧美的一区| 婷婷开心激情综合| 欧洲av在线精品| 亚洲欧美日韩电影| 成人午夜免费电影| 久久久久久久久久看片| 麻豆精品在线看| 91精品国产福利| 午夜日韩在线观看| 欧美综合一区二区三区| 亚洲欧洲成人精品av97| 国产成人精品综合在线观看 | 在线播放中文一区| 一区二区三区蜜桃| 99re这里都是精品| 国产精品九色蝌蚪自拍| 成人在线综合网站| 国产精品―色哟哟| 成人av网站在线观看免费| 久久久精品国产免大香伊| 黄色日韩网站视频| 久久伊人中文字幕| 韩国成人精品a∨在线观看| 日韩精品专区在线影院重磅| 日韩av电影一区| 在线播放视频一区| 裸体歌舞表演一区二区| 日韩欧美国产一二三区| 精品在线你懂的| 国产三级精品三级在线专区| 国模一区二区三区白浆| 国产亚洲精久久久久久| 国产成人在线免费| 亚洲色欲色欲www| 在线观看精品一区| 午夜不卡av在线| 欧美大度的电影原声| 国模冰冰炮一区二区| 欧美激情一区二区三区| 99久久精品一区二区| 综合欧美一区二区三区| 欧美日韩中文精品| 蜜桃av一区二区在线观看| 26uuu国产电影一区二区| 成人高清视频免费观看| 夜色激情一区二区| 911精品国产一区二区在线| 免费欧美在线视频| 亚洲国产精品高清| 91极品美女在线| 蜜桃av一区二区| 中文一区二区在线观看| 色av一区二区| 久久99热狠狠色一区二区| 欧美韩日一区二区三区| 欧美综合亚洲图片综合区| 青青草国产精品97视觉盛宴 | 日本中文在线一区| xnxx国产精品|