using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;
using UnityEngine;

namespace RootMotion
{
	// Token: 0x020003AE RID: 942
	public static class QuaTools : Il2CppSystem.Object
	{
		// Token: 0x060075B2 RID: 30130 RVA: 0x001E0E04 File Offset: 0x001DF004
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 591015, RefRangeEnd = 591018, XrefRangeStart = 591014, XrefRangeEnd = 591015, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion Lerp(Quaternion fromRotation, Quaternion toRotation, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fromRotation;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref toRotation;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_Lerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075B3 RID: 30131 RVA: 0x001E0E80 File Offset: 0x001DF080
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591018, XrefRangeEnd = 591019, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion Slerp(Quaternion fromRotation, Quaternion toRotation, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fromRotation;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref toRotation;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_Slerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075B4 RID: 30132 RVA: 0x001E0EFC File Offset: 0x001DF0FC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591019, XrefRangeEnd = 591022, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion LinearBlend(Quaternion q, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref q;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_LinearBlend_Public_Static_Quaternion_Quaternion_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075B5 RID: 30133 RVA: 0x001E0F64 File Offset: 0x001DF164
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591022, XrefRangeEnd = 591025, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion SphericalBlend(Quaternion q, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref q;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_SphericalBlend_Public_Static_Quaternion_Quaternion_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075B6 RID: 30134 RVA: 0x001E0FCC File Offset: 0x001DF1CC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 591029, RefRangeEnd = 591030, XrefRangeStart = 591025, XrefRangeEnd = 591029, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion FromToAroundAxis(Vector3 fromDirection, Vector3 toDirection, Vector3 axis)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fromDirection;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref toDirection;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref axis;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_FromToAroundAxis_Public_Static_Quaternion_Vector3_Vector3_Vector3_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075B7 RID: 30135 RVA: 0x001E1048 File Offset: 0x001DF248
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 591033, RefRangeEnd = 591035, XrefRangeStart = 591030, XrefRangeEnd = 591033, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion RotationToLocalSpace(Quaternion space, Quaternion rotation)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref space;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref rotation;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_RotationToLocalSpace_Public_Static_Quaternion_Quaternion_Quaternion_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075B8 RID: 30136 RVA: 0x001E10B0 File Offset: 0x001DF2B0
		[CallerCount(17)]
		[CachedScanResults(RefRangeStart = 591040, RefRangeEnd = 591057, XrefRangeStart = 591035, XrefRangeEnd = 591040, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion FromToRotation(Quaternion from, Quaternion to)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref from;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref to;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_FromToRotation_Public_Static_Quaternion_Quaternion_Quaternion_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075B9 RID: 30137 RVA: 0x001E1118 File Offset: 0x001DF318
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 591063, RefRangeEnd = 591065, XrefRangeStart = 591057, XrefRangeEnd = 591063, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 GetAxis(Vector3 v)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref v;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_GetAxis_Public_Static_Vector3_Vector3_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x060075BA RID: 30138 RVA: 0x001E116C File Offset: 0x001DF36C
		[CallerCount(5)]
		[CachedScanResults(RefRangeStart = 591076, RefRangeEnd = 591081, XrefRangeStart = 591065, XrefRangeEnd = 591076, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion ClampRotation(Quaternion rotation, float clampWeight, int clampSmoothing)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref rotation;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampWeight;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampSmoothing;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_ClampRotation_Public_Static_Quaternion_Quaternion_Single_Int32_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075BB RID: 30139 RVA: 0x001E11E8 File Offset: 0x001DF3E8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591081, XrefRangeEnd = 591085, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static float ClampAngle(float angle, float clampWeight, int clampSmoothing)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref angle;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampWeight;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampSmoothing;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_ClampAngle_Public_Static_Single_Single_Single_Int32_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075BC RID: 30140 RVA: 0x001E1264 File Offset: 0x001DF464
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591085, XrefRangeEnd = 591090, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Quaternion MatchRotation(Quaternion targetRotation, Vector3 targetforwardAxis, Vector3 targetUpAxis, Vector3 forwardAxis, Vector3 upAxis)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref targetRotation;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref targetforwardAxis;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref targetUpAxis;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref forwardAxis;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref upAxis;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(QuaTools.NativeMethodInfoPtr_MatchRotation_Public_Static_Quaternion_Quaternion_Vector3_Vector3_Vector3_Vector3_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075BD RID: 30141 RVA: 0x001E1304 File Offset: 0x001DF504
		// Note: this type is marked as 'beforefieldinit'.
		static QuaTools()
		{
			Il2CppClassPointerStore<QuaTools>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion", "QuaTools");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<QuaTools>.NativeClassPtr);
			QuaTools.NativeMethodInfoPtr_Lerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672199);
			QuaTools.NativeMethodInfoPtr_Slerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672200);
			QuaTools.NativeMethodInfoPtr_LinearBlend_Public_Static_Quaternion_Quaternion_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672201);
			QuaTools.NativeMethodInfoPtr_SphericalBlend_Public_Static_Quaternion_Quaternion_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672202);
			QuaTools.NativeMethodInfoPtr_FromToAroundAxis_Public_Static_Quaternion_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672203);
			QuaTools.NativeMethodInfoPtr_RotationToLocalSpace_Public_Static_Quaternion_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672204);
			QuaTools.NativeMethodInfoPtr_FromToRotation_Public_Static_Quaternion_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672205);
			QuaTools.NativeMethodInfoPtr_GetAxis_Public_Static_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672206);
			QuaTools.NativeMethodInfoPtr_ClampRotation_Public_Static_Quaternion_Quaternion_Single_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672207);
			QuaTools.NativeMethodInfoPtr_ClampAngle_Public_Static_Single_Single_Single_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672208);
			QuaTools.NativeMethodInfoPtr_MatchRotation_Public_Static_Quaternion_Quaternion_Vector3_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672209);
		}

		// Token: 0x060075BE RID: 30142 RVA: 0x0000A688 File Offset: 0x00008888
		public QuaTools(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x04004F21 RID: 20257
		private static readonly IntPtr NativeMethodInfoPtr_Lerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0;

		// Token: 0x04004F22 RID: 20258
		private static readonly IntPtr NativeMethodInfoPtr_Slerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0;

		// Token: 0x04004F23 RID: 20259
		private static readonly IntPtr NativeMethodInfoPtr_LinearBlend_Public_Static_Quaternion_Quaternion_Single_0;

		// Token: 0x04004F24 RID: 20260
		private static readonly IntPtr NativeMethodInfoPtr_SphericalBlend_Public_Static_Quaternion_Quaternion_Single_0;

		// Token: 0x04004F25 RID: 20261
		private static readonly IntPtr NativeMethodInfoPtr_FromToAroundAxis_Public_Static_Quaternion_Vector3_Vector3_Vector3_0;

		// Token: 0x04004F26 RID: 20262
		private static readonly IntPtr NativeMethodInfoPtr_RotationToLocalSpace_Public_Static_Quaternion_Quaternion_Quaternion_0;

		// Token: 0x04004F27 RID: 20263
		private static readonly IntPtr NativeMethodInfoPtr_FromToRotation_Public_Static_Quaternion_Quaternion_Quaternion_0;

		// Token: 0x04004F28 RID: 20264
		private static readonly IntPtr NativeMethodInfoPtr_GetAxis_Public_Static_Vector3_Vector3_0;

		// Token: 0x04004F29 RID: 20265
		private static readonly IntPtr NativeMethodInfoPtr_ClampRotation_Public_Static_Quaternion_Quaternion_Single_Int32_0;

		// Token: 0x04004F2A RID: 20266
		private static readonly IntPtr NativeMethodInfoPtr_ClampAngle_Public_Static_Single_Single_Single_Int32_0;

		// Token: 0x04004F2B RID: 20267
		private static readonly IntPtr NativeMethodInfoPtr_MatchRotation_Public_Static_Quaternion_Quaternion_Vector3_Vector3_Vector3_Vector3_0;
	}
}
