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

📄 rotategizmo.java

📁 基于java的3d开发库。对坐java3d的朋友有很大的帮助。
💻 JAVA
字号:
//===========================================================================//=-------------------------------------------------------------------------=//= Module history:                                                         =//= - March 16 2006 - Oscar Chavarro: Original base version                 =//===========================================================================package vsdk.toolkit.gui;import java.awt.event.MouseEvent;import java.awt.event.MouseWheelEvent;import java.awt.event.KeyEvent;import vsdk.toolkit.common.Matrix4x4;import vsdk.toolkit.common.Vector3D;public class RotateGizmo extends Gizmo {  private Matrix4x4 T;  public void setTransformationMatrix(Matrix4x4 T)  {      this.T = T;  }  public Matrix4x4 getTransformationMatrix()  {      return T;  }  public boolean processMouseEventAwt(MouseEvent mouseEvent)  {      return false;  }  public boolean processKeyPressedEventAwt(KeyEvent keyEvent)  {      char unicode_id;      int keycode;      double deltaMov = Math.toRadians(1.0);      boolean updateNeeded = false;      unicode_id = keyEvent.getKeyChar();      keycode = keyEvent.getKeyCode();      Matrix4x4 delta;      Vector3D up, front, left;      delta = new Matrix4x4();      //up = new Vector3D(T.M[0][2], T.M[1][2], T.M[2][2]);      up = new Vector3D(0, 0, 1);      up.normalize();      //front = new Vector3D(T.M[0][0], T.M[1][0], T.M[2][0]);      front = new Vector3D(0, 1, 0);      front.normalize();      //left = new Vector3D(T.M[0][1], T.M[1][1], T.M[2][1]);      left = new Vector3D(1, 0, 0);      left.normalize();      if ( unicode_id != keyEvent.CHAR_UNDEFINED ) {            switch ( unicode_id ) {              // Position              case 'x':                delta.axisRotation(-deltaMov, left.x, left.y, left.z);                updateNeeded = true;                break;              case 'X':                delta.axisRotation(deltaMov, left.x, left.y, left.z);                updateNeeded = true;                break;              case 'y':                delta.axisRotation(-deltaMov, front.x, front.y, front.z);                updateNeeded = true;                break;              case 'Y':                delta.axisRotation(deltaMov, front.x, front.y, front.z);                updateNeeded = true;                break;              case 'z':                delta.axisRotation(-deltaMov, up.x, up.y, up.z);                updateNeeded = true;                break;              case 'Z':                delta.axisRotation(deltaMov, up.x, up.y, up.z);                updateNeeded = true;                break;             }      }      T = T.multiply(delta);      return updateNeeded;  }  public boolean processKeyReleasedEventAwt(KeyEvent mouseEvent)  {      return false;  }  public boolean processMousePressedEventAwt(MouseEvent e)  {      return false;  }  public boolean processMouseReleasedEventAwt(MouseEvent e)  {      return false;  }  public boolean processMouseClickedEventAwt(MouseEvent e)  {      return false;  }  public boolean processMouseMovedEventAwt(MouseEvent e)  {      return false;  }  public boolean processMouseDraggedEventAwt(MouseEvent e)  {      return false;  }  public boolean processMouseWheelEventAwt(MouseWheelEvent e)  {      return false;  }}//===========================================================================//= EOF                                                                     =//===========================================================================

⌨️ 快捷键说明

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