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

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

?? translategizmo.java

?? 基于java的3d開發(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一区二区三区免费野_久草精品视频
一区视频在线播放| 奇米一区二区三区| 日韩欧美国产不卡| 色诱视频网站一区| 国产一区二区看久久| 香蕉影视欧美成人| 亚洲色图丝袜美腿| 欧美激情一区二区三区四区| 91精品国产综合久久久蜜臀粉嫩| 91免费观看视频| 国产成人免费xxxxxxxx| 日韩1区2区3区| 亚洲伊人色欲综合网| 国产欧美精品日韩区二区麻豆天美| 7777精品伊人久久久大香线蕉的 | 欧美日韩美少妇| 99视频热这里只有精品免费| 精品一区二区三区久久久| 午夜婷婷国产麻豆精品| 亚洲精品乱码久久久久久久久| 国产欧美一区二区三区网站| 欧美电视剧免费观看| 欧美日本乱大交xxxxx| 91首页免费视频| 成人18视频在线播放| 欧美区在线观看| 91视视频在线直接观看在线看网页在线看 | 激情小说亚洲一区| 青椒成人免费视频| 亚洲mv大片欧洲mv大片精品| 一区二区免费看| 亚洲精品国产无天堂网2021| 中文字幕在线一区二区三区| 国产农村妇女毛片精品久久麻豆| 国产午夜精品一区二区三区四区 | 亚洲欧美日韩国产成人精品影院| 国产欧美日韩一区二区三区在线观看| 精品国产区一区| 久久综合九色综合97_久久久| 欧美tk—视频vk| 久久久综合九色合综国产精品| 精品国产一区二区三区久久影院 | 国产精品自在在线| 国产一区二区三区在线观看精品| 久久精品国产色蜜蜜麻豆| 久久91精品久久久久久秒播| 美日韩一级片在线观看| 免费成人在线播放| 国模套图日韩精品一区二区 | 欧美放荡的少妇| 欧美一区午夜精品| 日韩免费一区二区| 久久久久久一级片| 国产精品久久久久久久久果冻传媒 | jiyouzz国产精品久久| 91在线精品秘密一区二区| 91理论电影在线观看| 欧美在线视频不卡| 9191久久久久久久久久久| 欧美变态凌虐bdsm| 国产午夜精品一区二区三区四区| 国产精品国产馆在线真实露脸| 一区二区三区四区亚洲| 日产国产欧美视频一区精品| 捆绑紧缚一区二区三区视频| 国产一区二区导航在线播放| 不卡av在线免费观看| 欧美午夜一区二区三区| 欧美剧在线免费观看网站 | 欧美色国产精品| 精品国产乱码久久久久久图片| 国产婷婷色一区二区三区在线| 亚洲欧美一区二区三区国产精品| 日韩av中文字幕一区二区三区| 国产资源精品在线观看| 色综合久久中文综合久久97| 欧美裸体bbwbbwbbw| 久久精品免视看| 亚洲亚洲人成综合网络| 狠狠色丁香久久婷婷综合_中| 99精品黄色片免费大全| 日韩午夜三级在线| 亚洲欧洲日本在线| 蜜桃视频一区二区三区| av午夜精品一区二区三区| 91精品国产一区二区三区| 中文av一区特黄| 日韩电影网1区2区| 91丨九色丨蝌蚪富婆spa| 日韩欧美久久久| 亚洲一区二区三区中文字幕在线| 国产一区二区免费在线| 欧美片在线播放| 国产精品家庭影院| 加勒比av一区二区| 欧美日韩亚州综合| **性色生活片久久毛片| 国产精品一二一区| 91精品婷婷国产综合久久| 亚洲精品综合在线| 国产成人免费视频网站| 精品三级在线看| 亚洲va欧美va天堂v国产综合| 成人高清在线视频| 精品粉嫩aⅴ一区二区三区四区| 亚洲观看高清完整版在线观看| 国产福利一区二区三区视频在线| 欧美精品123区| 亚洲一区二区中文在线| 97超碰欧美中文字幕| 久久久精品综合| 老司机午夜精品| 欧美一区二区三区在线观看视频| 一区二区三区在线视频观看| 国产白丝精品91爽爽久久| 精品国产污污免费网站入口 | 日本欧美一区二区三区乱码| 91福利在线导航| 最新不卡av在线| www.日韩精品| 国产欧美日韩卡一| 激情成人午夜视频| 日韩片之四级片| 日本aⅴ免费视频一区二区三区| 欧美日韩mp4| 亚洲成a人v欧美综合天堂下载| 色视频欧美一区二区三区| 中文字幕欧美一| 99视频一区二区| 精品乱人伦一区二区三区| 丝袜美腿成人在线| 欧美人伦禁忌dvd放荡欲情| 亚洲综合网站在线观看| 欧洲av一区二区嗯嗯嗯啊| 一二三区精品福利视频| 欧美少妇一区二区| 亚洲成人第一页| 这里只有精品电影| 另类小说图片综合网| 亚洲精品一区二区三区影院| 国产一区欧美日韩| 国产三区在线成人av| 成人v精品蜜桃久久一区| 综合色中文字幕| 91传媒视频在线播放| 天堂精品中文字幕在线| 日韩一区二区在线观看视频播放| 久久精品免费观看| 国产欧美日韩精品一区| 97se亚洲国产综合自在线不卡 | 久久婷婷久久一区二区三区| 国产一区二区导航在线播放| 国产精品乱码久久久久久| 日本精品一区二区三区高清| 亚洲成人在线网站| 日韩亚洲欧美成人一区| 国产成人av一区| 综合分类小说区另类春色亚洲小说欧美| 97精品久久久午夜一区二区三区| 亚洲一区二区三区激情| 精品久久五月天| caoporen国产精品视频| 亚洲国产精品久久人人爱| 日韩一级大片在线观看| 国产成人精品1024| 一区二区三区欧美激情| 日韩欧美中文字幕制服| 成人午夜视频免费看| 亚洲一卡二卡三卡四卡无卡久久| 日韩片之四级片| 99精品一区二区| 麻豆免费精品视频| 中文字幕一区在线观看视频| 欧美一区二区三区色| 成人国产精品免费观看视频| 亚洲国产日韩一级| 久久久久久久久99精品| 欧美优质美女网站| 国产一区二区三区在线观看免费| 亚洲欧洲综合另类| 欧美精品一区二区三区四区 | 色欧美乱欧美15图片| 日本不卡一区二区三区| 国产精品久久精品日日| 91精品黄色片免费大全| 91亚洲永久精品| 欧美日韩高清一区| 成人一区在线看| 热久久免费视频| 一区二区三区在线看| 国产亚洲一区二区三区在线观看| 欧美三级韩国三级日本三斤| 国产高清一区日本| 日韩国产在线观看| 成人欧美一区二区三区1314| 久久综合色一综合色88| 欧美日韩在线综合| 97久久久精品综合88久久| 国产剧情一区二区三区| 裸体在线国模精品偷拍|