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

namespace RootMotion.FinalIK
{
	// Token: 0x0200043F RID: 1087
	[Serializable]
	public class IKSolverHeuristic : IKSolver
	{
		// Token: 0x060081C6 RID: 33222 RVA: 0x0021285C File Offset: 0x00210A5C
		[CallerCount(5)]
		[CachedScanResults(RefRangeStart = 599348, RefRangeEnd = 599353, XrefRangeStart = 599334, XrefRangeEnd = 599348, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe bool SetChain(Il2CppReferenceArray<Transform> hierarchy, Transform root)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(hierarchy);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(root);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverHeuristic.NativeMethodInfoPtr_SetChain_Public_Boolean_Il2CppReferenceArray_1_Transform_Transform_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060081C7 RID: 33223 RVA: 0x002128DC File Offset: 0x00210ADC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599353, XrefRangeEnd = 599373, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void AddBone(Transform bone)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(bone);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverHeuristic.NativeMethodInfoPtr_AddBone_Public_Void_Transform_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x060081C8 RID: 33224 RVA: 0x00212938 File Offset: 0x00210B38
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599373, XrefRangeEnd = 599375, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void StoreDefaultLocalState()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverHeuristic.NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060081C9 RID: 33225 RVA: 0x00212988 File Offset: 0x00210B88
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599375, XrefRangeEnd = 599377, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void FixTransforms()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverHeuristic.NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060081CA RID: 33226 RVA: 0x002129D8 File Offset: 0x00210BD8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599377, XrefRangeEnd = 599393, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override bool IsValid(ref string message)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				ref IntPtr ptr2 = ref *ptr;
				IntPtr intPtr = IL2CPP.ManagedStringToIl2Cpp(message);
				ptr2 = &intPtr;
				IntPtr intPtr3;
				IntPtr intPtr2 = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverHeuristic.NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr3);
				Il2CppException.RaiseExceptionIfNecessary(intPtr3);
				message = IL2CPP.Il2CppStringToManaged(intPtr);
				return *IL2CPP.il2cpp_object_unbox(intPtr2);
			}
		}

