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

namespace RootMotion
{
	// Token: 0x02000406 RID: 1030
	public static class QuaTools : Il2CppSystem.Object
	{
		// Token: 0x06007E05 RID: 32261 RVA: 0x00203B40 File Offset: 0x00201D40
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 623320, RefRangeEnd = 623323, XrefRangeStart = 623319, XrefRangeEnd = 623320, 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: 0x06007E06 RID: 32262 RVA: 0x00203BBC File Offset: 0x00201DBC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623323, XrefRangeEnd = 623324, 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: 0x06007E07 RID: 32263 RVA: 0x00203C38 File Offset: 0x00201E38
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623324, XrefRangeEnd = 623327, 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: 0x06007E08 RID: 32264 RVA: 0x00203CA0 File Offset: 0x00201EA0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623327, XrefRangeEnd = 623330, 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: 0x06007E09 RID: 32265 RVA: 0x00203D08 File Offset: 0x00201F08
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 623334, RefRangeEnd = 623335, XrefRangeStart = 623330, XrefRangeEnd = 623334, 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: 0x06007E0A RID: 32266 RVA: 0x00203D84 File Offset: 0x00201F84
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 623338, RefRangeEnd = 623340, XrefRangeStart = 623335, XrefRangeEnd = 623338, 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: 0x06007E0B RID: 32267 RVA: 0x00203DEC File Offset: 0x00201FEC
		[CallerCount(17)]
		[CachedScanResults(RefRangeStart = 623345, RefRangeEnd = 623362, XrefRangeStart = 623340, XrefRangeEnd = 623345, 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: 0x06007E0C RID: 32268 RVA: 0x00203E54 File Offset: 0x00202054
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 623368, RefRangeEnd = 623370, XrefRangeStart = 623362, XrefRangeEnd = 623368, 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: 0x06007E0D RID: 32269 RVA: 0x00203EA8 File Offset: 0x002020A8
		[CallerCount(5)]
		[CachedScanResults(RefRangeStart = 623381, RefRangeEnd = 623386, XrefRangeStart = 623370, XrefRangeEnd = 623381, 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: 0x06007E0E RID: 32270 RVA: 0x00203F24 File Offset: 0x00202124
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623386, XrefRangeEnd = 623390, 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: 0x06007E0F RID: 32271 RVA: 0x00203FA0 File Offset: 0x002021A0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623390, XrefRangeEnd = 623395, 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: 0x06007E10 RID: 32272 RVA: 0x00204040 File Offset: 0x00202240
		// 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, 100672912);
			QuaTools.NativeMethodInfoPtr_Slerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672913);
			QuaTools.NativeMethodInfoPtr_LinearBlend_Public_Static_Quaternion_Quaternion_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672914);
			QuaTools.NativeMethodInfoPtr_SphericalBlend_Public_Static_Quaternion_Quaternion_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672915);
			QuaTools.NativeMethodInfoPtr_FromToAroundAxis_Public_Static_Quaternion_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672916);
			QuaTools.NativeMethodInfoPtr_RotationToLocalSpace_Public_Static_Quaternion_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672917);
			QuaTools.NativeMethodInfoPtr_FromToRotation_Public_Static_Quaternion_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672918);
			QuaTools.NativeMethodInfoPtr_GetAxis_Public_Static_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672919);
			QuaTools.NativeMethodInfoPtr_ClampRotation_Public_Static_Quaternion_Quaternion_Single_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672920);
			QuaTools.NativeMethodInfoPtr_ClampAngle_Public_Static_Single_Single_Single_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672921);
			QuaTools.NativeMethodInfoPtr_MatchRotation_Public_Static_Quaternion_Quaternion_Vector3_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<QuaTools>.NativeClassPtr, 100672922);
		}

		// Token: 0x06007E11 RID: 32273 RVA: 0x0000A74C File Offset: 0x0000894C
		public QuaTools(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x040054CA RID: 21706
		private static readonly IntPtr NativeMethodInfoPtr_Lerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0;

		// Token: 0x040054CB RID: 21707
		private static readonly IntPtr NativeMethodInfoPtr_Slerp_Public_Static_Quaternion_Quaternion_Quaternion_Single_0;

		// Token: 0x040054CC RID: 21708
		private static readonly IntPtr NativeMethodInfoPtr_LinearBlend_Public_Static_Quaternion_Quaternion_Single_0;

		// Token: 0x040054CD RID: 21709
		private static readonly IntPtr NativeMethodInfoPtr_SphericalBlend_Public_Static_Quaternion_Quaternion_Single_0;

		// Token: 0x040054CE RID: 21710
		private static readonly IntPtr NativeMethodInfoPtr_FromToAroundAxis_Public_Static_Quaternion_Vector3_Vector3_Vector3_0;

		// Token: 0x040054CF RID: 21711
		private static readonly IntPtr NativeMethodInfoPtr_RotationToLocalSpace_Public_Static_Quaternion_Quaternion_Quaternion_0;

		// Token: 0x040054D0 RID: 21712
		private static readonly IntPtr NativeMethodInfoPtr_FromToRotation_Public_Static_Quaternion_Quaternion_Quaternion_0;

		// Token: 0x040054D1 RID: 21713
		private static readonly IntPtr NativeMethodInfoPtr_GetAxis_Public_Static_Vector3_Vector3_0;

		// Token: 0x040054D2 RID: 21714
		private static readonly IntPtr NativeMethodInfoPtr_ClampRotation_Public_Static_Quaternion_Quaternion_Single_Int32_0;

		// Token: 0x040054D3 RID: 21715
		private static readonly IntPtr NativeMethodInfoPtr_ClampAngle_Public_Static_Single_Single_Single_Int32_0;

		// Token: 0x040054D4 RID: 21716
		private static readonly IntPtr NativeMethodInfoPtr_MatchRotation_Public_Static_Quaternion_Quaternion_Vector3_Vector3_Vector3_Vector3_0;
	}
}
