// Token: 0x060019A4 RID: 6564 RVA: 0x000E85F7 File Offset: 0x000E67F7 public static void VEC4_COPY(ref NNS_QUATERNION d_vec, ref SNNS_VECTOR4D s_vec) { d_vec.x = s_vec.x; d_vec.y = s_vec.y; d_vec.z = s_vec.z; d_vec.w = s_vec.w; }
// Token: 0x06000F64 RID: 3940 RVA: 0x0008825C File Offset: 0x0008645C public static void amQuatMultiVector(NNS_VECTOR4D pDst, NNS_VECTOR4D pSrc, ref NNS_QUATERNION pQuat, NNS_VECTOR4D pVec) { NNS_QUATERNION nns_QUATERNION = default(NNS_QUATERNION); NNS_QUATERNION nns_QUATERNION2 = default(NNS_QUATERNION); NNS_QUATERNION nns_QUATERNION3 = default(NNS_QUATERNION); NNS_QUATERNION nns_QUATERNION4 = default(NNS_QUATERNION); AppMain.VEC4_COPY(ref nns_QUATERNION4, pSrc); nns_QUATERNION2.x = -pQuat.x; nns_QUATERNION2.y = -pQuat.y; nns_QUATERNION2.z = -pQuat.z; nns_QUATERNION2.w = pQuat.w; AppMain.nnMultiplyQuaternion(ref nns_QUATERNION3, ref pQuat, ref nns_QUATERNION4); AppMain.nnMultiplyQuaternion(ref nns_QUATERNION, ref nns_QUATERNION3, ref nns_QUATERNION2); if (pVec == null) { AppMain.VEC4_COPY(pDst, ref nns_QUATERNION); return; } NNS_VECTOR4D nns_VECTOR4D = GlobalPool <NNS_VECTOR4D> .Alloc(); NNS_VECTOR4D nns_VECTOR4D2 = GlobalPool <NNS_VECTOR4D> .Alloc(); AppMain.VEC4_COPY(nns_VECTOR4D, ref nns_QUATERNION); AppMain.VEC4_COPY(nns_VECTOR4D2, pVec); AppMain.amVectorAdd(pDst, nns_VECTOR4D, nns_VECTOR4D2); GlobalPool <NNS_VECTOR4D> .Release(nns_VECTOR4D); GlobalPool <NNS_VECTOR4D> .Release(nns_VECTOR4D2); }
// Token: 0x06000F68 RID: 3944 RVA: 0x0008849F File Offset: 0x0008669F public static void amQuatSet(ref NNS_QUATERNION pDst, float x, float y, float z, float w) { pDst.x = x; pDst.y = y; pDst.z = z; pDst.w = w; }
// Token: 0x06000F66 RID: 3942 RVA: 0x000883D8 File Offset: 0x000865D8 public static void amQuatMultiVector(ref SNNS_VECTOR4D pDst, ref SNNS_VECTOR4D pSrc, ref NNS_QUATERNION pQuat, NNS_VECTOR4D pVec) { NNS_QUATERNION nns_QUATERNION = default(NNS_QUATERNION); NNS_QUATERNION nns_QUATERNION2 = default(NNS_QUATERNION); NNS_QUATERNION nns_QUATERNION3 = default(NNS_QUATERNION); NNS_QUATERNION nns_QUATERNION4 = default(NNS_QUATERNION); AppMain.VEC4_COPY(ref nns_QUATERNION4, ref pSrc); nns_QUATERNION2.x = -pQuat.x; nns_QUATERNION2.y = -pQuat.y; nns_QUATERNION2.z = -pQuat.z; nns_QUATERNION2.w = pQuat.w; AppMain.nnMultiplyQuaternion(ref nns_QUATERNION3, ref pQuat, ref nns_QUATERNION4); AppMain.nnMultiplyQuaternion(ref nns_QUATERNION, ref nns_QUATERNION3, ref nns_QUATERNION2); if (pVec == null) { AppMain.VEC4_COPY(ref pDst, ref nns_QUATERNION); return; } SNNS_VECTOR4D snns_VECTOR4D = default(SNNS_VECTOR4D); SNNS_VECTOR4D snns_VECTOR4D2 = default(SNNS_VECTOR4D); AppMain.VEC4_COPY(ref snns_VECTOR4D, ref nns_QUATERNION); AppMain.VEC4_COPY(ref snns_VECTOR4D2, pVec); AppMain.amVectorAdd(ref pDst, ref snns_VECTOR4D, ref snns_VECTOR4D2); }
// Token: 0x06000F5D RID: 3933 RVA: 0x0008803C File Offset: 0x0008623C public void amQuatVectorToQuat(ref NNS_QUATERNION pQuat, NNS_VECTOR4D pV1, NNS_VECTOR4D pV2) { NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc(); NNS_VECTOR nns_VECTOR2 = GlobalPool <NNS_VECTOR> .Alloc(); NNS_VECTOR nns_VECTOR3 = GlobalPool <NNS_VECTOR> .Alloc(); NNS_VECTOR nns_VECTOR4 = GlobalPool <NNS_VECTOR> .Alloc(); AppMain.VEC3_COPY(nns_VECTOR, pV1); AppMain.VEC3_COPY(nns_VECTOR2, pV2); AppMain.nnAddVector(nns_VECTOR4, nns_VECTOR, nns_VECTOR2); float num = AppMain.nnDotProductVector(nns_VECTOR4, nns_VECTOR4); num = ( float )(1.0 / Math.Sqrt(( double )num)); AppMain.nnScaleVector(nns_VECTOR2, nns_VECTOR4, num); AppMain.nnCrossProductVector(nns_VECTOR3, nns_VECTOR, nns_VECTOR2); AppMain.VEC3_COPY(pQuat, nns_VECTOR3); pQuat.w = AppMain.nnDotProductVector(nns_VECTOR, nns_VECTOR2); GlobalPool <NNS_VECTOR> .Release(nns_VECTOR); GlobalPool <NNS_VECTOR> .Release(nns_VECTOR2); GlobalPool <NNS_VECTOR> .Release(nns_VECTOR3); GlobalPool <NNS_VECTOR> .Release(nns_VECTOR4); }
// Token: 0x0600199C RID: 6556 RVA: 0x000E847D File Offset: 0x000E667D public static void VEC3_COPY(NNS_QUATERNION d_vec, NNS_VECTOR s_vec) { d_vec.x = s_vec.x; d_vec.y = s_vec.y; d_vec.z = s_vec.z; d_vec.z = 0f; }
// Token: 0x06000F6B RID: 3947 RVA: 0x000884D8 File Offset: 0x000866D8 public static void amQuatUnitLerp(ref NNS_QUATERNION pDst, ref NNS_QUATERNION pQ1, ref NNS_QUATERNION pQ2, float per) { NNS_QUATERNION nns_QUATERNION = default(NNS_QUATERNION); AppMain.amQuatLerp(ref nns_QUATERNION, ref pQ1, ref pQ2, per); AppMain.nnNormalizeQuaternion(ref pDst, ref nns_QUATERNION); }
// Token: 0x06001E9E RID: 7838 RVA: 0x0013AC5A File Offset: 0x00138E5A public void Assign(NNS_QUATERNION q) { this.x = q.x; this.y = q.y; this.z = q.z; this.w = q.w; }
// Token: 0x06000F62 RID: 3938 RVA: 0x000881EC File Offset: 0x000863EC public static void amQuatMultiMatrix(ref NNS_QUATERNION pQuat, ref SNNS_VECTOR pVec) { NNS_MATRIX nns_MATRIX = AppMain.amMatrixGetCurrent(); AppMain.nnMakeQuaternionMatrix(out AppMain.tempSNNS_MATRIX0, ref pQuat); AppMain.nnCopyVectorMatrixTranslation(ref AppMain.tempSNNS_MATRIX0, ref pVec); AppMain.nnMultiplyMatrix(nns_MATRIX, nns_MATRIX, ref AppMain.tempSNNS_MATRIX0); }
// Token: 0x06000F5C RID: 3932 RVA: 0x00088008 File Offset: 0x00086208 public void amQuatToEulerXYZ(out int ax, out int ay, out int az, ref NNS_QUATERNION pQuat) { float n; float n2; float n3; this.amQuatToEulerXYZ(out n, out n2, out n3, ref pQuat); ax = AppMain.NNM_RADtoA32(n); ay = AppMain.NNM_RADtoA32(n2); az = AppMain.NNM_RADtoA32(n3); }
// Token: 0x06000F5E RID: 3934 RVA: 0x000880D8 File Offset: 0x000862D8 public static void amQuatRotAxisToQuat(ref NNS_QUATERNION pQuat, NNS_VECTOR4D pVec, float radian) { radian *= 0.5f; float num; float w; AppMain.amSinCos(radian, out num, out w); pQuat.x = pVec.x * num; pQuat.y = pVec.y * num; pQuat.z = pVec.z * num; pQuat.w = w; }
// Token: 0x06000F5B RID: 3931 RVA: 0x00087E30 File Offset: 0x00086030 public void amQuatToEulerXYZ(out float rx, out float ry, out float rz, ref NNS_QUATERNION pQuat) { rx = (ry = (rz = 0f)); NNS_QUATERNION nns_QUATERNION = default(NNS_QUATERNION); AppMain.amQuatUnit(ref nns_QUATERNION, ref pQuat); float num = nns_QUATERNION.x * nns_QUATERNION.x; float num2 = nns_QUATERNION.x * nns_QUATERNION.y; float num3 = nns_QUATERNION.x * nns_QUATERNION.z; float num4 = nns_QUATERNION.x * nns_QUATERNION.w; float num5 = nns_QUATERNION.y * nns_QUATERNION.y; float num6 = nns_QUATERNION.y * nns_QUATERNION.z; float num7 = nns_QUATERNION.y * nns_QUATERNION.w; float num8 = nns_QUATERNION.z * nns_QUATERNION.z; float num9 = nns_QUATERNION.z * nns_QUATERNION.w; float num10 = 1f - 2f * (num5 + num8); float num11 = 2f * (num2 + num9); float num12 = 2f * (num3 - num7); float num13 = 1f - AppMain.amPow2(num12); ry = ( float )Math.Atan2(( double )(-( double )num12), (num13 > 0f) ? Math.Sqrt(( double )num13) : 0.0); num13 = ( float )Math.Sqrt(( double )(AppMain.amPow2(num10) + AppMain.amPow2(num11))); float num14; float num15; if (AppMain.amIsZerof(num13)) { num14 = 0f; num15 = 1f; } else { num14 = num11 / num13; num15 = num10 / num13; } float num16 = 2f * (num2 - num9); float num17 = 2f * (num3 + num7); float num18 = 1f - 2f * (num + num8); float num19 = 2f * (num6 - num4); float num20 = num17 * num14 - num19 * num15; float num21 = num18 * num15 - num16 * num14; rx = ( float )Math.Atan2(( double )num20, ( double )num21); rz = ( float )Math.Atan2(( double )num14, ( double )num15); }
// Token: 0x06000F5F RID: 3935 RVA: 0x0008812C File Offset: 0x0008632C public static void amQuatToMatrix(NNS_MATRIX pMtx, ref NNS_QUATERNION pQuat, NNS_VECTOR4D pVec) { if (pMtx == null) { NNS_MATRIX dst = AppMain.amMatrixGetCurrent(); AppMain.nnMakeQuaternionMatrix(out AppMain.tempSNNS_MATRIX0, ref pQuat); if (pVec != null) { AppMain.nnCopyVectorMatrixTranslation(ref AppMain.tempSNNS_MATRIX0, pVec); } AppMain.nnCopyMatrix(dst, ref AppMain.tempSNNS_MATRIX0); return; } AppMain.nnMakeQuaternionMatrix(pMtx, ref pQuat); if (pVec != null) { AppMain.nnCopyVectorMatrixTranslation(ref AppMain.tempSNNS_MATRIX0, pVec); } }
// Token: 0x06000F6E RID: 3950 RVA: 0x00088514 File Offset: 0x00086714 public static void amQuatEulerToQuatXYZ(ref NNS_QUATERNION pQuat, NNS_VECTOR4D pRot) { AppMain.nnMakeRotateXYZQuaternion(out pQuat, AppMain.NNM_RADtoA32(pRot.x), AppMain.NNM_RADtoA32(pRot.y), AppMain.NNM_RADtoA32(pRot.z)); }
// Token: 0x06000F67 RID: 3943 RVA: 0x00088490 File Offset: 0x00086690 public static void amQuatRotAxisToQuat(ref NNS_QUATERNION pQuat, NNS_VECTOR4D pVec, int angle) { AppMain.amQuatRotAxisToQuat(ref pQuat, pVec, AppMain.NNM_A32toRAD(angle)); }
// Token: 0x06000F75 RID: 3957 RVA: 0x0008859B File Offset: 0x0008679B public static void amQuatCopy(ref NNS_QUATERNION pDst, ref NNS_QUATERNION pSrc) { AppMain.nnCopyQuaternion(ref pDst, ref pSrc); }
// Token: 0x06000F76 RID: 3958 RVA: 0x000885A4 File Offset: 0x000867A4 public static void amQuatInit(ref NNS_QUATERNION pQuat) { AppMain.nnMakeUnitQuaternion(ref pQuat); }
// Token: 0x06000F73 RID: 3955 RVA: 0x00088587 File Offset: 0x00086787 public static void amQuatUnit(ref NNS_QUATERNION pDst, ref NNS_QUATERNION pSrc) { AppMain.nnNormalizeQuaternion(ref pDst, ref pSrc); }
// Token: 0x06000F74 RID: 3956 RVA: 0x00088591 File Offset: 0x00086791 public static void amQuatInverse(ref NNS_QUATERNION pDst, ref NNS_QUATERNION pSrc) { AppMain.nnInvertQuaternion(ref pDst, ref pSrc); }
// Token: 0x06000F71 RID: 3953 RVA: 0x00088562 File Offset: 0x00086762 public static void amQuatMakeRotateAxis(ref NNS_QUATERNION pDst, NNS_VECTOR pV, int ang) { AppMain.nnMakeRotateAxisQuaternion(out pDst, pV.x, pV.y, pV.z, ang); }
// Token: 0x06000F72 RID: 3954 RVA: 0x0008857D File Offset: 0x0008677D public static void amQuatMulti(ref NNS_QUATERNION pDst, ref NNS_QUATERNION pQ1, ref NNS_QUATERNION pQ2) { AppMain.nnMultiplyQuaternion(ref pDst, ref pQ1, ref pQ2); }
// Token: 0x06000F70 RID: 3952 RVA: 0x00088557 File Offset: 0x00086757 public static void amQuatEulerToQuatXYZ(ref NNS_QUATERNION pQuat, int ax, int ay, int az) { AppMain.nnMakeRotateXYZQuaternion(out pQuat, ax, ay, az); }
// Token: 0x06000F6F RID: 3951 RVA: 0x0008853D File Offset: 0x0008673D public static void amQuatEulerToQuatXYZ(ref NNS_QUATERNION pQuat, float rx, float ry, float rz) { AppMain.nnMakeRotateXYZQuaternion(out pQuat, AppMain.NNM_RADtoA32(rx), AppMain.NNM_RADtoA32(ry), AppMain.NNM_RADtoA32(rz)); }
// Token: 0x06000F69 RID: 3945 RVA: 0x000884BE File Offset: 0x000866BE public static void amQuatSquad(ref NNS_QUATERNION pDst, ref NNS_QUATERNION pQ1, ref NNS_QUATERNION pQ2, ref NNS_QUATERNION pQ3, ref NNS_QUATERNION pQ4, float t) { AppMain.nnSquadQuaternion(ref pDst, ref pQ1, ref pQ2, ref pQ3, ref pQ4, t); }
// Token: 0x06000F6D RID: 3949 RVA: 0x0008850B File Offset: 0x0008670B public static void amQuatMatrixToQuat(ref NNS_QUATERNION pQuat, NNS_MATRIX pMtx) { AppMain.nnMakeRotateMatrixQuaternion(out pQuat, pMtx); }
// Token: 0x06000F6C RID: 3948 RVA: 0x00088500 File Offset: 0x00086700 public static void amQuatLerp(ref NNS_QUATERNION pDst, ref NNS_QUATERNION pQ1, ref NNS_QUATERNION pQ2, float per) { AppMain.nnLerpQuaternion(ref pDst, ref pQ1, ref pQ2, per); }