		// Token: 0x060081CB RID: 33227 RVA: 0x00212A64 File Offset: 0x00210C64
		[CallerCount(0)]
		public unsafe override Il2CppReferenceArray<IKSolver.Point> GetPoints()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverHeuristic.NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new Il2CppReferenceArray<IKSolver.Point>(intPtr3) : null;
		}

		// Token: 0x060081CC RID: 33228 RVA: 0x00212AC8 File Offset: 0x00210CC8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599393, XrefRangeEnd = 599398, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override IKSolver.Point GetPoint(Transform transform)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(transform);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverHeuristic.NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new IKSolver.Point(intPtr3) : null;
			}
		}

		// Token: 0x17002C37 RID: 11319
		// (get) Token: 0x060081CD RID: 33229 RVA: 0x00212B40 File Offset: 0x00210D40
		public unsafe virtual int minBones
		{
			[CallerCount(0)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverHeuristic.NativeMethodInfoPtr_get_minBones_Protected_Virtual_New_get_Int32_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x17002C38 RID: 11320
		// (get) Token: 0x060081CE RID: 33230 RVA: 0x00212B9C File Offset: 0x00210D9C
		public unsafe virtual bool boneLengthCanBeZero
		{
			[CallerCount(16)]
			[CachedScanResults(RefRangeStart = 16502, RefRangeEnd = 16518, XrefRangeStart = 16502, XrefRangeEnd = 16518, 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), IKSolverHeuristic.NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_New_get_Boolean_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x17002C39 RID: 11321
		// (get) Token: 0x060081CF RID: 33231 RVA: 0x00212BF8 File Offset: 0x00210DF8
		public unsafe virtual bool allowCommonParent
		{
			[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), IKSolverHeuristic.NativeMethodInfoPtr_get_allowCommonParent_Protected_Virtual_New_get_Boolean_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x060081D0 RID: 33232 RVA: 0x00212C54 File Offset: 0x00210E54
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, 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), IKSolverHeuristic.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060081D1 RID: 33233 RVA: 0x00212CA4 File Offset: 0x00210EA4
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, 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), IKSolverHeuristic.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060081D2 RID: 33234 RVA: 0x00212CF4 File Offset: 0x00210EF4
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 599426, RefRangeEnd = 599428, XrefRangeStart = 599398, XrefRangeEnd = 599426, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void InitiateBones()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverHeuristic.NativeMethodInfoPtr_InitiateBones_Protected_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x17002C3A RID: 11322
		// (get) Token: 0x060081D3 RID: 33235 RVA: 0x00212D38 File Offset: 0x00210F38
		public unsafe virtual Vector3 localDirection
		{
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599428, XrefRangeEnd = 599431, 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), IKSolverHeuristic.NativeMethodInfoPtr_get_localDirection_Protected_Virtual_New_get_Vector3_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x17002C3B RID: 11323
		// (get) Token: 0x060081D4 RID: 33236 RVA: 0x00212D94 File Offset: 0x00210F94
		public unsafe float positionOffset
		{
			[CallerCount(2)]
			[CachedScanResults(RefRangeStart = 599431, RefRangeEnd = 599433, XrefRangeStart = 599431, XrefRangeEnd = 599431, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverHeuristic.NativeMethodInfoPtr_get_positionOffset_Protected_get_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x060081D5 RID: 33237 RVA: 0x00212DE4 File Offset: 0x00210FE4
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 599449, RefRangeEnd = 599451, XrefRangeStart = 599433, XrefRangeEnd = 599449, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Vector3 GetSingularityOffset()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverHeuristic.NativeMethodInfoPtr_GetSingularityOffset_Protected_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060081D6 RID: 33238 RVA: 0x00212E34 File Offset: 0x00211034
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 599457, RefRangeEnd = 599458, XrefRangeStart = 599451, XrefRangeEnd = 599457, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe bool SingularityDetected()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverHeuristic.NativeMethodInfoPtr_SingularityDetected_Private_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x060081D7 RID: 33239 RVA: 0x00212E84 File Offset: 0x00211084
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 598153, RefRangeEnd = 598154, XrefRangeStart = 598153, XrefRangeEnd = 598154, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IKSolverHeuristic()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverHeuristic.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060081D8 RID: 33240 RVA: 0x00212ED0 File Offset: 0x002110D0
		// Note: this type is marked as 'beforefieldinit'.
		static IKSolverHeuristic()
		{
			Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.FinalIK", "IKSolverHeuristic");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr);
			IKSolverHeuristic.NativeFieldInfoPtr_target = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "target");
			IKSolverHeuristic.NativeFieldInfoPtr_tolerance = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "tolerance");
			IKSolverHeuristic.NativeFieldInfoPtr_maxIterations = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "maxIterations");
			IKSolverHeuristic.NativeFieldInfoPtr_useRotationLimits = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "useRotationLimits");
			IKSolverHeuristic.NativeFieldInfoPtr_XY = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "XY");
			IKSolverHeuristic.NativeFieldInfoPtr_bones = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "bones");
			IKSolverHeuristic.NativeFieldInfoPtr_lastLocalDirection = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "lastLocalDirection");
			IKSolverHeuristic.NativeFieldInfoPtr_chainLength = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, "chainLength");
			IKSolverHeuristic.NativeMethodInfoPtr_SetChain_Public_Boolean_Il2CppReferenceArray_1_Transform_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673148);
			IKSolverHeuristic.NativeMethodInfoPtr_AddBone_Public_Void_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673149);
			IKSolverHeuristic.NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673150);
			IKSolverHeuristic.NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673151);
			IKSolverHeuristic.NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673152);
			IKSolverHeuristic.NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673153);
			IKSolverHeuristic.NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673154);
			IKSolverHeuristic.NativeMethodInfoPtr_get_minBones_Protected_Virtual_New_get_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673155);
			IKSolverHeuristic.NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_New_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673156);
			IKSolverHeuristic.NativeMethodInfoPtr_get_allowCommonParent_Protected_Virtual_New_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673157);
			IKSolverHeuristic.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673158);
			IKSolverHeuristic.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673159);
			IKSolverHeuristic.NativeMethodInfoPtr_InitiateBones_Protected_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673160);
			IKSolverHeuristic.NativeMethodInfoPtr_get_localDirection_Protected_Virtual_New_get_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673161);
			IKSolverHeuristic.NativeMethodInfoPtr_get_positionOffset_Protected_get_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673162);
			IKSolverHeuristic.NativeMethodInfoPtr_GetSingularityOffset_Protected_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673163);
			IKSolverHeuristic.NativeMethodInfoPtr_SingularityDetected_Private_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673164);
			IKSolverHeuristic.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673165);
		}

		// Token: 0x060081D9 RID: 33241 RVA: 0x002100C4 File Offset: 0x0020E2C4
		public IKSolverHeuristic(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002C2F RID: 11311
		// (get) Token: 0x060081DA RID: 33242 RVA: 0x00213108 File Offset: 0x00211308
		// (set) Token: 0x060081DB RID: 33243 RVA: 0x0021313C File Offset: 0x0021133C
		public unsafe Transform target
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_target);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Transform(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_target), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002C30 RID: 11312
		// (get) Token: 0x060081DC RID: 33244 RVA: 0x00213164 File Offset: 0x00211364
		// (set) Token: 0x060081DD RID: 33245 RVA: 0x0021318C File Offset: 0x0021138C
		public unsafe float tolerance
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_tolerance);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_tolerance)) = value;
			}
		}

		// Token: 0x17002C31 RID: 11313
		// (get) Token: 0x060081DE RID: 33246 RVA: 0x002131B0 File Offset: 0x002113B0
		// (set) Token: 0x060081DF RID: 33247 RVA: 0x002131D8 File Offset: 0x002113D8
		public unsafe int maxIterations
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_maxIterations);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_maxIterations)) = value;
			}
		}

		// Token: 0x17002C32 RID: 11314
		// (get) Token: 0x060081E0 RID: 33248 RVA: 0x002131FC File Offset: 0x002113FC
		// (set) Token: 0x060081E1 RID: 33249 RVA: 0x00213224 File Offset: 0x00211424
		public unsafe bool useRotationLimits
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_useRotationLimits);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_useRotationLimits)) = value;
			}
		}

		// Token: 0x17002C33 RID: 11315
		// (get) Token: 0x060081E2 RID: 33250 RVA: 0x00213248 File Offset: 0x00211448
		// (set) Token: 0x060081E3 RID: 33251 RVA: 0x00213270 File Offset: 0x00211470
		public unsafe bool XY
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_XY);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_XY)) = value;
			}
		}

		// Token: 0x17002C34 RID: 11316
		// (get) Token: 0x060081E4 RID: 33252 RVA: 0x00213294 File Offset: 0x00211494
		// (set) Token: 0x060081E5 RID: 33253 RVA: 0x002132C8 File Offset: 0x002114C8
		public unsafe Il2CppReferenceArray<IKSolver.Bone> bones
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_bones);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppReferenceArray<IKSolver.Bone>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_bones), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002C35 RID: 11317
		// (get) Token: 0x060081E6 RID: 33254 RVA: 0x002132F0 File Offset: 0x002114F0
		// (set) Token: 0x060081E7 RID: 33255 RVA: 0x00213318 File Offset: 0x00211518
		public unsafe Vector3 lastLocalDirection
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_lastLocalDirection);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_lastLocalDirection)) = value;
			}
		}

		// Token: 0x17002C36 RID: 11318
		// (get) Token: 0x060081E8 RID: 33256 RVA: 0x0021333C File Offset: 0x0021153C
		// (set) Token: 0x060081E9 RID: 33257 RVA: 0x00213364 File Offset: 0x00211564
		public unsafe float chainLength
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_chainLength);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverHeuristic.NativeFieldInfoPtr_chainLength)) = value;
			}
		}

		// Token: 0x040056AF RID: 22191
		private static readonly IntPtr NativeFieldInfoPtr_target;

		// Token: 0x040056B0 RID: 22192
		private static readonly IntPtr NativeFieldInfoPtr_tolerance;

		// Token: 0x040056B1 RID: 22193
		private static readonly IntPtr NativeFieldInfoPtr_maxIterations;

		// Token: 0x040056B2 RID: 22194
		private static readonly IntPtr NativeFieldInfoPtr_useRotationLimits;

		// Token: 0x040056B3 RID: 22195
		private static readonly IntPtr NativeFieldInfoPtr_XY;

		// Token: 0x040056B4 RID: 22196
		private static readonly IntPtr NativeFieldInfoPtr_bones;

		// Token: 0x040056B5 RID: 22197
		private static readonly IntPtr NativeFieldInfoPtr_lastLocalDirection;

		// Token: 0x040056B6 RID: 22198
		private static readonly IntPtr NativeFieldInfoPtr_chainLength;

		// Token: 0x040056B7 RID: 22199
		private static readonly IntPtr NativeMethodInfoPtr_SetChain_Public_Boolean_Il2CppReferenceArray_1_Transform_Transform_0;

		// Token: 0x040056B8 RID: 22200
		private static readonly IntPtr NativeMethodInfoPtr_AddBone_Public_Void_Transform_0;

		// Token: 0x040056B9 RID: 22201
		private static readonly IntPtr NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0;

		// Token: 0x040056BA RID: 22202
		private static readonly IntPtr NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0;

		// Token: 0x040056BB RID: 22203
		private static readonly IntPtr NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0;

		// Token: 0x040056BC RID: 22204
		private static readonly IntPtr NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0;

		// Token: 0x040056BD RID: 22205
		private static readonly IntPtr NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0;

		// Token: 0x040056BE RID: 22206
		private static readonly IntPtr NativeMethodInfoPtr_get_minBones_Protected_Virtual_New_get_Int32_0;

		// Token: 0x040056BF RID: 22207
		private static readonly IntPtr NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_New_get_Boolean_0;

		// Token: 0x040056C0 RID: 22208
		private static readonly IntPtr NativeMethodInfoPtr_get_allowCommonParent_Protected_Virtual_New_get_Boolean_0;

		// Token: 0x040056C1 RID: 22209
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0;

		// Token: 0x040056C2 RID: 22210
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0;

		// Token: 0x040056C3 RID: 22211
		private static readonly IntPtr NativeMethodInfoPtr_InitiateBones_Protected_Void_0;

		// Token: 0x040056C4 RID: 22212
		private static readonly IntPtr NativeMethodInfoPtr_get_localDirection_Protected_Virtual_New_get_Vector3_0;

		// Token: 0x040056C5 RID: 22213
		private static readonly IntPtr NativeMethodInfoPtr_get_positionOffset_Protected_get_Single_0;

		// Token: 0x040056C6 RID: 22214
		private static readonly IntPtr NativeMethodInfoPtr_GetSingularityOffset_Protected_Vector3_0;

		// Token: 0x040056C7 RID: 22215
		private static readonly IntPtr NativeMethodInfoPtr_SingularityDetected_Private_Boolean_0;

		// Token: 0x040056C8 RID: 22216
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
