using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000439 RID: 1081
	[Serializable]
	public class IKSolverFABRIK : IKSolverHeuristic
	{
		// Token: 0x0600811F RID: 33055 RVA: 0x0020EE98 File Offset: 0x0020D098
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 598158, RefRangeEnd = 598159, XrefRangeStart = 598154, XrefRangeEnd = 598158, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SolveForward(Vector3 position)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref position;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_SolveForward_Public_Void_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008120 RID: 33056 RVA: 0x0020EEEC File Offset: 0x0020D0EC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 598168, RefRangeEnd = 598169, XrefRangeStart = 598159, XrefRangeEnd = 598168, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SolveBackward(Vector3 position)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref position;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_SolveBackward_Public_Void_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008121 RID: 33057 RVA: 0x0020EF40 File Offset: 0x0020D140
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 598169, XrefRangeEnd = 598173, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override Vector3 GetIKPosition()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverFABRIK.NativeMethodInfoPtr_GetIKPosition_Public_Virtual_Vector3_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008122 RID: 33058 RVA: 0x0020EF9C File Offset: 0x0020D19C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 598173, XrefRangeEnd = 598193, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void OnInitiate()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverFABRIK.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008123 RID: 33059 RVA: 0x0020EFEC File Offset: 0x0020D1EC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 598193, XrefRangeEnd = 598212, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void OnUpdate()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverFABRIK.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x17002C00 RID: 11264
		// (get) Token: 0x06008124 RID: 33060 RVA: 0x0020F03C File Offset: 0x0020D23C
		public unsafe override bool boneLengthCanBeZero
		{
			[CallerCount(87)]
			[CachedScanResults(RefRangeStart = 20818, RefRangeEnd = 20905, XrefRangeStart = 20818, XrefRangeEnd = 20905, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverFABRIK.NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_get_Boolean_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008125 RID: 33061 RVA: 0x0020F098 File Offset: 0x0020D298
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 598213, RefRangeEnd = 598214, XrefRangeStart = 598212, XrefRangeEnd = 598213, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Vector3 SolveJoint(Vector3 pos1, Vector3 pos2, float length)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref pos1;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref pos2;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref length;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_SolveJoint_Private_Vector3_Vector3_Vector3_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008126 RID: 33062 RVA: 0x0020F120 File Offset: 0x0020D320
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598230, RefRangeEnd = 598232, XrefRangeStart = 598214, XrefRangeEnd = 598230, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnPreSolve()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_OnPreSolve_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008127 RID: 33063 RVA: 0x0020F164 File Offset: 0x0020D364
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 598236, RefRangeEnd = 598239, XrefRangeStart = 598232, XrefRangeEnd = 598236, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnPostSolve()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_OnPostSolve_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008128 RID: 33064 RVA: 0x0020F1A8 File Offset: 0x0020D3A8
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 598242, RefRangeEnd = 598243, XrefRangeStart = 598239, XrefRangeEnd = 598242, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Solve(Vector3 targetPosition)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref targetPosition;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_Solve_Private_Void_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008129 RID: 33065 RVA: 0x0020F1FC File Offset: 0x0020D3FC
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598258, RefRangeEnd = 598260, XrefRangeStart = 598243, XrefRangeEnd = 598258, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void ForwardReach(Vector3 position)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref position;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_ForwardReach_Private_Void_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x0600812A RID: 33066 RVA: 0x0020F250 File Offset: 0x0020D450
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 598260, XrefRangeEnd = 598261, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SolverMove(int index, Vector3 offset)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref offset;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_SolverMove_Private_Void_Int32_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600812B RID: 33067 RVA: 0x0020F2B8 File Offset: 0x0020D4B8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 598261, XrefRangeEnd = 598263, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SolverRotate(int index, Quaternion rotation, bool recursive)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref rotation;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref recursive;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_SolverRotate_Private_Void_Int32_Quaternion_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600812C RID: 33068 RVA: 0x0020F334 File Offset: 0x0020D534
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598265, RefRangeEnd = 598267, XrefRangeStart = 598263, XrefRangeEnd = 598265, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SolverRotateChildren(int index, Quaternion rotation)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref rotation;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_SolverRotateChildren_Private_Void_Int32_Quaternion_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600812D RID: 33069 RVA: 0x0020F39C File Offset: 0x0020D59C
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598269, RefRangeEnd = 598271, XrefRangeStart = 598267, XrefRangeEnd = 598269, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SolverMoveChildrenAroundPoint(int index, Quaternion rotation)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref rotation;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_SolverMoveChildrenAroundPoint_Private_Void_Int32_Quaternion_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600812E RID: 33070 RVA: 0x0020F404 File Offset: 0x0020D604
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 598278, RefRangeEnd = 598281, XrefRangeStart = 598271, XrefRangeEnd = 598278, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Quaternion GetParentSolverRotation(int index)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_GetParentSolverRotation_Private_Quaternion_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x0600812F RID: 33071 RVA: 0x0020F468 File Offset: 0x0020D668
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598290, RefRangeEnd = 598292, XrefRangeStart = 598281, XrefRangeEnd = 598290, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Vector3 GetParentSolverPosition(int index)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_GetParentSolverPosition_Private_Vector3_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008130 RID: 33072 RVA: 0x0020F4CC File Offset: 0x0020D6CC
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598298, RefRangeEnd = 598300, XrefRangeStart = 598292, XrefRangeEnd = 598298, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Quaternion GetLimitedRotation(int index, Quaternion q, out bool changed)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref q;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &changed;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_GetLimitedRotation_Private_Quaternion_Int32_Quaternion_byref_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008131 RID: 33073 RVA: 0x0020F558 File Offset: 0x0020D758
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598319, RefRangeEnd = 598321, XrefRangeStart = 598300, XrefRangeEnd = 598319, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void LimitForward(int rotateBone, int limitBone)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref rotateBone;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref limitBone;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_LimitForward_Private_Void_Int32_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008132 RID: 33074 RVA: 0x0020F5C0 File Offset: 0x0020D7C0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 598321, XrefRangeEnd = 598322, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void BackwardReach(Vector3 position)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref position;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_BackwardReach_Private_Void_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008133 RID: 33075 RVA: 0x0020F614 File Offset: 0x0020D814
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 598325, RefRangeEnd = 598328, XrefRangeStart = 598322, XrefRangeEnd = 598325, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void BackwardReachUnlimited(Vector3 position)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref position;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_BackwardReachUnlimited_Private_Void_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008134 RID: 33076 RVA: 0x0020F668 File Offset: 0x0020D868
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 598348, RefRangeEnd = 598349, XrefRangeStart = 598328, XrefRangeEnd = 598348, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void BackwardReachLimited(Vector3 position)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref position;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_BackwardReachLimited_Private_Void_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008135 RID: 33077 RVA: 0x0020F6BC File Offset: 0x0020D8BC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 598354, RefRangeEnd = 598355, XrefRangeStart = 598349, XrefRangeEnd = 598354, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void MapToSolverPositions()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_MapToSolverPositions_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008136 RID: 33078 RVA: 0x0020F700 File Offset: 0x0020D900
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 598355, XrefRangeEnd = 598358, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void MapToSolverPositionsLimited()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr_MapToSolverPositionsLimited_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008137 RID: 33079 RVA: 0x0020F744 File Offset: 0x0020D944
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 598371, RefRangeEnd = 598373, XrefRangeStart = 598358, XrefRangeEnd = 598371, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IKSolverFABRIK()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverFABRIK.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008138 RID: 33080 RVA: 0x0020F790 File Offset: 0x0020D990
		// Note: this type is marked as 'beforefieldinit'.
		static IKSolverFABRIK()
		{
			Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.FinalIK", "IKSolverFABRIK");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr);
			IKSolverFABRIK.NativeFieldInfoPtr_OnPreIteration = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, "OnPreIteration");
			IKSolverFABRIK.NativeFieldInfoPtr_limitedBones = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, "limitedBones");
			IKSolverFABRIK.NativeFieldInfoPtr_solverLocalPositions = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, "solverLocalPositions");
			IKSolverFABRIK.NativeMethodInfoPtr_SolveForward_Public_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673049);
			IKSolverFABRIK.NativeMethodInfoPtr_SolveBackward_Public_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673050);
			IKSolverFABRIK.NativeMethodInfoPtr_GetIKPosition_Public_Virtual_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673051);
			IKSolverFABRIK.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673052);
			IKSolverFABRIK.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673053);
			IKSolverFABRIK.NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673054);
			IKSolverFABRIK.NativeMethodInfoPtr_SolveJoint_Private_Vector3_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673055);
			IKSolverFABRIK.NativeMethodInfoPtr_OnPreSolve_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673056);
			IKSolverFABRIK.NativeMethodInfoPtr_OnPostSolve_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673057);
			IKSolverFABRIK.NativeMethodInfoPtr_Solve_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673058);
			IKSolverFABRIK.NativeMethodInfoPtr_ForwardReach_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673059);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverMove_Private_Void_Int32_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673060);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverRotate_Private_Void_Int32_Quaternion_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673061);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverRotateChildren_Private_Void_Int32_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673062);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverMoveChildrenAroundPoint_Private_Void_Int32_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673063);
			IKSolverFABRIK.NativeMethodInfoPtr_GetParentSolverRotation_Private_Quaternion_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673064);
			IKSolverFABRIK.NativeMethodInfoPtr_GetParentSolverPosition_Private_Vector3_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673065);
			IKSolverFABRIK.NativeMethodInfoPtr_GetLimitedRotation_Private_Quaternion_Int32_Quaternion_byref_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673066);
			IKSolverFABRIK.NativeMethodInfoPtr_LimitForward_Private_Void_Int32_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673067);
			IKSolverFABRIK.NativeMethodInfoPtr_BackwardReach_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673068);
			IKSolverFABRIK.NativeMethodInfoPtr_BackwardReachUnlimited_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673069);
			IKSolverFABRIK.NativeMethodInfoPtr_BackwardReachLimited_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673070);
			IKSolverFABRIK.NativeMethodInfoPtr_MapToSolverPositions_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673071);
			IKSolverFABRIK.NativeMethodInfoPtr_MapToSolverPositionsLimited_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673072);
			IKSolverFABRIK.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673073);
		}

		// Token: 0x06008139 RID: 33081 RVA: 0x0020E7D8 File Offset: 0x0020C9D8
		public IKSolverFABRIK(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002BFD RID: 11261
		// (get) Token: 0x0600813A RID: 33082 RVA: 0x0020F9F0 File Offset: 0x0020DBF0
		// (set) Token: 0x0600813B RID: 33083 RVA: 0x0020FA24 File Offset: 0x0020DC24
		public unsafe IKSolver.IterationDelegate OnPreIteration
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverFABRIK.NativeFieldInfoPtr_OnPreIteration);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new IKSolver.IterationDelegate(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverFABRIK.NativeFieldInfoPtr_OnPreIteration), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002BFE RID: 11262
		// (get) Token: 0x0600813C RID: 33084 RVA: 0x0020FA4C File Offset: 0x0020DC4C
		// (set) Token: 0x0600813D RID: 33085 RVA: 0x0020FA80 File Offset: 0x0020DC80
		public unsafe Il2CppStructArray<bool> limitedBones
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverFABRIK.NativeFieldInfoPtr_limitedBones);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStructArray<bool>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverFABRIK.NativeFieldInfoPtr_limitedBones), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002BFF RID: 11263
		// (get) Token: 0x0600813E RID: 33086 RVA: 0x0020FAA8 File Offset: 0x0020DCA8
		// (set) Token: 0x0600813F RID: 33087 RVA: 0x0020FADC File Offset: 0x0020DCDC
		public unsafe Il2CppStructArray<Vector3> solverLocalPositions
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverFABRIK.NativeFieldInfoPtr_solverLocalPositions);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStructArray<Vector3>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverFABRIK.NativeFieldInfoPtr_solverLocalPositions), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x0400561F RID: 22047
		private static readonly IntPtr NativeFieldInfoPtr_OnPreIteration;

		// Token: 0x04005620 RID: 22048
		private static readonly IntPtr NativeFieldInfoPtr_limitedBones;

		// Token: 0x04005621 RID: 22049
		private static readonly IntPtr NativeFieldInfoPtr_solverLocalPositions;

		// Token: 0x04005622 RID: 22050
		private static readonly IntPtr NativeMethodInfoPtr_SolveForward_Public_Void_Vector3_0;

		// Token: 0x04005623 RID: 22051
		private static readonly IntPtr NativeMethodInfoPtr_SolveBackward_Public_Void_Vector3_0;

		// Token: 0x04005624 RID: 22052
		private static readonly IntPtr NativeMethodInfoPtr_GetIKPosition_Public_Virtual_Vector3_0;

		// Token: 0x04005625 RID: 22053
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0;

		// Token: 0x04005626 RID: 22054
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0;

		// Token: 0x04005627 RID: 22055
		private static readonly IntPtr NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_get_Boolean_0;

		// Token: 0x04005628 RID: 22056
		private static readonly IntPtr NativeMethodInfoPtr_SolveJoint_Private_Vector3_Vector3_Vector3_Single_0;

		// Token: 0x04005629 RID: 22057
		private static readonly IntPtr NativeMethodInfoPtr_OnPreSolve_Private_Void_0;

		// Token: 0x0400562A RID: 22058
		private static readonly IntPtr NativeMethodInfoPtr_OnPostSolve_Private_Void_0;

		// Token: 0x0400562B RID: 22059
		private static readonly IntPtr NativeMethodInfoPtr_Solve_Private_Void_Vector3_0;

		// Token: 0x0400562C RID: 22060
		private static readonly IntPtr NativeMethodInfoPtr_ForwardReach_Private_Void_Vector3_0;

		// Token: 0x0400562D RID: 22061
		private static readonly IntPtr NativeMethodInfoPtr_SolverMove_Private_Void_Int32_Vector3_0;

		// Token: 0x0400562E RID: 22062
		private static readonly IntPtr NativeMethodInfoPtr_SolverRotate_Private_Void_Int32_Quaternion_Boolean_0;

		// Token: 0x0400562F RID: 22063
		private static readonly IntPtr NativeMethodInfoPtr_SolverRotateChildren_Private_Void_Int32_Quaternion_0;

		// Token: 0x04005630 RID: 22064
		private static readonly IntPtr NativeMethodInfoPtr_SolverMoveChildrenAroundPoint_Private_Void_Int32_Quaternion_0;

		// Token: 0x04005631 RID: 22065
		private static readonly IntPtr NativeMethodInfoPtr_GetParentSolverRotation_Private_Quaternion_Int32_0;

		// Token: 0x04005632 RID: 22066
		private static readonly IntPtr NativeMethodInfoPtr_GetParentSolverPosition_Private_Vector3_Int32_0;

		// Token: 0x04005633 RID: 22067
		private static readonly IntPtr NativeMethodInfoPtr_GetLimitedRotation_Private_Quaternion_Int32_Quaternion_byref_Boolean_0;

		// Token: 0x04005634 RID: 22068
		private static readonly IntPtr NativeMethodInfoPtr_LimitForward_Private_Void_Int32_Int32_0;

		// Token: 0x04005635 RID: 22069
		private static readonly IntPtr NativeMethodInfoPtr_BackwardReach_Private_Void_Vector3_0;

		// Token: 0x04005636 RID: 22070
		private static readonly IntPtr NativeMethodInfoPtr_BackwardReachUnlimited_Private_Void_Vector3_0;

		// Token: 0x04005637 RID: 22071
		private static readonly IntPtr NativeMethodInfoPtr_BackwardReachLimited_Private_Void_Vector3_0;

		// Token: 0x04005638 RID: 22072
		private static readonly IntPtr NativeMethodInfoPtr_MapToSolverPositions_Private_Void_0;

		// Token: 0x04005639 RID: 22073
		private static readonly IntPtr NativeMethodInfoPtr_MapToSolverPositionsLimited_Private_Void_0;

		// Token: 0x0400563A RID: 22074
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
