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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? omgraphicutil.java

?? openmap java寫的開源數(shù)字地圖程序. 用applet實(shí)現(xiàn),可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// **********************************************************************//// <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/j3d/com/bbn/openmap/tools/j3d/OMGraphicUtil.java,v $// $RCSfile: OMGraphicUtil.java,v $// $Revision: 1.4.2.2 $// $Date: 2005/08/11 21:03:16 $// $Author: dietrick $//// **********************************************************************package com.bbn.openmap.tools.j3d;import java.awt.Color;import java.awt.Point;import java.awt.Shape;import java.awt.geom.FlatteningPathIterator;import java.awt.geom.PathIterator;import java.util.HashSet;import java.util.Iterator;import javax.media.j3d.Appearance;import javax.media.j3d.ColoringAttributes;import javax.media.j3d.LineArray;import javax.media.j3d.LineStripArray;import javax.media.j3d.Material;import javax.media.j3d.PolygonAttributes;import javax.media.j3d.Shape3D;import javax.media.j3d.TriangleStripArray;import javax.vecmath.Color3f;import javax.vecmath.Color4b;import javax.vecmath.Point3d;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.omGraphics.OMColor;import com.bbn.openmap.omGraphics.OMGeometryList;import com.bbn.openmap.omGraphics.OMGraphic;import com.bbn.openmap.omGraphics.OMGraphicList;import com.bbn.openmap.omGraphics.OMGrid;import com.bbn.openmap.omGraphics.grid.GridData;import com.bbn.openmap.omGraphics.grid.OMGridGenerator;import com.bbn.openmap.omGraphics.grid.SimpleColorGenerator;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.util.Debug;import com.sun.j3d.utils.geometry.GeometryInfo;import com.sun.j3d.utils.geometry.NormalGenerator;import com.sun.j3d.utils.geometry.Stripifier;import com.sun.j3d.utils.geometry.Triangulator;/** * This class handles translating OMGraphics into a Java 3D Scene. *  * @author dietrick */public class OMGraphicUtil {    public final static int DEFAULT_NPOINTS_BUFFER_SIZE = 100;    public final static Iterator NULL_ITERATOR = new HashSet().iterator();    /**     * Method takes an OMGraphic, creates one or more Shape3D objects     * out of it, and returns an Iterator containing them.     *      * @param graphic the OMGraphic.     * @return Iterator containing Shape3D objects.     */    public static Iterator createShape3D(OMGraphic graphic) {        return createShape3D(graphic, 0);    }    /**     * Method takes an OMGraphic, creates one or more Shape3D objects     * out of it, and returns an Iterator containing them.     *      * @param graphic the OMGraphic.     * @param baselineHeight the baselined height for all the graphics     *        on the list.     * @return Iterator containing Shape3D objects.     */    public static Iterator createShape3D(OMGraphic graphic,                                         double baselineHeight) {        Debug.message("3detail", "OMGraphicUtil.createShape3D()");        boolean DEBUG_SHAPE = Debug.debugging("3dshape");        if (graphic == null) {            return NULL_ITERATOR;        }        if (graphic instanceof OMGraphicList                && !(graphic instanceof OMGeometryList)) {            HashSet set = new HashSet();            Iterator it = ((OMGraphicList) graphic).iterator();            while (it.hasNext()) {                OMGraphic subgraphic = (OMGraphic) it.next();                Debug.message("3detail",                        "OMGraphicUtil.createShape3D():  recursivly adding list...");                Iterator iterator = createShape3D(subgraphic, baselineHeight);                while (iterator.hasNext()) {                    set.add(iterator.next());                }            }            return set.iterator();        } else {            if (DEBUG_SHAPE) {                Debug.output("OMGraphicUtil.createShape3D():  adding shape...");            }            Shape shape = graphic.getShape();            if (shape != null) {                // Handle the shapes, depending on if they should                // be filled or not...                // First, determine wether this is a line or                // polygon thingy, and set the color accordingly.                // Text should be handled differently - might need                // to render text, and the background block.                if (graphic.shouldRenderFill()) {                    // Do polygons.                    return createShape3D(shape,                            baselineHeight,                            graphic.getFillColor(),                            true);                } else if (graphic.shouldRenderEdge()) {                    // Might as well make sure it's not totally                    // clear before creating lines.                    return createShape3D(shape,                            baselineHeight,                            graphic.getDisplayColor(),                            false);                } else if (DEBUG_SHAPE) {                    Debug.output("OMGraphicUtil.createShape3D(): can't render graphic");                }            } else if (DEBUG_SHAPE) {                Debug.output("OMGraphicUtil.createShape3D(): shape from graphic is null");            }        }        return NULL_ITERATOR;    }    /**     * Create an Iterator containing a set of Shape3D objects, created     * from OMGrid. Currently only works for OMGrids containing     * GridData.Int data.     *      * @param grid the OMGrid to create a 3D terrain object from.     * @param baselineHeight the baselined height for all the values     *        in the grid, if the OMGridGenerator wants to use it.     * @param projection the map projection     * @return an iterator containing all Shape3D objects     */    public static Iterator createShape3D(OMGrid grid, double baselineHeight,                                         Projection projection) {        TriangleStripArray gridStrip;        if (grid.getRenderType() != OMGraphic.RENDERTYPE_LATLON) {            Debug.error("OMGraphicUtil.createShape3D:  can't handle non-LATLON grids yet");            return NULL_ITERATOR;        }        boolean DEBUG = false;        if (Debug.debugging("3dgrid")) {            DEBUG = true;        }        //      if (grid.getGenerator() == null && grid.getFillColor() ==        // OMColor.clear) {        //          return createWireFrame(grid, baselineHeight, projection);        //      }        Color fColor = grid.getFillColor();        Color lColor = grid.getLineColor();        boolean polyline = (fColor == OMColor.clear);        if (DEBUG) {            Debug.output("Polyline = " + polyline);        }        Color3f fillcolor = new Color3f(fColor);        Color3f linecolor = new Color3f(lColor);        int numRows = grid.getRows();        int numCols = grid.getColumns();        // create triangle strip for twist        int stripCount = numRows - 1;        int numberVerticesPerStrip = numCols * 2;        int[] stripCounts = new int[stripCount];        for (int i = 0; i < stripCount; i++) {            stripCounts[i] = numberVerticesPerStrip;        }        LatLonPoint anchorLL = new LatLonPoint(grid.getLatitude(), grid.getLongitude());//        Point anchorP = projection.forward(anchorLL);        float vRes = grid.getVerticalResolution();        float hRes = grid.getHorizontalResolution();        gridStrip = new TriangleStripArray(stripCount * numberVerticesPerStrip, TriangleStripArray.COORDINATES                | TriangleStripArray.COLOR_3 | TriangleStripArray.NORMALS, stripCounts);        // OK, what you want to do is calculate the index of the        // vertices, add the correct multiplication of offsets in        // degree space, and then inverse project that point to get        // the actual coordinates.        Point p = new Point();        int pointer = 0;        GridData gridData = grid.getData();        if (!(gridData instanceof GridData.Int)) {            // Need to fix this to work with all GridData types!            Debug.error("OMGrid.interpValueAt only works for integer data.");        }        int[][] data = ((GridData.Int) gridData).getData();        boolean major = gridData.getMajor();        //         int[][] data = grid.getData();        //         boolean major = grid.getMajor();        int dataPoint;        Color3f color;        SimpleColorGenerator generator = null;        OMGridGenerator tempGen = grid.getGenerator();        if (tempGen instanceof SimpleColorGenerator) {            generator = (SimpleColorGenerator) tempGen;        }        for (int j = 0; j < numRows - 1; j++) {            if (DEBUG) {                Debug.output("Creating strip " + j);            }            // I think the '-' should be '+'... (changed, DFD)            float lat1 = anchorLL.getLatitude() + ((float) j * vRes);            float lat2 = anchorLL.getLatitude() + (((float) j + 1f) * vRes);            for (int k = 0; k < numCols; k++) {                if (DEBUG) {                    Debug.output("   working row " + k);                }                float lon = anchorLL.getLongitude() + ((float) k * hRes);                projection.forward(lat1, lon, p);                if (major) {                    dataPoint = data[k][j];                } else {                    dataPoint = data[j][k];                }                gridStrip.setCoordinate(pointer,                        new Point3d((float) p.getX(), (float) dataPoint, (float) p.getY()));                if (DEBUG) {                    Debug.output("       1st coord " + p.getX() + ", "                            + dataPoint + ", " + p.getY());                }                projection.forward(lat2, lon, p);                if (major) {                    dataPoint = data[k][j + 1];                } else {                    dataPoint = data[j + 1][k];                }                gridStrip.setCoordinate(pointer + 1,                        new Point3d((float) p.getX(), (float) dataPoint, (float) p.getY()));                if (DEBUG) {                    Debug.output("       2nd coord " + p.getX() + ", "                            + dataPoint + ", " + p.getY());                }                // Need the TriangleStripArray.COLOR_3 Attribute set                // above                if (generator == null) {                    if (polyline) {                        color = linecolor;                    } else {                        color = fillcolor;                    }                } else {                    color = new Color3f(new Color(generator.calibratePointValue(dataPoint)));                }                gridStrip.setColor(pointer++, color);                gridStrip.setColor(pointer++, color);                // else                //              pointer += 2;            }        }        Shape3D shape = new Shape3D(gridStrip);        Appearance appear = new Appearance();        PolygonAttributes polyAttrib = new PolygonAttributes();        if (polyline) {            polyAttrib.setPolygonMode(PolygonAttributes.POLYGON_LINE);        }        polyAttrib.setCullFace(PolygonAttributes.CULL_NONE);        appear.setPolygonAttributes(polyAttrib);        shape.setAppearance(appear);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性受xxxx| 国产精品美女久久久久av爽李琼| 日韩三级在线免费观看| 中文字幕永久在线不卡| 捆绑调教美女网站视频一区| 成人美女视频在线看| 日韩天堂在线观看| 亚洲尤物视频在线| 成人va在线观看| 精品久久人人做人人爽| 成人午夜av在线| 精品国产成人在线影院| 性欧美疯狂xxxxbbbb| 91高清在线观看| |精品福利一区二区三区| 国产真实精品久久二三区| 欧美精品久久久久久久多人混战| 欧美激情自拍偷拍| 国产传媒日韩欧美成人| 欧美成人伊人久久综合网| 亚洲韩国一区二区三区| 91在线观看免费视频| 国产欧美日韩三级| 国产成人无遮挡在线视频| 337p日本欧洲亚洲大胆精品| 蜜乳av一区二区| 国产成人免费在线观看不卡| 久久久亚洲国产美女国产盗摄| 另类小说图片综合网| 视频一区视频二区中文字幕| 一二三区精品视频| 91在线云播放| 成人午夜短视频| 国产精品午夜在线观看| 国产91高潮流白浆在线麻豆| 久久久国际精品| 国产69精品久久99不卡| 欧美高清一级片在线观看| 成人久久久精品乱码一区二区三区| 久久综合九色综合97_久久久| 精品无人码麻豆乱码1区2区| 久久久久久久久99精品| 成人av电影观看| 亚洲欧美日韩中文播放| 91福利区一区二区三区| 午夜精品福利一区二区蜜股av| 在线播放国产精品二区一二区四区| 丝袜美腿亚洲一区二区图片| 欧美大肚乱孕交hd孕妇| 国产精品一区二区在线看| 中文字幕中文乱码欧美一区二区| 91女厕偷拍女厕偷拍高清| 亚洲国产精品久久一线不卡| 日韩一区二区三区免费观看| 激情亚洲综合在线| 亚洲天堂网中文字| 欧美一区二区日韩| 波多野结衣91| 日韩国产精品久久| 国产欧美中文在线| 在线亚洲一区二区| 久久狠狠亚洲综合| 亚洲黄色在线视频| 欧美电视剧免费全集观看| 不卡av在线免费观看| 日韩精品午夜视频| 亚洲欧洲成人自拍| 欧美一区二区三区四区在线观看| 国产99久久久久久免费看农村| 亚洲桃色在线一区| 日韩一区二区免费在线观看| av男人天堂一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久精品人人做人人综合 | 亚洲欧美日韩国产中文在线| 欧美丰满高潮xxxx喷水动漫| 成人丝袜18视频在线观看| 午夜婷婷国产麻豆精品| 国产精品青草久久| 精品人伦一区二区色婷婷| 色av综合在线| 成人免费看的视频| 麻豆精品视频在线观看视频| 一区二区三区精品视频| 久久久久久久久97黄色工厂| 在线电影一区二区三区| 91玉足脚交白嫩脚丫在线播放| 国产原创一区二区| 日韩和欧美一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美日韩精品电影| 精品欧美一区二区在线观看| 欧美午夜片在线看| 成人黄色av电影| 国产高清亚洲一区| 美女视频网站黄色亚洲| 亚洲1区2区3区4区| 日韩美女视频一区| 国产精品视频一二| 欧美精彩视频一区二区三区| 日韩欧美在线一区二区三区| 欧美高清视频一二三区| 欧美天堂亚洲电影院在线播放| av一区二区久久| 99久久精品国产麻豆演员表| 国产激情视频一区二区三区欧美| 视频一区欧美精品| 日本麻豆一区二区三区视频| 欧美精品色一区二区三区| 在线一区二区三区做爰视频网站| 成人污视频在线观看| 国产成人精品影院| 国产a级毛片一区| 成人久久视频在线观看| av一区二区三区| 色婷婷av一区二区三区之一色屋| 一本大道综合伊人精品热热| 日本韩国欧美在线| 久久久99精品久久| 日本一区二区三级电影在线观看| 久久精品一区蜜桃臀影院| 国产欧美日韩三区| 中文字幕一区二区在线观看| 国产精品不卡一区| 一二三区精品视频| 日本不卡一区二区| 久久精品国内一区二区三区| 国内精品写真在线观看 | 亚洲蜜桃精久久久久久久| 亚洲老妇xxxxxx| 亚洲不卡一区二区三区| 久久精品国产精品亚洲红杏| 国产原创一区二区| 成人18视频在线播放| 欧美伊人久久久久久久久影院| 日韩一区二区在线观看| 久久久久国产一区二区三区四区| 国产精品久久久久永久免费观看| 亚洲激情图片小说视频| 日韩vs国产vs欧美| 国产精品中文字幕日韩精品 | 欧美三区在线视频| 日韩色在线观看| 久久欧美一区二区| 亚洲人成人一区二区在线观看| 中文字幕欧美激情一区| 日韩精品电影在线| 国产精品麻豆网站| 一卡二卡欧美日韩| 老司机精品视频在线| 国产成人8x视频一区二区| 国产午夜精品一区二区| 国产精品国产a级| 午夜精品久久久久久不卡8050| 国产一区二区三区高清播放| 色老汉一区二区三区| 精品国内二区三区| 亚洲一区二区三区小说| 国产福利一区二区三区| 欧美日韩精品欧美日韩精品一| 久久精品在这里| 日韩成人一级片| 一本到高清视频免费精品| 久久亚洲一级片| 偷拍亚洲欧洲综合| 91在线一区二区三区| 精品国产一二三区| 亚洲午夜精品在线| 99视频在线精品| 日韩精品一区二区三区在线| 亚洲欧美激情小说另类| 国产不卡视频一区| 精品国产一区二区三区av性色| 亚洲电影一区二区三区| 99久久精品国产麻豆演员表| 国产色产综合色产在线视频| 日韩中文字幕av电影| 色婷婷综合久久久中文一区二区 | 亚洲精品视频在线看| 国产精品18久久久久久久久久久久| 在线精品视频免费观看| 最近中文字幕一区二区三区| 国产精品一区二区三区99| 日韩欧美在线综合网| 日韩精品福利网| 欧美日韩一区在线| 亚洲电影第三页| 在线观看视频欧美| 亚洲黄色免费网站| 欧美主播一区二区三区| 国产精品成人午夜| 91免费精品国自产拍在线不卡| 久久亚洲综合色一区二区三区| 热久久一区二区| 欧美成人一区二区三区| 久久99国产精品免费网站| 欧美一级搡bbbb搡bbbb| 免费一级片91| 精品久久久久香蕉网| 激情综合一区二区三区|