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

namespace RootMotion.FinalIK
{
	// Token: 0x02000491 RID: 1169
	[Serializable]
	public class IKSolverFABRIK : IKSolverHeuristic
	{
		// Token: 0x06008972 RID: 35186 RVA: 0x00231BD4 File Offset: 0x0022FDD4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 630456, RefRangeEnd = 630457, XrefRangeStart = 630452, XrefRangeEnd = 630456, 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: 0x06008973 RID: 35187 RVA: 0x00231C28 File Offset: 0x0022FE28
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 630466, RefRangeEnd = 630467, XrefRangeStart = 630457, XrefRangeEnd = 630466, 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: 0x06008974 RID: 35188 RVA: 0x00231C7C File Offset: 0x0022FE7C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 630467, XrefRangeEnd = 630471, 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: 0x06008975 RID: 35189 RVA: 0x00231CD8 File Offset: 0x0022FED8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 630471, XrefRangeEnd = 630491, 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: 0x06008976 RID: 35190 RVA: 0x00231D28 File Offset: 0x0022FF28
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 630491, XrefRangeEnd = 630510, 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: 0x17002E9B RID: 11931
		// (get) Token: 0x06008977 RID: 35191 RVA: 0x00231D78 File Offset: 0x0022FF78
		public unsafe override bool boneLengthCanBeZero
		{
			[CallerCount(88)]
			[CachedScanResults(RefRangeStart = 20730, RefRangeEnd = 20818, XrefRangeStart = 20730, XrefRangeEnd = 20818, 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: 0x06008978 RID: 35192 RVA: 0x00231DD4 File Offset: 0x0022FFD4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 630511, RefRangeEnd = 630512, XrefRangeStart = 630510, XrefRangeEnd = 630511, 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: 0x06008979 RID: 35193 RVA: 0x00231E5C File Offset: 0x0023005C
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630528, RefRangeEnd = 630530, XrefRangeStart = 630512, XrefRangeEnd = 630528, 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: 0x0600897A RID: 35194 RVA: 0x00231EA0 File Offset: 0x002300A0
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 630534, RefRangeEnd = 630537, XrefRangeStart = 630530, XrefRangeEnd = 630534, 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: 0x0600897B RID: 35195 RVA: 0x00231EE4 File Offset: 0x002300E4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 630540, RefRangeEnd = 630541, XrefRangeStart = 630537, XrefRangeEnd = 630540, 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: 0x0600897C RID: 35196 RVA: 0x00231F38 File Offset: 0x00230138
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630556, RefRangeEnd = 630558, XrefRangeStart = 630541, XrefRangeEnd = 630556, 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: 0x0600897D RID: 35197 RVA: 0x00231F8C File Offset: 0x0023018C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 630558, XrefRangeEnd = 630559, 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: 0x0600897E RID: 35198 RVA: 0x00231FF4 File Offset: 0x002301F4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 630559, XrefRangeEnd = 630561, 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: 0x0600897F RID: 35199 RVA: 0x00232070 File Offset: 0x00230270
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630563, RefRangeEnd = 630565, XrefRangeStart = 630561, XrefRangeEnd = 630563, 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: 0x06008980 RID: 35200 RVA: 0x002320D8 File Offset: 0x002302D8
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630567, RefRangeEnd = 630569, XrefRangeStart = 630565, XrefRangeEnd = 630567, 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: 0x06008981 RID: 35201 RVA: 0x00232140 File Offset: 0x00230340
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 630576, RefRangeEnd = 630579, XrefRangeStart = 630569, XrefRangeEnd = 630576, 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: 0x06008982 RID: 35202 RVA: 0x002321A4 File Offset: 0x002303A4
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630588, RefRangeEnd = 630590, XrefRangeStart = 630579, XrefRangeEnd = 630588, 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: 0x06008983 RID: 35203 RVA: 0x00232208 File Offset: 0x00230408
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630596, RefRangeEnd = 630598, XrefRangeStart = 630590, XrefRangeEnd = 630596, 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: 0x06008984 RID: 35204 RVA: 0x00232294 File Offset: 0x00230494
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630617, RefRangeEnd = 630619, XrefRangeStart = 630598, XrefRangeEnd = 630617, 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: 0x06008985 RID: 35205 RVA: 0x002322FC File Offset: 0x002304FC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 630619, XrefRangeEnd = 630620, 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: 0x06008986 RID: 35206 RVA: 0x00232350 File Offset: 0x00230550
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 630623, RefRangeEnd = 630626, XrefRangeStart = 630620, XrefRangeEnd = 630623, 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: 0x06008987 RID: 35207 RVA: 0x002323A4 File Offset: 0x002305A4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 630646, RefRangeEnd = 630647, XrefRangeStart = 630626, XrefRangeEnd = 630646, 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: 0x06008988 RID: 35208 RVA: 0x002323F8 File Offset: 0x002305F8
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 630652, RefRangeEnd = 630653, XrefRangeStart = 630647, XrefRangeEnd = 630652, 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: 0x06008989 RID: 35209 RVA: 0x0023243C File Offset: 0x0023063C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 630653, XrefRangeEnd = 630656, 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: 0x0600898A RID: 35210 RVA: 0x00232480 File Offset: 0x00230680
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 630665, RefRangeEnd = 630667, XrefRangeStart = 630656, XrefRangeEnd = 630665, 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: 0x0600898B RID: 35211 RVA: 0x002324CC File Offset: 0x002306CC
		// 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, 100673762);
			IKSolverFABRIK.NativeMethodInfoPtr_SolveBackward_Public_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673763);
			IKSolverFABRIK.NativeMethodInfoPtr_GetIKPosition_Public_Virtual_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673764);
			IKSolverFABRIK.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673765);
			IKSolverFABRIK.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673766);
			IKSolverFABRIK.NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673767);
			IKSolverFABRIK.NativeMethodInfoPtr_SolveJoint_Private_Vector3_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673768);
			IKSolverFABRIK.NativeMethodInfoPtr_OnPreSolve_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673769);
			IKSolverFABRIK.NativeMethodInfoPtr_OnPostSolve_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673770);
			IKSolverFABRIK.NativeMethodInfoPtr_Solve_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673771);
			IKSolverFABRIK.NativeMethodInfoPtr_ForwardReach_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673772);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverMove_Private_Void_Int32_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673773);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverRotate_Private_Void_Int32_Quaternion_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673774);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverRotateChildren_Private_Void_Int32_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673775);
			IKSolverFABRIK.NativeMethodInfoPtr_SolverMoveChildrenAroundPoint_Private_Void_Int32_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673776);
			IKSolverFABRIK.NativeMethodInfoPtr_GetParentSolverRotation_Private_Quaternion_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673777);
			IKSolverFABRIK.NativeMethodInfoPtr_GetParentSolverPosition_Private_Vector3_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673778);
			IKSolverFABRIK.NativeMethodInfoPtr_GetLimitedRotation_Private_Quaternion_Int32_Quaternion_byref_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673779);
			IKSolverFABRIK.NativeMethodInfoPtr_LimitForward_Private_Void_Int32_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673780);
			IKSolverFABRIK.NativeMethodInfoPtr_BackwardReach_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673781);
			IKSolverFABRIK.NativeMethodInfoPtr_BackwardReachUnlimited_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673782);
			IKSolverFABRIK.NativeMethodInfoPtr_BackwardReachLimited_Private_Void_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673783);
			IKSolverFABRIK.NativeMethodInfoPtr_MapToSolverPositions_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673784);
			IKSolverFABRIK.NativeMethodInfoPtr_MapToSolverPositionsLimited_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673785);
			IKSolverFABRIK.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverFABRIK>.NativeClassPtr, 100673786);
		}

		// Token: 0x0600898C RID: 35212 RVA: 0x00231514 File Offset: 0x0022F714
		public IKSolverFABRIK(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002E98 RID: 11928
		// (get) Token: 0x0600898D RID: 35213 RVA: 0x0023272C File Offset: 0x0023092C
		// (set) Token: 0x0600898E RID: 35214 RVA: 0x00232760 File Offset: 0x00230960
		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: 0x17002E99 RID: 11929
		// (get) Token: 0x0600898F RID: 35215 RVA: 0x00232788 File Offset: 0x00230988
		// (set) Token: 0x06008990 RID: 35216 RVA: 0x002327BC File Offset: 0x002309BC
		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: 0x17002E9A RID: 11930
		// (get) Token: 0x06008991 RID: 35217 RVA: 0x002327E4 File Offset: 0x002309E4
		// (set) Token: 0x06008992 RID: 35218 RVA: 0x00232818 File Offset: 0x00230A18
		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: 0x04005BC8 RID: 23496
		private static readonly IntPtr NativeFieldInfoPtr_OnPreIteration;

		// Token: 0x04005BC9 RID: 23497
		private static readonly IntPtr NativeFieldInfoPtr_limitedBones;

		// Token: 0x04005BCA RID: 23498
		private static readonly IntPtr NativeFieldInfoPtr_solverLocalPositions;

		// Token: 0x04005BCB RID: 23499
		private static readonly IntPtr NativeMethodInfoPtr_SolveForward_Public_Void_Vector3_0;

		// Token: 0x04005BCC RID: 23500
		private static readonly IntPtr NativeMethodInfoPtr_SolveBackward_Public_Void_Vector3_0;

		// Token: 0x04005BCD RID: 23501
		private static readonly IntPtr NativeMethodInfoPtr_GetIKPosition_Public_Virtual_Vector3_0;

		// Token: 0x04005BCE RID: 23502
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0;

		// Token: 0x04005BCF RID: 23503
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0;

		// Token: 0x04005BD0 RID: 23504
		private static readonly IntPtr NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_get_Boolean_0;

		// Token: 0x04005BD1 RID: 23505
		private static readonly IntPtr NativeMethodInfoPtr_SolveJoint_Private_Vector3_Vector3_Vector3_Single_0;

		// Token: 0x04005BD2 RID: 23506
		private static readonly IntPtr NativeMethodInfoPtr_OnPreSolve_Private_Void_0;

		// Token: 0x04005BD3 RID: 23507
		private static readonly IntPtr NativeMethodInfoPtr_OnPostSolve_Private_Void_0;

		// Token: 0x04005BD4 RID: 23508
		private static readonly IntPtr NativeMethodInfoPtr_Solve_Private_Void_Vector3_0;

		// Token: 0x04005BD5 RID: 23509
		private static readonly IntPtr NativeMethodInfoPtr_ForwardReach_Private_Void_Vector3_0;

		// Token: 0x04005BD6 RID: 23510
		private static readonly IntPtr NativeMethodInfoPtr_SolverMove_Private_Void_Int32_Vector3_0;

		// Token: 0x04005BD7 RID: 23511
		private static readonly IntPtr NativeMethodInfoPtr_SolverRotate_Private_Void_Int32_Quaternion_Boolean_0;

		// Token: 0x04005BD8 RID: 23512
		private static readonly IntPtr NativeMethodInfoPtr_SolverRotateChildren_Private_Void_Int32_Quaternion_0;

		// Token: 0x04005BD9 RID: 23513
		private static readonly IntPtr NativeMethodInfoPtr_SolverMoveChildrenAroundPoint_Private_Void_Int32_Quaternion_0;

		// Token: 0x04005BDA RID: 23514
		private static readonly IntPtr NativeMethodInfoPtr_GetParentSolverRotation_Private_Quaternion_Int32_0;

		// Token: 0x04005BDB RID: 23515
		private static readonly IntPtr NativeMethodInfoPtr_GetParentSolverPosition_Private_Vector3_Int32_0;

		// Token: 0x04005BDC RID: 23516
		private static readonly IntPtr NativeMethodInfoPtr_GetLimitedRotation_Private_Quaternion_Int32_Quaternion_byref_Boolean_0;

		// Token: 0x04005BDD RID: 23517
		private static readonly IntPtr NativeMethodInfoPtr_LimitForward_Private_Void_Int32_Int32_0;

		// Token: 0x04005BDE RID: 23518
		private static readonly IntPtr NativeMethodInfoPtr_BackwardReach_Private_Void_Vector3_0;

		// Token: 0x04005BDF RID: 23519
		private static readonly IntPtr NativeMethodInfoPtr_BackwardReachUnlimited_Private_Void_Vector3_0;

		// Token: 0x04005BE0 RID: 23520
		private static readonly IntPtr NativeMethodInfoPtr_BackwardReachLimited_Private_Void_Vector3_0;

		// Token: 0x04005BE1 RID: 23521
		private static readonly IntPtr NativeMethodInfoPtr_MapToSolverPositions_Private_Void_0;

		// Token: 0x04005BE2 RID: 23522
		private static readonly IntPtr NativeMethodInfoPtr_MapToSolverPositionsLimited_Private_Void_0;

		// Token: 0x04005BE3 RID: 23523
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
