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

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

?? editableomcircle.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/omGraphics/EditableOMCircle.java,v $// $RCSfile: EditableOMCircle.java,v $// $Revision: 1.5.2.2 $// $Date: 2005/12/22 23:14:25 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.omGraphics;import java.awt.event.MouseEvent;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.layer.util.stateMachine.State;import com.bbn.openmap.omGraphics.editable.CircleStateMachine;import com.bbn.openmap.omGraphics.editable.GraphicEditState;import com.bbn.openmap.omGraphics.editable.GraphicSelectedState;import com.bbn.openmap.omGraphics.editable.GraphicSetOffsetState;import com.bbn.openmap.proj.GreatCircle;import com.bbn.openmap.proj.Length;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.util.Debug;/** * The EditableOMCircle encompasses an OMCircle, providing methods for modifying * or creating it. This class only modifies circles in lat/lon space * (RENDERTYPE_LATLON) - and ellipses in screen space (RENDERTYPE_XY or * RENDERTYPE_OFFSET). When you grab at the circle, you change the radius of the * entire circle. Grabbing the center point moves the circle. If there is an * offset point, moving the center point changes the circle's position in * relation to the offset point. Moving the offset point moves the circle, * keeping the distance to the center point constant. */public class EditableOMCircle extends EditableOMGraphic {    protected VerticalGrabPoint gpn;    protected HorizontalGrabPoint gpw;    protected VerticalGrabPoint gps;    protected HorizontalGrabPoint gpe;    protected GrabPoint gpnw;    protected GrabPoint gpne;    protected GrabPoint gpsw;    protected GrabPoint gpse;    protected OffsetGrabPoint gpc;    protected GrabPoint gpr;    protected OffsetGrabPoint gpo; // offset    protected OffsetGrabPoint gpm; // for grabbing the circle and    // changing the radius during creation.    protected OMCircle circle;    public final static int CENTER_POINT_INDEX = 0;    public final static int NW_POINT_INDEX = 1;    public final static int N_POINT_INDEX = 2;    public final static int NE_POINT_INDEX = 3;    public final static int W_POINT_INDEX = 4;    public final static int E_POINT_INDEX = 5;    public final static int SW_POINT_INDEX = 6;    public final static int S_POINT_INDEX = 7;    public final static int SE_POINT_INDEX = 8;    public final static int RADIUS_POINT_INDEX = 9;    public final static int OFFSET_POINT_INDEX = 10;    /**     * Create the EditableOMCircle, setting the state machine to create the     * circle off of the gestures.     */    public EditableOMCircle() {        createGraphic(null);    }    /**     * Create an EditableOMCircle with the circleType and renderType parameters     * in the GraphicAttributes object.     */    public EditableOMCircle(GraphicAttributes ga) {        createGraphic(ga);    }    /**     * Create the EditableOMCircle with an OMCircle already defined, ready for     * editing.     *      * @param omc OMCircle that should be edited.     */    public EditableOMCircle(OMCircle omc) {        setGraphic(omc);    }    /**     * Create and initialize the state machine that interprets the modifying     * gestures/commands, as well as ititialize the grab points. Also allocates     * the grab point array needed by the EditableOMCircle.     */    public void init() {        setCanGrabGraphic(false);        Debug.message("eomg", "EditableOMCircle.init()");        setStateMachine(new CircleStateMachine(this));        gPoints = new GrabPoint[11];    }    /**     * Set the graphic within the state machine. If the graphic is null, then     * one shall be created, and located off screen until the gestures driving     * the state machine place it on the map.     */    public void setGraphic(OMGraphic graphic) {        init();        if (graphic instanceof OMCircle) {            circle = (OMCircle) graphic;            stateMachine.setSelected();            setGrabPoints(circle);        } else {            createGraphic(null);        }    }    /**     * Create and set the graphic within the state machine. The     * GraphicAttributes describe the type of circle to create.     */    public void createGraphic(GraphicAttributes ga) {        init();        stateMachine.setUndefined();        int renderType = OMGraphic.RENDERTYPE_UNKNOWN;        if (ga != null) {            renderType = ga.getRenderType();        }        if (Debug.debugging("eomc")) {            Debug.output("EditableOMCircle.createGraphic(): rendertype = "                    + renderType);        }        switch (renderType) {        case (OMGraphic.RENDERTYPE_LATLON):            circle = new OMCircle(90f, -180f, 0f);            break;        case (OMGraphic.RENDERTYPE_OFFSET):            circle = new OMCircle(90f, -180f, 0, 0, 1, 1);            break;        default:            circle = new OMCircle(-1, -1, 1, 1);        }        if (ga != null) {            ga.setTo(circle);        }    }    /**     * Get whether a graphic can be manipulated by its edges, rather than just     * by its grab points.     */    public boolean getCanGrabGraphic() {        return canGrabGraphic                || circle.renderType == OMGraphic.RENDERTYPE_LATLON;    }    /**     * Get the OMGraphic being created/modified by the EditableOMCircle.     */    public OMGraphic getGraphic() {        return circle;    }    /**     * Attach to the Moving OffsetGrabPoint so if it moves, it will move this     * EditableOMGraphic with it. EditableOMGraphic version doesn't do anything,     * each subclass has to decide which of its OffsetGrabPoints should be     * attached to it.     */    public void attachToMovingGrabPoint(OffsetGrabPoint gp) {        gp.addGrabPoint(gpo);    }    /**     * Detach from a Moving OffsetGrabPoint. The EditableOMGraphic version     * doesn't do anything, each subclass should remove whatever GrabPoint it     * would have attached to an OffsetGrabPoint.     */    public void detachFromMovingGrabPoint(OffsetGrabPoint gp) {        gp.removeGrabPoint(gpo);    }    /**     * Set the GrabPoint that is in the middle of being modified, as a result of     * a mouseDragged event, or other selection process.     */    public void setMovingPoint(GrabPoint gp) {        super.setMovingPoint(gp);        // set as a flag that the graphic is being moved, and it's        // parameters should not be adjusted.        gpm = null;    }    /**     * Given a MouseEvent, find a GrabPoint that it is touching, and set the     * moving point to that GrabPoint.     *      * @param e MouseEvent     * @return GrabPoint that is touched by the MouseEvent, null if none are.     */    public GrabPoint getMovingPoint(MouseEvent e) {        movingPoint = null;        GrabPoint[] gb = getGrabPoints();        int x = e.getX();        int y = e.getY();        for (int i = gb.length - 1; i >= 0; i--) {            if (i != RADIUS_POINT_INDEX && gb[i] != null                    && gb[i].distance(x, y) == 0) {                setMovingPoint(gb[i]);                // in case the points are on top of each other, the                // last point in the array will take precidence.                break;            }        }        return movingPoint;    }    protected int lastRenderType = -1;    /**     * Check to make sure the grab points are not null. If they are, allocate     * them, and them assign them to the array.     */    public void assertGrabPoints() {        int rt = getGraphic().getRenderType();        if (rt != lastRenderType) {            clearGrabPoints();            lastRenderType = rt;        }        if (gpr == null) {            gpr = new GrabPoint(-1, -1);            gPoints[RADIUS_POINT_INDEX] = gpr;        }        if (gpnw == null) {            gpnw = new GrabPoint(-1, -1);            gPoints[NW_POINT_INDEX] = gpnw;        }        if (gpn == null) {            gpn = new VerticalGrabPoint(-1, -1);            gPoints[N_POINT_INDEX] = gpn;        }        if (gpne == null) {            gpne = new GrabPoint(-1, -1);            gPoints[NE_POINT_INDEX] = gpne;        }        if (gpw == null) {            gpw = new HorizontalGrabPoint(-1, -1);            gPoints[W_POINT_INDEX] = gpw;        }        if (gpe == null) {            gpe = new HorizontalGrabPoint(-1, -1);            gPoints[E_POINT_INDEX] = gpe;        }        if (gpsw == null) {            gpsw = new GrabPoint(-1, -1);            gPoints[SW_POINT_INDEX] = gpsw;        }        if (gps == null) {            gps = new VerticalGrabPoint(-1, -1);            gPoints[S_POINT_INDEX] = gps;        }        if (gpse == null) {            gpse = new GrabPoint(-1, -1);            gPoints[SE_POINT_INDEX] = gpse;        }        if (gpc == null) {            gpc = new OffsetGrabPoint(-1, -1);            gPoints[CENTER_POINT_INDEX] = gpc;            if (getGraphic().getRenderType() != OMGraphic.RENDERTYPE_LATLON) {                gpc.addGrabPoint(gpnw);                gpc.addGrabPoint(gpn);                gpc.addGrabPoint(gpne);                gpc.addGrabPoint(gpw);                gpc.addGrabPoint(gpe);                gpc.addGrabPoint(gpsw);                gpc.addGrabPoint(gps);                gpc.addGrabPoint(gpse);            }        }        if (gpo == null) {            gpo = new OffsetGrabPoint(-1, -1);            gPoints[OFFSET_POINT_INDEX] = gpo;            gpo.addGrabPoint(gpc);        }    }    protected void clearGrabPoints() {        gpc = null;        gpr = null;        gpnw = null;        gpn = null;        gpne = null;        gpw = null;        gpe = null;        gpsw = null;        gps = null;        gpse = null;        gpo = null;        gPoints[CENTER_POINT_INDEX] = gpc;        gPoints[RADIUS_POINT_INDEX] = gpr;        gPoints[NW_POINT_INDEX] = gpnw;        gPoints[N_POINT_INDEX] = gpn;        gPoints[NE_POINT_INDEX] = gpne;        gPoints[W_POINT_INDEX] = gpw;        gPoints[E_POINT_INDEX] = gpe;        gPoints[SW_POINT_INDEX] = gpsw;        gPoints[S_POINT_INDEX] = gps;        gPoints[SE_POINT_INDEX] = gpse;        gPoints[OFFSET_POINT_INDEX] = gpo;    }    /**     * Set the grab points for the graphic provided, setting them on the extents     * of the graphic. Called when you want to set the grab points off the     * location of the graphic.     */    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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲区| 欧美色倩网站大全免费| 亚洲激情第一区| 国产精品萝li| 亚洲美女在线一区| 亚洲欧美激情小说另类| 伊人婷婷欧美激情| 午夜激情综合网| 久久99久久精品| 韩国av一区二区三区四区| 国产尤物一区二区| youjizz国产精品| 在线国产亚洲欧美| 91精品国产aⅴ一区二区| 日韩午夜三级在线| 中文字幕乱码日本亚洲一区二区 | 亚洲成人高清在线| 亚洲aaa精品| 黄一区二区三区| a在线播放不卡| 欧美卡1卡2卡| www国产成人| 日韩理论在线观看| 亚洲国产精品麻豆| 激情成人午夜视频| 91丝袜高跟美女视频| 欧美人牲a欧美精品| 精品国产乱码久久久久久图片| 久久久综合九色合综国产精品| 亚洲色图在线播放| 视频一区二区中文字幕| 国产精品一区二区视频| 91高清在线观看| 2024国产精品视频| 一区二区三区免费观看| 韩国精品一区二区| 欧美亚洲尤物久久| 国产精品免费网站在线观看| 午夜视频一区二区三区| 国产精品99久| 91麻豆精品国产| 中文字幕在线不卡| 韩国中文字幕2020精品| 欧美亚洲国产怡红院影院| 精品不卡在线视频| 污片在线观看一区二区| 99热精品一区二区| 精品成人一区二区三区| 香蕉久久一区二区不卡无毒影院| 国产精品18久久久久久vr| 欧美日韩的一区二区| 一区在线中文字幕| 国产精品91xxx| 精品欧美一区二区久久| 亚洲午夜免费电影| 91亚洲男人天堂| 国产女主播一区| 国产在线精品一区二区不卡了 | 夜色激情一区二区| 大陆成人av片| 久久精品人人做人人爽97| 日韩av午夜在线观看| 91免费在线播放| 亚洲国产精品成人综合色在线婷婷| 五月天久久比比资源色| 欧美日韩一区二区三区免费看| 国产精品美女久久久久av爽李琼 | 欧美一级日韩免费不卡| 亚洲伊人色欲综合网| 99精品久久久久久| 中文字幕在线免费不卡| 夫妻av一区二区| 中文字幕va一区二区三区| 国产福利精品导航| 国产女人18水真多18精品一级做| 国产一区二区福利视频| 久久日韩粉嫩一区二区三区| 久久精品免费观看| 亚洲精品在线电影| 国产精品911| 综合在线观看色| 色综合久久久久久久久| 亚洲人吸女人奶水| 91久久精品一区二区二区| 一区二区不卡在线播放 | 日韩一级在线观看| 精品一区二区三区在线观看国产 | 国产福利精品导航| 国产精品免费视频观看| 91色乱码一区二区三区| 亚洲成av人综合在线观看| 欧美日韩国产天堂| 久久精品av麻豆的观看方式| 久久久91精品国产一区二区三区| 国产成人精品影视| 一区二区三区 在线观看视频| 欧美日韩精品福利| 久久99精品久久久久| 亚洲欧美二区三区| 欧美日韩精品一二三区| 国产麻豆日韩欧美久久| 亚洲色图20p| 欧美老肥妇做.爰bbww视频| 国产在线精品一区二区三区不卡 | 亚洲视频一二三区| 欧美日韩国产高清一区二区| 免费看欧美女人艹b| 国产欧美日韩卡一| 欧美日韩在线直播| 国产白丝网站精品污在线入口| 亚洲欧美日韩在线| 欧美草草影院在线视频| 91色乱码一区二区三区| 久久精品国产精品亚洲综合| 一区二区中文字幕在线| 欧美xxxx在线观看| 91麻豆福利精品推荐| 激情国产一区二区| 天天色天天操综合| 亚洲视频狠狠干| 久久免费看少妇高潮| 色欧美片视频在线观看在线视频| 久久精品国产网站| 一区二区三区欧美日| 久久久久9999亚洲精品| 这里只有精品电影| 色噜噜久久综合| 国产·精品毛片| 精品一区二区三区免费观看 | 日韩精品综合一本久道在线视频| 波多野结衣精品在线| 久久国产生活片100| 亚洲sss视频在线视频| 国产精品国产自产拍在线| 国产午夜精品理论片a级大结局 | 精彩视频一区二区三区| 亚洲国产视频在线| 亚洲精品成人在线| 中文字幕一区三区| 国产精品网站一区| 久久婷婷国产综合精品青草| 欧美一区二区三区免费在线看| 日本韩国一区二区三区视频| 成人免费观看男女羞羞视频| 国产乱子伦视频一区二区三区| 日韩福利视频导航| 亚洲h在线观看| 午夜不卡av在线| 亚洲最大成人网4388xx| 亚洲视频小说图片| 一区二区三区高清不卡| 亚洲视频精选在线| 一区二区三区精品在线观看| 亚洲视频你懂的| 一区二区成人在线视频| 亚洲综合免费观看高清完整版在线| 国产精品电影一区二区| 国产精品久久久久影院色老大| 国产精品无人区| 亚洲精品欧美在线| 亚洲图片有声小说| 成人国产一区二区三区精品| 国产69精品一区二区亚洲孕妇| 国产乱淫av一区二区三区| 成人免费视频网站在线观看| 成人免费av资源| 一本色道久久综合精品竹菊| 在线观看亚洲精品视频| 欧美日韩国产高清一区二区| 欧美成人精品3d动漫h| 国产亚洲一区二区在线观看| 国产农村妇女毛片精品久久麻豆| 中文字幕日韩一区| 香蕉影视欧美成人| 国产一区不卡在线| 99精品久久只有精品| 91 com成人网| 久久精品一区二区三区不卡 | 日本欧美在线观看| 国产九色sp调教91| 色婷婷一区二区| 日韩欧美一二区| 自拍偷拍亚洲激情| 美日韩黄色大片| av一二三不卡影片| 日韩一二在线观看| 亚洲欧美在线另类| 久久精品久久精品| 91蜜桃网址入口| 精品国产a毛片| 亚洲宅男天堂在线观看无病毒| 免费成人在线观看| 北条麻妃国产九九精品视频| 欧美一区二区成人6969| 日韩久久一区二区| 国产美女视频一区| 欧美精品免费视频| 亚洲色图欧美激情| 成人三级在线视频| 久久综合资源网|