⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 translategizmo.java

📁 基于java的3d开发库。对坐java3d的朋友有很大的帮助。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    r.setPosition(eleP);                }                break;              case Y_AXIS_ELEMENT:                  if ( !(orthogonalCamera && jPar) ) {                    // Basic model                    r.setGeometry(arrowModel);                    if ( currentSelection == Y_AXIS_GROUP ||                         currentSelection == XY_PLANE_GROUP ||                         currentSelection == YZ_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(green);                    }                    // 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, scale*0.2*ARROW_LENGHT);                    eleP = eleR.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case Z_AXIS_ELEMENT:                if ( !(orthogonalCamera && kPar) ) {                    // Basic model                    r.setGeometry(arrowModel);                    if ( currentSelection == Z_AXIS_GROUP ||                         currentSelection == YZ_PLANE_GROUP ||                         currentSelection == XZ_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(blue);                    }                    // 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, scale*0.2*ARROW_LENGHT);                    eleP = eleR.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case XYY_SEGMENT_ELEMENT:                if ( !(orthogonalCamera && (iPar || jPar)) ) {                    // Basic model                    r.setGeometry(cylinderModel);                    if ( currentSelection == XY_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(green);                    }                    // Rotation                    subR = new Matrix4x4();                    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, scale*SEGMENT_LENGHT, 0);                    eleP = eleR.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case XYX_SEGMENT_ELEMENT:                if ( !(orthogonalCamera && (iPar || jPar)) ) {                    // Basic model                    r.setGeometry(cylinderModel);                    if ( currentSelection == XY_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(red);                    }                    // Rotation                    subR = new Matrix4x4();                    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(scale*SEGMENT_LENGHT, 0, 0);                    eleP = eleR.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case YZZ_SEGMENT_ELEMENT:                // Basic model                if ( !(orthogonalCamera && (jPar || kPar)) ) {                    r.setGeometry(cylinderModel);                    if ( currentSelection == YZ_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(blue);                    }                    // Rotation                    subR = new Matrix4x4();                    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, scale*SEGMENT_LENGHT);                    eleP = R.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case YZY_SEGMENT_ELEMENT:                if ( !(orthogonalCamera && (jPar || kPar)) ) {                    // Basic model                    r.setGeometry(cylinderModel);                    if ( currentSelection == YZ_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(green);                    }                    // 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, scale*SEGMENT_LENGHT, 0);                    eleP = R.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case XZZ_SEGMENT_ELEMENT:                if ( !(orthogonalCamera && (iPar || kPar)) ) {                    // Basic model                    r.setGeometry(cylinderModel);                    if ( currentSelection == XZ_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(blue);                    }                    // Rotation                    subR = new Matrix4x4();                    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*SEGMENT_LENGHT);                    eleP = R.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case XZX_SEGMENT_ELEMENT:                if ( !(orthogonalCamera && (iPar || kPar)) ) {                    // Basic model                    r.setGeometry(cylinderModel);                    if ( currentSelection == XZ_PLANE_GROUP ) {                        r.setMaterial(yellow);                     }                    else {                        r.setMaterial(red);                    }                    // Rotation                    subR = new Matrix4x4();                    eleR = R.multiply(subR);                    r.setRotation(eleR);                    eleRi = new Matrix4x4(eleR);                    eleRi.invert();                    r.setRotationInverse(eleRi);                    // Translation                    subP = new Vector3D(scale*SEGMENT_LENGHT, 0, 0);                    eleP = R.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case XY_BOX_ELEMENT:                if ( !(orthogonalCamera && (iPar || jPar)) ) {                    // Basic model                    r.setGeometry(null);                    if ( currentSelection != XY_PLANE_GROUP ) {                        break;                    }                    r.setGeometry(boxModel);                    r.setMaterial(yellowTransparent);                     // Rotation                    subR = new Matrix4x4();                    eleR = R.multiply(subR);                    r.setRotation(eleR);                    eleRi = new Matrix4x4(eleR);                    eleRi.invert();                    r.setRotationInverse(eleRi);                    // Translation                    subP = new Vector3D(scale*BOX_SIDE/2, scale*BOX_SIDE/2, 0);                    eleP = R.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case YZ_BOX_ELEMENT:                if ( !(orthogonalCamera && (jPar || kPar)) ) {                    // Basic model                    r.setGeometry(null);                    if ( currentSelection != YZ_PLANE_GROUP ) {                        break;                    }                    r.setGeometry(boxModel);                    r.setMaterial(yellowTransparent);                     // Rotation                    subR = new Matrix4x4();                    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, scale*BOX_SIDE/2, scale*BOX_SIDE/2);                    eleP = R.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;              case XZ_BOX_ELEMENT:                if ( !(orthogonalCamera && (iPar || kPar)) ) {                    // Basic model                    r.setGeometry(null);                    if ( currentSelection != XZ_PLANE_GROUP ) {                        break;                    }                    r.setGeometry(boxModel);                    r.setMaterial(yellowTransparent);                     // Rotation                    subR = new Matrix4x4();                    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(scale*BOX_SIDE/2, 0, scale*BOX_SIDE/2);                    eleP = R.multiply(subP).add(getPosition());                    r.setPosition(eleP);                }                break;            }        }    }    public Vector3D getPosition()    {        Vector3D p = new Vector3D(T.M[0][3], T.M[1][3], T.M[2][3]);        return p;    }    public void setPosition(Vector3D p)    {        T.M[0][3] = p.x;        T.M[1][3] = p.y;        T.M[2][3] = p.z;    }    public void setTransformationMatrix(Matrix4x4 T)    {        this.T = T;        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;        calculateGeometryState(getPosition(),                                R, selectedResizing, aparentSizeInPixels,                               camera);    }    public Matrix4x4 getTransformationMatrix()    {        return T;    }    public boolean processMouseEventAwt(MouseEvent mouseEvent)    {        oldmousex = mouseEvent.getX();        oldmousey = mouseEvent.getY();        return false;    }    public boolean processKeyPressedEventAwt(KeyEvent keyEvent)    {        char unicode_id;        int keycode;        double deltaMov = 0.1;        boolean updateNeeded = false;        unicode_id = keyEvent.getKeyChar();        keycode = keyEvent.getKeyCode();        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;        selectedResizing = true;        calculateGeometryState(new Vector3D(T.M[0][3], T.M[1][3], T.M[2][3]),                                R, selectedResizing, aparentSizeInPixels,                                camera);        if ( unicode_id != keyEvent.CHAR_UNDEFINED ) {            switch ( unicode_id ) {              // Position              case 'x':                T.M[0][3] -= deltaMov;                updateNeeded = true;                break;              case 'X':                T.M[0][3] += deltaMov;                updateNeeded = true;                break;              case 'y':                T.M[1][3] -= deltaMov;                updateNeeded = true;                break;              case 'Y':                T.M[1][3] += deltaMov;                updateNeeded = true;                break;              case 'z':                T.M[2][3] -= deltaMov;                updateNeeded = true;                break;              case 'Z':                T.M[2][3] += deltaMov;                updateNeeded = true;                break;             }        }        return updateNeeded;    }    public boolean processKeyReleasedEventAwt(KeyEvent keyEvent)    {        return false;    }    public boolean processMousePressedEventAwt(MouseEvent e)    {        lastDeltaPosition = new Vector3D();        //lastDeltaPosition = calculateDeltaPosition(mouseEvent);        //Vector3D p = calculateInteractionPosition(e); // Not working!        //* HOW TO REFACTOR FROM HERE *************************************        //- Configure sub-interaction technique from active element -------        int currentSelection;        if ( volatileSelection == NULL_GROUP ) {            currentSelection = persistentSelection;        }        else {            currentSelection = volatileSelection;        }        Vector3D v = null;        int interactionTechnique = 0;        switch ( currentSelection ) {          case X_AXIS_GROUP:             v = new Vector3D(1, 0, 0);            interactionTechnique = 1; // Vector            break;          case Y_AXIS_GROUP:             v = new Vector3D(0, 1, 0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -