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

namespace RootMotion.FinalIK
{
	// Token: 0x02000497 RID: 1175
	[Serializable]
	public class IKSolverHeuristic : IKSolver
	{
		// Token: 0x06008A19 RID: 35353 RVA: 0x00235598 File Offset: 0x00233798
		[CallerCount(5)]
		[CachedScanResults(RefRangeStart = 631642, RefRangeEnd = 631647, XrefRangeStart = 631628, XrefRangeEnd = 631642, 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: 0x06008A1A RID: 35354 RVA: 0x00235618 File Offset: 0x00233818
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631647, XrefRangeEnd = 631667, 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: 0x06008A1B RID: 35355 RVA: 0x00235674 File Offset: 0x00233874
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631667, XrefRangeEnd = 631669, 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: 0x06008A1C RID: 35356 RVA: 0x002356C4 File Offset: 0x002338C4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631669, XrefRangeEnd = 631671, 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: 0x06008A1D RID: 35357 RVA: 0x00235714 File Offset: 0x00233914
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631671, XrefRangeEnd = 631687, 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: 0x06008A1E RID: 35358 RVA: 0x002357A0 File Offset: 0x002339A0
		[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: 0x06008A1F RID: 35359 RVA: 0x00235804 File Offset: 0x00233A04
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631687, XrefRangeEnd = 631692, 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: 0x17002ED2 RID: 11986
		// (get) Token: 0x06008A20 RID: 35360 RVA: 0x0023587C File Offset: 0x00233A7C
		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: 0x17002ED3 RID: 11987
		// (get) Token: 0x06008A21 RID: 35361 RVA: 0x002358D8 File Offset: 0x00233AD8
		public unsafe virtual bool boneLengthCanBeZero
		{
			[CallerCount(16)]
			[CachedScanResults(RefRangeStart = 16399, RefRangeEnd = 16415, XrefRangeStart = 16399, XrefRangeEnd = 16415, 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: 0x17002ED4 RID: 11988
		// (get) Token: 0x06008A22 RID: 35362 RVA: 0x00235934 File Offset: 0x00233B34
		public unsafe virtual bool allowCommonParent
		{
			[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), 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: 0x06008A23 RID: 35363 RVA: 0x00235990 File Offset: 0x00233B90
		[CallerCount(5874)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5898, XrefRangeStart = 24, XrefRangeEnd = 5898, 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: 0x06008A24 RID: 35364 RVA: 0x002359E0 File Offset: 0x00233BE0
		[CallerCount(5874)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5898, XrefRangeStart = 24, XrefRangeEnd = 5898, 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: 0x06008A25 RID: 35365 RVA: 0x00235A30 File Offset: 0x00233C30
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 631720, RefRangeEnd = 631722, XrefRangeStart = 631692, XrefRangeEnd = 631720, 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: 0x17002ED5 RID: 11989
		// (get) Token: 0x06008A26 RID: 35366 RVA: 0x00235A74 File Offset: 0x00233C74
		public unsafe virtual Vector3 localDirection
		{
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631722, XrefRangeEnd = 631725, 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: 0x17002ED6 RID: 11990
		// (get) Token: 0x06008A27 RID: 35367 RVA: 0x00235AD0 File Offset: 0x00233CD0
		public unsafe float positionOffset
		{
			[CallerCount(2)]
			[CachedScanResults(RefRangeStart = 631725, RefRangeEnd = 631727, XrefRangeStart = 631725, XrefRangeEnd = 631725, 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: 0x06008A28 RID: 35368 RVA: 0x00235B20 File Offset: 0x00233D20
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 631743, RefRangeEnd = 631745, XrefRangeStart = 631727, XrefRangeEnd = 631743, 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: 0x06008A29 RID: 35369 RVA: 0x00235B70 File Offset: 0x00233D70
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 631751, RefRangeEnd = 631752, XrefRangeStart = 631745, XrefRangeEnd = 631751, 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: 0x06008A2A RID: 35370 RVA: 0x00235BC0 File Offset: 0x00233DC0
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 631757, RefRangeEnd = 631760, XrefRangeStart = 631752, XrefRangeEnd = 631757, 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: 0x06008A2B RID: 35371 RVA: 0x00235C0C File Offset: 0x00233E0C
		// 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, 100673861);
			IKSolverHeuristic.NativeMethodInfoPtr_AddBone_Public_Void_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673862);
			IKSolverHeuristic.NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673863);
			IKSolverHeuristic.NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673864);
			IKSolverHeuristic.NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673865);
			IKSolverHeuristic.NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673866);
			IKSolverHeuristic.NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673867);
			IKSolverHeuristic.NativeMethodInfoPtr_get_minBones_Protected_Virtual_New_get_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673868);
			IKSolverHeuristic.NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_New_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673869);
			IKSolverHeuristic.NativeMethodInfoPtr_get_allowCommonParent_Protected_Virtual_New_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673870);
			IKSolverHeuristic.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673871);
			IKSolverHeuristic.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673872);
			IKSolverHeuristic.NativeMethodInfoPtr_InitiateBones_Protected_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673873);
			IKSolverHeuristic.NativeMethodInfoPtr_get_localDirection_Protected_Virtual_New_get_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673874);
			IKSolverHeuristic.NativeMethodInfoPtr_get_positionOffset_Protected_get_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673875);
			IKSolverHeuristic.NativeMethodInfoPtr_GetSingularityOffset_Protected_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673876);
			IKSolverHeuristic.NativeMethodInfoPtr_SingularityDetected_Private_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673877);
			IKSolverHeuristic.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverHeuristic>.NativeClassPtr, 100673878);
		}

		// Token: 0x06008A2C RID: 35372 RVA: 0x00232E00 File Offset: 0x00231000
		public IKSolverHeuristic(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002ECA RID: 11978
		// (get) Token: 0x06008A2D RID: 35373 RVA: 0x00235E44 File Offset: 0x00234044
		// (set) Token: 0x06008A2E RID: 35374 RVA: 0x00235E78 File Offset: 0x00234078
		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: 0x17002ECB RID: 11979
		// (get) Token: 0x06008A2F RID: 35375 RVA: 0x00235EA0 File Offset: 0x002340A0
		// (set) Token: 0x06008A30 RID: 35376 RVA: 0x00235EC8 File Offset: 0x002340C8
		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: 0x17002ECC RID: 11980
		// (get) Token: 0x06008A31 RID: 35377 RVA: 0x00235EEC File Offset: 0x002340EC
		// (set) Token: 0x06008A32 RID: 35378 RVA: 0x00235F14 File Offset: 0x00234114
		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: 0x17002ECD RID: 11981
		// (get) Token: 0x06008A33 RID: 35379 RVA: 0x00235F38 File Offset: 0x00234138
		// (set) Token: 0x06008A34 RID: 35380 RVA: 0x00235F60 File Offset: 0x00234160
		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: 0x17002ECE RID: 11982
		// (get) Token: 0x06008A35 RID: 35381 RVA: 0x00235F84 File Offset: 0x00234184
		// (set) Token: 0x06008A36 RID: 35382 RVA: 0x00235FAC File Offset: 0x002341AC
		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: 0x17002ECF RID: 11983
		// (get) Token: 0x06008A37 RID: 35383 RVA: 0x00235FD0 File Offset: 0x002341D0
		// (set) Token: 0x06008A38 RID: 35384 RVA: 0x00236004 File Offset: 0x00234204
		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: 0x17002ED0 RID: 11984
		// (get) Token: 0x06008A39 RID: 35385 RVA: 0x0023602C File Offset: 0x0023422C
		// (set) Token: 0x06008A3A RID: 35386 RVA: 0x00236054 File Offset: 0x00234254
		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: 0x17002ED1 RID: 11985
		// (get) Token: 0x06008A3B RID: 35387 RVA: 0x00236078 File Offset: 0x00234278
		// (set) Token: 0x06008A3C RID: 35388 RVA: 0x002360A0 File Offset: 0x002342A0
		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: 0x04005C58 RID: 23640
		private static readonly IntPtr NativeFieldInfoPtr_target;

		// Token: 0x04005C59 RID: 23641
		private static readonly IntPtr NativeFieldInfoPtr_tolerance;

		// Token: 0x04005C5A RID: 23642
		private static readonly IntPtr NativeFieldInfoPtr_maxIterations;

		// Token: 0x04005C5B RID: 23643
		private static readonly IntPtr NativeFieldInfoPtr_useRotationLimits;

		// Token: 0x04005C5C RID: 23644
		private static readonly IntPtr NativeFieldInfoPtr_XY;

		// Token: 0x04005C5D RID: 23645
		private static readonly IntPtr NativeFieldInfoPtr_bones;

		// Token: 0x04005C5E RID: 23646
		private static readonly IntPtr NativeFieldInfoPtr_lastLocalDirection;

		// Token: 0x04005C5F RID: 23647
		private static readonly IntPtr NativeFieldInfoPtr_chainLength;

		// Token: 0x04005C60 RID: 23648
		private static readonly IntPtr NativeMethodInfoPtr_SetChain_Public_Boolean_Il2CppReferenceArray_1_Transform_Transform_0;

		// Token: 0x04005C61 RID: 23649
		private static readonly IntPtr NativeMethodInfoPtr_AddBone_Public_Void_Transform_0;

		// Token: 0x04005C62 RID: 23650
		private static readonly IntPtr NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0;

		// Token: 0x04005C63 RID: 23651
		private static readonly IntPtr NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0;

		// Token: 0x04005C64 RID: 23652
		private static readonly IntPtr NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0;

		// Token: 0x04005C65 RID: 23653
		private static readonly IntPtr NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0;

		// Token: 0x04005C66 RID: 23654
		private static readonly IntPtr NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0;

		// Token: 0x04005C67 RID: 23655
		private static readonly IntPtr NativeMethodInfoPtr_get_minBones_Protected_Virtual_New_get_Int32_0;

		// Token: 0x04005C68 RID: 23656
		private static readonly IntPtr NativeMethodInfoPtr_get_boneLengthCanBeZero_Protected_Virtual_New_get_Boolean_0;

		// Token: 0x04005C69 RID: 23657
		private static readonly IntPtr NativeMethodInfoPtr_get_allowCommonParent_Protected_Virtual_New_get_Boolean_0;

		// Token: 0x04005C6A RID: 23658
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0;

		// Token: 0x04005C6B RID: 23659
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0;

		// Token: 0x04005C6C RID: 23660
		private static readonly IntPtr NativeMethodInfoPtr_InitiateBones_Protected_Void_0;

		// Token: 0x04005C6D RID: 23661
		private static readonly IntPtr NativeMethodInfoPtr_get_localDirection_Protected_Virtual_New_get_Vector3_0;

		// Token: 0x04005C6E RID: 23662
		private static readonly IntPtr NativeMethodInfoPtr_get_positionOffset_Protected_get_Single_0;

		// Token: 0x04005C6F RID: 23663
		private static readonly IntPtr NativeMethodInfoPtr_GetSingularityOffset_Protected_Vector3_0;

		// Token: 0x04005C70 RID: 23664
		private static readonly IntPtr NativeMethodInfoPtr_SingularityDetected_Private_Boolean_0;

		// Token: 0x04005C71 RID: 23665
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
