コード例 #1
0
ファイル: PmdIK.java プロジェクト: olamedia/jogltest
  private void limitAngle(MmdVector4 pvec4Out, MmdVector4 pvec4Src) {
    final MmdVector3 vec3Angle = this._work_vector3[0];

    // XYZ軸回転の取得
    vec3Angle.QuaternionToEuler(pvec4Src);

    // 角度制限
    if (vec3Angle.x < -Math.PI) {
      vec3Angle.x = (float) -Math.PI;
    }
    if (-0.002f < vec3Angle.x) {
      vec3Angle.x = -0.002f;
    }
    vec3Angle.y = 0.0f;
    vec3Angle.z = 0.0f;

    // XYZ軸回転からクォータニオンへ
    pvec4Out.QuaternionCreateEuler(vec3Angle);
    return;
  }