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

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

?? translategizmo.java

?? 基于java的3d開(kāi)發(fā)庫(kù)。對(duì)坐java3d的朋友有很大的幫助。
?? JAVA
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
//===========================================================================//=-------------------------------------------------------------------------=//= Module history:                                                         =//= - March 16 2006 - Oscar Chavarro: Original base version                 =//===========================================================================package vsdk.toolkit.gui;// Java basic classesimport java.util.ArrayList;// Awt classesimport java.awt.event.MouseEvent;import java.awt.event.MouseWheelEvent;import java.awt.event.KeyEvent;//import java.awt.Robot;import java.awt.Point;// VSDK classesimport vsdk.toolkit.common.VSDK;import vsdk.toolkit.common.Matrix4x4;import vsdk.toolkit.common.Vector3D;import vsdk.toolkit.common.ColorRgb;import vsdk.toolkit.common.Ray;import vsdk.toolkit.environment.Camera;import vsdk.toolkit.environment.Material;import vsdk.toolkit.environment.geometry.Arrow;import vsdk.toolkit.environment.geometry.Box;import vsdk.toolkit.environment.geometry.Cone;import vsdk.toolkit.environment.geometry.Geometry;import vsdk.toolkit.environment.geometry.InfinitePlane;import vsdk.toolkit.environment.geometry.ParametricCurve;import vsdk.toolkit.environment.scene.SimpleBody;import vsdk.toolkit.processing.GeometricModeler;public class TranslateGizmo extends Gizmo {    /// Internal transformation state    private Matrix4x4 T;    private Camera camera;    /// Geometric model based in primitive instancing: primitive concretions    private Arrow arrowModel;    private Cone cylinderModel;    private Box boxModel;    private Cone coneModel;    /// Geometric model based in primitive instancing: primitive instances    /// This list is always of size 12, and its elements follow the order     /// indicated in the values of the *_ELEMENT constants of this class.    ArrayList<SimpleBody> elementInstances;    ArrayList<SimpleBody> elementInstances3dsmax;    /// Internal element selection state    public static final int X_AXIS_ELEMENT = 1;    public static final int Y_AXIS_ELEMENT = 2;    public static final int Z_AXIS_ELEMENT = 3;    public static final int XYY_SEGMENT_ELEMENT = 4;    public static final int XYX_SEGMENT_ELEMENT = 5;    public static final int YZZ_SEGMENT_ELEMENT = 6;    public static final int YZY_SEGMENT_ELEMENT = 7;    public static final int XZZ_SEGMENT_ELEMENT = 8;    public static final int XZX_SEGMENT_ELEMENT = 9;    public static final int XY_BOX_ELEMENT = 10;    public static final int YZ_BOX_ELEMENT = 11;    public static final int XZ_BOX_ELEMENT = 12;    public static final int NULL_GROUP = 0;    public static final int X_AXIS_GROUP = 1;    public static final int Y_AXIS_GROUP = 2;    public static final int Z_AXIS_GROUP = 3;    public static final int XY_PLANE_GROUP = 4;    public static final int YZ_PLANE_GROUP = 5;    public static final int XZ_PLANE_GROUP = 6;    private static final double SEGMENT_LENGHT = 0.32;    private static final double SEGMENT_WIDTH = 0.02;    private static final double BOX_SIDE = 0.3;    private static final double BOX_HEIGHT = 0.01;    private static final double ARROW_LENGHT = 1.0;    private int aparentSizeInPixels;    /// Interaction state    private int persistentSelection;    private int volatileSelection;    //private Robot awtRobot;    //private boolean skipRobot;    private int oldmousex;    private int oldmousey;    private Vector3D lastDeltaPosition;    private boolean selectedResizing;    private double currentScale;    private boolean active;    public TranslateGizmo(Camera cam)    {        aparentSizeInPixels = 100;        persistentSelection = X_AXIS_GROUP;        volatileSelection = NULL_GROUP;        // Total arrow lenght = 0.2 empty + 0.5 base + 0.3 head        arrowModel = new Arrow(0.5*ARROW_LENGHT, 0.3*ARROW_LENGHT, 0.025, 0.05);        cylinderModel = new Cone(SEGMENT_WIDTH, SEGMENT_WIDTH, SEGMENT_LENGHT);        boxModel = new Box(BOX_SIDE, BOX_SIDE, BOX_HEIGHT);        coneModel = new Cone(0.05, 0, 0.3*ARROW_LENGHT);        elementInstances = new ArrayList<SimpleBody>();        for ( int i = 0; i < 12; i++ ) {            SimpleBody r = new SimpleBody();            elementInstances.add(r);        }        elementInstances3dsmax = new ArrayList<SimpleBody>();        for ( int i = 0; i < 15; i++ ) {            SimpleBody r = new SimpleBody();            elementInstances3dsmax.add(r);        }        setCamera(cam);        //awtRobot = null;        //skipRobot = false;        oldmousex = 0;        oldmousey = 0;        selectedResizing = true;        currentScale = 1.0;        active = false;        lastDeltaPosition = new Vector3D();    }    public int getAparentSizeInPixels()    {        return aparentSizeInPixels;    }    public void setAparentSizeInPixels(int du)    {        aparentSizeInPixels = du;    }    public void setCamera(Camera cam)    {        camera = cam;    }    public Camera getCamera()    {        return camera;    }    public ArrayList<SimpleBody> getElements()    {        return elementInstances;    }    public ArrayList<SimpleBody> getElements3dsmax()    {        int i;        SimpleBody r, o, r2;        Geometry g;        Material red = createMaterial(0.78, 0, 0);        Material green = createMaterial(0, 0.61, 0);        Material blue = createMaterial(0, 0, 0.76);        Matrix4x4 R = new Matrix4x4(T);        R.M[3][0] = 0.0;        R.M[3][1] = 0.0;        R.M[3][2] = 0.0;        R.M[0][3] = 0.0;        R.M[1][3] = 0.0;        R.M[2][3] = 0.0;        R.M[3][3] = 1.0;        Matrix4x4 subR = new Matrix4x4();        Matrix4x4 eleR, eleRi;        Vector3D subP;        Vector3D eleP;        coneModel.setBaseRadius(currentScale*0.05);        coneModel.setHeight(currentScale*0.3*ARROW_LENGHT);        boxModel.setSize(currentScale*(BOX_SIDE+0.025), currentScale*(BOX_SIDE+0.025), currentScale*BOX_HEIGHT);        //-----------------------------------------------------------------        ParametricCurve lineModel;        ParametricCurve segmentModel;        lineModel = GeometricModeler.createLine(0, 0, 0,            0, 0, currentScale*0.7);        segmentModel = GeometricModeler.createLine(0, 0, 0,            0, 0, currentScale*SEGMENT_LENGHT);        //-----------------------------------------------------------------        for ( i = 0; i < elementInstances.size(); i++ ) {            r = elementInstances3dsmax.get(i);            o = elementInstances.get(i);            r.setMaterial(o.getMaterial());             r.setRotation(o.getRotation());            r.setRotationInverse(o.getRotationInverse());            g = o.getGeometry();            if ( g != null && g instanceof Arrow ) {                r.setGeometry(coneModel);                switch ( i ) {                  case 0:                    // Rotation                    subR.axisRotation(Math.toRadians(90.0), 0, 1, 0);                    eleR = R.multiply(subR);                    r.setRotation(eleR);                    eleRi = new Matrix4x4(eleR);                    eleRi.invert();                    r.setRotationInverse(eleRi);                    // Translation                    subP = new Vector3D(0, 0, currentScale*0.7*ARROW_LENGHT);                    eleP = eleR.multiply(subP).add(getPosition());                    r.setPosition(eleP);                    r.setMaterial(red);                     break;                  case 1:                    // Rotation                    subR.axisRotation(Math.toRadians(90.0), -1, 0, 0);                    eleR = R.multiply(subR);                    r.setRotation(eleR);                    eleRi = new Matrix4x4(eleR);                    eleRi.invert();                    r.setRotationInverse(eleRi);                    // Translation                    subP = new Vector3D(0, 0, currentScale*0.7*ARROW_LENGHT);                    eleP = eleR.multiply(subP).add(getPosition());                    r.setPosition(eleP);                    r.setMaterial(green);                     break;                  case 2:                    // Rotation                    subR = new Matrix4x4();                    eleR = R.multiply(subR);                    r.setRotation(eleR);                    eleRi = new Matrix4x4(eleR);                    eleRi.invert();                    r.setRotationInverse(eleRi);                    // Translation                    subP = new Vector3D(0, 0, currentScale*0.7*ARROW_LENGHT);                    eleP = eleR.multiply(subP).add(getPosition());                    r.setPosition(eleP);                    r.setMaterial(blue);                     break;                }                r2 = elementInstances3dsmax.get(i+12);                r2.setMaterial(o.getMaterial());                 r2.setRotation(o.getRotation());                r2.setRotationInverse(o.getRotationInverse());                r2.setPosition(o.getPosition());                r2.setGeometry(lineModel);            }            else if ( g != null && g instanceof Cone ) {                r.setPosition(o.getPosition());                r.setGeometry(segmentModel);            }            else {                r.setPosition(o.getPosition());                r.setGeometry(g);            }        }        return elementInstances3dsmax;    }    private Material createMaterial(double r, double g, double b)    {        Material m = new Material();        m.setAmbient(new ColorRgb(0.2, 0.2, 0.2));        m.setDiffuse(new ColorRgb(r, g, b));        m.setSpecular(new ColorRgb(1, 1, 1));        return m;    }    /**    This method updates the data structure contained in the `elementInstances`    array starting from the given parameters.    - translation is the position of the center of the gizmo    - rotation is the rotation matrix containing the orientation of the gizmo    - if autosize is false, initialdu, initialdv and camera parameters are not      used, and the gizmo doesn't change its current size. If autosize is true,      the gizmo size is changed such as from the current camera, the gizmo      projection fit a 2D area of initialdu * initialdv pixels.    - modelType must be one of the following values: MODEL_FOR_GRAVITY or      MODEL_FOR_DISPLAY. Depending on this value the size of current      geometric elements could change.    */    public void calculateGeometryState(Vector3D translation, Matrix4x4 rotation,                                       boolean autosize, int initialdu,                                       Camera camera)    {        //-----------------------------------------------------------------        int i;        Material red = createMaterial(0.78, 0, 0);        Material green = createMaterial(0, 0.61, 0);        Material blue = createMaterial(0, 0, 0.76);        Material yellow = createMaterial(1, 1, 0);        Material yellowTransparent = createMaterial(1, 1, 0);        yellowTransparent.setOpacity(0.2);        int currentSelection;        if ( volatileSelection == NULL_GROUP ) {            currentSelection = persistentSelection;        }        else {            currentSelection = volatileSelection;        }        Matrix4x4 R = new Matrix4x4(T);        R.M[3][0] = 0.0;        R.M[3][1] = 0.0;        R.M[3][2] = 0.0;        R.M[0][3] = 0.0;        R.M[1][3] = 0.0;        R.M[2][3] = 0.0;        R.M[3][3] = 1.0;        Matrix4x4 subR = new Matrix4x4();        Matrix4x4 eleR, eleRi;        Vector3D subP;        Vector3D eleP;        camera.updateVectors();        if ( selectedResizing ) {            Vector3D a = new Vector3D();            Vector3D b = new Vector3D();            Vector3D p = getPosition();            Vector3D right = camera.getLeft().multiply(-1);            right.normalize();            camera.projectPoint(p, a);            camera.projectPoint(p.add(right), b);            double factor = VSDK.vectorDistance(a, b);            currentScale = ((double)initialdu)/factor;        }        double scale = currentScale;        arrowModel.setBaseLength(scale*0.5*ARROW_LENGHT);        arrowModel.setHeadLength(scale*0.3*ARROW_LENGHT);        arrowModel.setBaseRadius(scale*0.025);        arrowModel.setHeadRadius(scale*0.05);        cylinderModel.setBaseRadius(scale*SEGMENT_WIDTH);        cylinderModel.setTopRadius(scale*SEGMENT_WIDTH);        cylinderModel.setHeight(scale*SEGMENT_LENGHT);        boxModel.setSize(scale*BOX_SIDE, scale*BOX_SIDE, scale*BOX_HEIGHT);        //-----------------------------------------------------------------        Vector3D front = camera.getFront();        Vector3D axisI = new Vector3D(1, 0, 0);        Vector3D axisJ = new Vector3D(0, 1, 0);        Vector3D axisK = new Vector3D(0, 0, 1);        boolean orthogonalCamera;        boolean iPar;        boolean jPar;        boolean kPar;        orthogonalCamera = (camera.getProjectionMode() == camera.PROJECTION_MODE_ORTHOGONAL);        iPar = (Math.abs(front.dotProduct(axisI)) > 1.0-VSDK.EPSILON);        jPar = (Math.abs(front.dotProduct(axisJ)) > 1.0-VSDK.EPSILON);        kPar = (Math.abs(front.dotProduct(axisK)) > 1.0-VSDK.EPSILON);        int index;        for ( i = 0, index = 1;              index <= 12 && i < elementInstances.size();              index++, i++ ) {            SimpleBody r = elementInstances.get(i);            r.setGeometry(null);            switch ( index ) {              case X_AXIS_ELEMENT:                if ( !(orthogonalCamera && iPar) ) {                    // Basic model                    r.setGeometry(arrowModel);                    if ( currentSelection == X_AXIS_GROUP ||                         currentSelection == XY_PLANE_GROUP ||                         currentSelection == XZ_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(red);                    }                    // Rotation                    subR.axisRotation(Math.toRadians(90.0), 0, 1, 0);                    eleR = R.multiply(subR);                    r.setRotation(eleR);                    eleRi = new Matrix4x4(eleR);                    eleRi.invert();                    r.setRotationInverse(eleRi);                    // Translation                    subP = new Vector3D(0, 0, scale*0.2*ARROW_LENGHT);                    eleP = eleR.multiply(subP).add(getPosition());

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久电影| 蜜臀久久久久久久| 国产精品久久久久久久久免费丝袜 | 国产乱码精品一区二区三区av| 美女mm1313爽爽久久久蜜臀| 美日韩一级片在线观看| 蜜桃视频一区二区三区| 免费欧美在线视频| 久久97超碰色| 成人在线视频一区二区| 99免费精品在线| 在线观看亚洲成人| 欧美日韩国产123区| 欧美一区二区视频在线观看2020 | 欧美视频完全免费看| 欧美伦理影视网| 日韩三级高清在线| 久久久久久久综合狠狠综合| 久久久www免费人成精品| 国产精品乱码妇女bbbb| 伊人夜夜躁av伊人久久| 五月天久久比比资源色| 久久不见久久见免费视频7| 国产一区二区网址| 99re在线视频这里只有精品| 欧美浪妇xxxx高跟鞋交| 精品国产乱码久久久久久牛牛| 国产无人区一区二区三区| 一区在线观看免费| 图片区日韩欧美亚洲| 国产自产视频一区二区三区| 成人网男人的天堂| 欧美自拍偷拍午夜视频| 欧美www视频| 国产精品久久久久久久浪潮网站| 亚洲在线中文字幕| 六月丁香婷婷色狠狠久久| 成人激情开心网| 欧美精品乱码久久久久久按摩| 久久奇米777| 亚洲影院免费观看| 国产呦萝稀缺另类资源| 欧美在线视频不卡| 久久久久久久久久久久电影 | 国模娜娜一区二区三区| 99v久久综合狠狠综合久久| 欧美一区二区三区不卡| 国产精品久久久久久亚洲伦 | 色综合久久66| 日韩欧美在线不卡| 亚洲男人天堂av网| 国产一区二区三区蝌蚪| 欧美揉bbbbb揉bbbbb| 国产人成一区二区三区影院| 日韩不卡手机在线v区| 成人精品免费看| 欧美大黄免费观看| 亚洲激情五月婷婷| 国产成人免费视频精品含羞草妖精 | 在线国产电影不卡| 久久精品亚洲精品国产欧美kt∨| 五月激情六月综合| 91在线丨porny丨国产| 日韩精品最新网址| 亚洲一区二区欧美日韩| 成人精品一区二区三区四区| 精品免费视频一区二区| 亚洲国产精品综合小说图片区| 国产高清久久久| 欧美不卡视频一区| 亚洲大片免费看| 色综合久久88色综合天天免费| 久久精品夜色噜噜亚洲aⅴ| 蜜桃av一区二区在线观看| 在线视频你懂得一区二区三区| 国产欧美精品一区| 国产一区二区三区观看| 91麻豆精品国产91久久久资源速度| 亚洲女爱视频在线| 99vv1com这只有精品| 国产婷婷色一区二区三区| 久久国产精品无码网站| 欧美精品aⅴ在线视频| 亚洲高清免费视频| 在线影院国内精品| 亚洲欧美日韩中文播放| av电影天堂一区二区在线| 欧美极品少妇xxxxⅹ高跟鞋| 国产一本一道久久香蕉| 欧美精品一区二区久久久| 六月丁香婷婷久久| 欧美成人video| 毛片不卡一区二区| 日韩午夜激情av| 另类欧美日韩国产在线| 日韩亚洲欧美高清| 青青国产91久久久久久| 欧美一三区三区四区免费在线看| 丝袜国产日韩另类美女| 宅男噜噜噜66一区二区66| 午夜视频在线观看一区二区三区| 欧美日韩精品一区二区三区蜜桃 | 国内精品免费在线观看| 日韩欧美色综合| 蜜臀av在线播放一区二区三区| 欧美一区二区美女| 久久爱另类一区二区小说| 久久青草欧美一区二区三区| 国产乱子伦视频一区二区三区| 国产视频一区二区在线| 成人久久18免费网站麻豆| 亚洲天天做日日做天天谢日日欢| 色综合久久中文综合久久97| 亚洲女同ⅹxx女同tv| 欧美日韩精品二区第二页| 天天亚洲美女在线视频| 91精品国产福利在线观看| 国内成人免费视频| 国产欧美精品区一区二区三区 | 久久精品夜色噜噜亚洲aⅴ| 国产mv日韩mv欧美| 亚洲视频 欧洲视频| 欧美日韩一二三区| 免费成人深夜小野草| 久久久精品影视| 成人动漫中文字幕| 亚洲综合999| 日韩三级伦理片妻子的秘密按摩| 精品一区二区三区在线视频| 亚洲国产精品国自产拍av| 色婷婷综合久久久中文一区二区 | 国产成人亚洲精品青草天美| 国产精品麻豆视频| 欧美日韩色一区| 国内成人精品2018免费看| 日韩毛片高清在线播放| 欧美日韩美少妇| 国产精华液一区二区三区| 国产日韩欧美精品综合| 国产精品乡下勾搭老头1| ...xxx性欧美| 这里是久久伊人| 成人午夜伦理影院| 亚洲电影你懂得| 久久综合狠狠综合| 91首页免费视频| 欧美aaaaaa午夜精品| 成人欧美一区二区三区在线播放| 欧美精选一区二区| 国产91精品欧美| 午夜精品久久久久久久久| 欧美激情一区二区三区四区| 在线成人免费观看| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 亚洲人成网站在线| 精品日韩99亚洲| 在线精品视频一区二区三四| 国产乱妇无码大片在线观看| 亚洲国产视频一区二区| 国产精品天天看| 正在播放亚洲一区| 色综合久久中文综合久久97| 国内精品写真在线观看| 丝袜a∨在线一区二区三区不卡| 国产精品美女久久久久久| 日韩一区二区在线看片| 色婷婷亚洲一区二区三区| 国产一区在线精品| 视频一区欧美日韩| 亚洲精品视频在线观看免费| 国产亚洲精品7777| 欧美一级免费观看| 在线日韩一区二区| 99久久久精品| 国产91精品入口| 韩国v欧美v亚洲v日本v| 日欧美一区二区| 一区二区三区在线免费观看| 国产亚洲精久久久久久| 精品国产亚洲一区二区三区在线观看| 日本精品裸体写真集在线观看 | 久久女同精品一区二区| 欧美一级夜夜爽| 欧美日韩国产电影| 色吊一区二区三区| 91丨九色porny丨蝌蚪| 成人免费视频视频在线观看免费 | 欧美精品自拍偷拍| 色成年激情久久综合| 91免费版在线| 99久久精品免费看| 成人免费av在线| 国产福利精品一区二区| 国产精品一色哟哟哟| 韩国精品久久久| 国内外成人在线视频| av在线播放不卡| 成人免费观看av| www.性欧美| 91视频免费看|