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

namespace RootMotion
{
	// Token: 0x020003B2 RID: 946
	public static class V3Tools : Il2CppSystem.Object
	{
		// Token: 0x060075EB RID: 30187 RVA: 0x001E20B4 File Offset: 0x001E02B4
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 591222, RefRangeEnd = 591225, XrefRangeStart = 591219, XrefRangeEnd = 591222, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 Lerp(Vector3 fromVector, Vector3 toVector, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fromVector;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref toVector;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_Lerp_Public_Static_Vector3_Vector3_Vector3_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075EC RID: 30188 RVA: 0x001E2130 File Offset: 0x001E0330
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591225, XrefRangeEnd = 591226, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 Slerp(Vector3 fromVector, Vector3 toVector, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fromVector;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref toVector;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_Slerp_Public_Static_Vector3_Vector3_Vector3_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075ED RID: 30189 RVA: 0x001E21AC File Offset: 0x001E03AC
		[CallerCount(8)]
		[CachedScanResults(RefRangeStart = 591229, RefRangeEnd = 591237, XrefRangeStart = 591226, XrefRangeEnd = 591229, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 ExtractVertical(Vector3 v, Vector3 verticalAxis, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref v;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref verticalAxis;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_ExtractVertical_Public_Static_Vector3_Vector3_Vector3_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075EE RID: 30190 RVA: 0x001E2228 File Offset: 0x001E0428
		[CallerCount(11)]
		[CachedScanResults(RefRangeStart = 591241, RefRangeEnd = 591252, XrefRangeStart = 591237, XrefRangeEnd = 591241, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 ExtractHorizontal(Vector3 v, Vector3 normal, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref v;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref normal;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_ExtractHorizontal_Public_Static_Vector3_Vector3_Vector3_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075EF RID: 30191 RVA: 0x001E22A4 File Offset: 0x001E04A4
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 591260, RefRangeEnd = 591262, XrefRangeStart = 591252, XrefRangeEnd = 591260, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 ClampDirection(Vector3 direction, Vector3 normalDirection, float clampWeight, int clampSmoothing, out bool changed)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref direction;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref normalDirection;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampWeight;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampSmoothing;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &changed;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_ClampDirection_Public_Static_Vector3_Vector3_Vector3_Single_Int32_byref_Boolean_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075F0 RID: 30192 RVA: 0x001E2344 File Offset: 0x001E0544
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591262, XrefRangeEnd = 591269, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 ClampDirection(Vector3 direction, Vector3 normalDirection, float clampWeight, int clampSmoothing, out float clampValue)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref direction;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref normalDirection;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampWeight;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref clampSmoothing;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &clampValue;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_ClampDirection_Public_Static_Vector3_Vector3_Vector3_Single_Int32_byref_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075F1 RID: 30193 RVA: 0x001E23E4 File Offset: 0x001E05E4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 591272, RefRangeEnd = 591273, XrefRangeStart = 591269, XrefRangeEnd = 591272, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 LineToPlane(Vector3 origin, Vector3 direction, Vector3 planeNormal, Vector3 planePoint)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref origin;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref direction;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref planeNormal;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref planePoint;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_LineToPlane_Public_Static_Vector3_Vector3_Vector3_Vector3_Vector3_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075F2 RID: 30194 RVA: 0x001E2470 File Offset: 0x001E0670
		[CallerCount(5)]
		[CachedScanResults(RefRangeStart = 591278, RefRangeEnd = 591283, XrefRangeStart = 591273, XrefRangeEnd = 591278, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 PointToPlane(Vector3 point, Vector3 planePosition, Vector3 planeNormal)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref point;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref planePosition;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref planeNormal;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(V3Tools.NativeMethodInfoPtr_PointToPlane_Public_Static_Vector3_Vector3_Vector3_Vector3_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060075F3 RID: 30195 RVA: 0x001E24EC File Offset: 0x001E06EC
		// Note: this type is marked as 'beforefieldinit'.
		static V3Tools()
		{
			Il2CppClassPointerStore<V3Tools>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion", "V3Tools");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<V3Tools>.NativeClassPtr);
			V3Tools.NativeMethodInfoPtr_Lerp_Public_Static_Vector3_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672233);
			V3Tools.NativeMethodInfoPtr_Slerp_Public_Static_Vector3_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672234);
			V3Tools.NativeMethodInfoPtr_ExtractVertical_Public_Static_Vector3_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672235);
			V3Tools.NativeMethodInfoPtr_ExtractHorizontal_Public_Static_Vector3_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672236);
			V3Tools.NativeMethodInfoPtr_ClampDirection_Public_Static_Vector3_Vector3_Vector3_Single_Int32_byref_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672237);
			V3Tools.NativeMethodInfoPtr_ClampDirection_Public_Static_Vector3_Vector3_Vector3_Single_Int32_byref_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672238);
			V3Tools.NativeMethodInfoPtr_LineToPlane_Public_Static_Vector3_Vector3_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672239);
			V3Tools.NativeMethodInfoPtr_PointToPlane_Public_Static_Vector3_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<V3Tools>.NativeClassPtr, 100672240);
		}

		// Token: 0x060075F4 RID: 30196 RVA: 0x0000A688 File Offset: 0x00008888
		public V3Tools(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x04004F4A RID: 20298
		private static readonly IntPtr NativeMethodInfoPtr_Lerp_Public_Static_Vector3_Vector3_Vector3_Single_0;

		// Token: 0x04004F4B RID: 20299
		private static readonly IntPtr NativeMethodInfoPtr_Slerp_Public_Static_Vector3_Vector3_Vector3_Single_0;

		// Token: 0x04004F4C RID: 20300
		private static readonly IntPtr NativeMethodInfoPtr_ExtractVertical_Public_Static_Vector3_Vector3_Vector3_Single_0;

		// Token: 0x04004F4D RID: 20301
		private static readonly IntPtr NativeMethodInfoPtr_ExtractHorizontal_Public_Static_Vector3_Vector3_Vector3_Single_0;

		// Token: 0x04004F4E RID: 20302
		private static readonly IntPtr NativeMethodInfoPtr_ClampDirection_Public_Static_Vector3_Vector3_Vector3_Single_Int32_byref_Boolean_0;

		// Token: 0x04004F4F RID: 20303
		private static readonly IntPtr NativeMethodInfoPtr_ClampDirection_Public_Static_Vector3_Vector3_Vector3_Single_Int32_byref_Single_0;

		// Token: 0x04004F50 RID: 20304
		private static readonly IntPtr NativeMethodInfoPtr_LineToPlane_Public_Static_Vector3_Vector3_Vector3_Vector3_Vector3_0;

		// Token: 0x04004F51 RID: 20305
		private static readonly IntPtr NativeMethodInfoPtr_PointToPlane_Public_Static_Vector3_Vector3_Vector3_Vector3_0;
	}
}
