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

namespace RootMotion.FinalIK
{
	// Token: 0x02000446 RID: 1094
	[Serializable]
	public class IKSolverTrigonometric : IKSolver
	{
		// Token: 0x0600827E RID: 33406 RVA: 0x00215EB0 File Offset: 0x002140B0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 600035, RefRangeEnd = 600036, XrefRangeStart = 600029, XrefRangeEnd = 600035, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SetBendGoalPosition(Vector3 goalPosition, float weight)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref goalPosition;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_SetBendGoalPosition_Public_Void_Vector3_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600827F RID: 33407 RVA: 0x00215F18 File Offset: 0x00214118
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600036, XrefRangeEnd = 600043, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SetBendPlaneToCurrent()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_SetBendPlaneToCurrent_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008280 RID: 33408 RVA: 0x00215F5C File Offset: 0x0021415C
		[CallerCount(0)]
		public unsafe void SetIKRotation(Quaternion rotation)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref rotation;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_SetIKRotation_Public_Void_Quaternion_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008281 RID: 33409 RVA: 0x00215FB0 File Offset: 0x002141B0
		[CallerCount(4)]
		[CachedScanResults(RefRangeStart = 600044, RefRangeEnd = 600048, XrefRangeStart = 600043, XrefRangeEnd = 600044, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SetIKRotationWeight(float weight)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref weight;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_SetIKRotationWeight_Public_Void_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008282 RID: 33410 RVA: 0x00216004 File Offset: 0x00214204
		[CallerCount(0)]
		public unsafe Quaternion GetIKRotation()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_GetIKRotation_Public_Quaternion_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008283 RID: 33411 RVA: 0x00216054 File Offset: 0x00214254
		[CallerCount(0)]
		public unsafe float GetIKRotationWeight()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_GetIKRotationWeight_Public_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008284 RID: 33412 RVA: 0x002160A4 File Offset: 0x002142A4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600048, XrefRangeEnd = 600057, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		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), IKSolverTrigonometric.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: 0x06008285 RID: 33413 RVA: 0x00216108 File Offset: 0x00214308
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600057, XrefRangeEnd = 600067, 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), IKSolverTrigonometric.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: 0x06008286 RID: 33414 RVA: 0x00216180 File Offset: 0x00214380
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600067, XrefRangeEnd = 600071, 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), IKSolverTrigonometric.NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008287 RID: 33415 RVA: 0x002161D0 File Offset: 0x002143D0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600071, XrefRangeEnd = 600075, 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), IKSolverTrigonometric.NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008288 RID: 33416 RVA: 0x00216220 File Offset: 0x00214420
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600075, XrefRangeEnd = 600115, 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), IKSolverTrigonometric.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: 0x06008289 RID: 33417 RVA: 0x002162AC File Offset: 0x002144AC
		[CallerCount(9)]
		[CachedScanResults(RefRangeStart = 600119, RefRangeEnd = 600128, XrefRangeStart = 600115, XrefRangeEnd = 600119, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe bool SetChain(Transform bone1, Transform bone2, Transform bone3, Transform root)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(bone1);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bone2);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bone3);
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(root);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_SetChain_Public_Boolean_Transform_Transform_Transform_Transform_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600828A RID: 33418 RVA: 0x0021635C File Offset: 0x0021455C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600128, XrefRangeEnd = 600168, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void Solve(Transform bone1, Transform bone2, Transform bone3, Vector3 targetPosition, Vector3 bendNormal, float weight)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(bone1);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bone2);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bone3);
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref targetPosition;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bendNormal;
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref weight;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_Solve_Public_Static_Void_Transform_Transform_Transform_Vector3_Vector3_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600828B RID: 33419 RVA: 0x00216410 File Offset: 0x00214610
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600168, XrefRangeEnd = 600180, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Vector3 GetDirectionToBendPoint(Vector3 direction, float directionMag, Vector3 bendDirection, float sqrMag1, float sqrMag2)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref direction;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref directionMag;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bendDirection;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref sqrMag1;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref sqrMag2;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_GetDirectionToBendPoint_Private_Static_Vector3_Vector3_Single_Vector3_Single_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600828C RID: 33420 RVA: 0x002164B0 File Offset: 0x002146B0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600180, XrefRangeEnd = 600196, 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), IKSolverTrigonometric.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600828D RID: 33421 RVA: 0x00216500 File Offset: 0x00214700
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600196, XrefRangeEnd = 600205, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe bool IsDirectHierarchy()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_IsDirectHierarchy_Private_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600828E RID: 33422 RVA: 0x00216550 File Offset: 0x00214750
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 600216, RefRangeEnd = 600217, XrefRangeStart = 600205, XrefRangeEnd = 600216, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void InitiateBones()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_InitiateBones_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600828F RID: 33423 RVA: 0x00216594 File Offset: 0x00214794
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 600217, XrefRangeEnd = 600263, 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), IKSolverTrigonometric.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008290 RID: 33424 RVA: 0x002165E4 File Offset: 0x002147E4
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual void OnInitiateVirtual()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverTrigonometric.NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_New_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008291 RID: 33425 RVA: 0x00216634 File Offset: 0x00214834
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual void OnUpdateVirtual()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverTrigonometric.NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_New_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008292 RID: 33426 RVA: 0x00216684 File Offset: 0x00214884
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual void OnPostSolveVirtual()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IKSolverTrigonometric.NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_New_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008293 RID: 33427 RVA: 0x002166D4 File Offset: 0x002148D4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 600278, RefRangeEnd = 600279, XrefRangeStart = 600263, XrefRangeEnd = 600278, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Vector3 GetBendDirection(Vector3 IKPosition, Vector3 bendNormal)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref IKPosition;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bendNormal;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr_GetBendDirection_Protected_Vector3_Vector3_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008294 RID: 33428 RVA: 0x0021674C File Offset: 0x0021494C
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 600295, RefRangeEnd = 600298, XrefRangeStart = 600279, XrefRangeEnd = 600295, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IKSolverTrigonometric()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008295 RID: 33429 RVA: 0x00216798 File Offset: 0x00214998
		// Note: this type is marked as 'beforefieldinit'.
		static IKSolverTrigonometric()
		{
			Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.FinalIK", "IKSolverTrigonometric");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr);
			IKSolverTrigonometric.NativeFieldInfoPtr_target = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "target");
			IKSolverTrigonometric.NativeFieldInfoPtr_IKRotationWeight = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "IKRotationWeight");
			IKSolverTrigonometric.NativeFieldInfoPtr_IKRotation = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "IKRotation");
			IKSolverTrigonometric.NativeFieldInfoPtr_bendNormal = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "bendNormal");
			IKSolverTrigonometric.NativeFieldInfoPtr_bone1 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "bone1");
			IKSolverTrigonometric.NativeFieldInfoPtr_bone2 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "bone2");
			IKSolverTrigonometric.NativeFieldInfoPtr_bone3 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "bone3");
			IKSolverTrigonometric.NativeFieldInfoPtr_weightIKPosition = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "weightIKPosition");
			IKSolverTrigonometric.NativeFieldInfoPtr_directHierarchy = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "directHierarchy");
			IKSolverTrigonometric.NativeMethodInfoPtr_SetBendGoalPosition_Public_Void_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673220);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetBendPlaneToCurrent_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673221);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetIKRotation_Public_Void_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673222);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetIKRotationWeight_Public_Void_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673223);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetIKRotation_Public_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673224);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetIKRotationWeight_Public_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673225);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673226);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673227);
			IKSolverTrigonometric.NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673228);
			IKSolverTrigonometric.NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673229);
			IKSolverTrigonometric.NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673230);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetChain_Public_Boolean_Transform_Transform_Transform_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673231);
			IKSolverTrigonometric.NativeMethodInfoPtr_Solve_Public_Static_Void_Transform_Transform_Transform_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673232);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetDirectionToBendPoint_Private_Static_Vector3_Vector3_Single_Vector3_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673233);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673234);
			IKSolverTrigonometric.NativeMethodInfoPtr_IsDirectHierarchy_Private_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673235);
			IKSolverTrigonometric.NativeMethodInfoPtr_InitiateBones_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673236);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673237);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673238);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673239);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673240);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetBendDirection_Protected_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673241);
			IKSolverTrigonometric.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673242);
		}

		// Token: 0x06008296 RID: 33430 RVA: 0x002100C4 File Offset: 0x0020E2C4
		public IKSolverTrigonometric(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002C6E RID: 11374
		// (get) Token: 0x06008297 RID: 33431 RVA: 0x00216A48 File Offset: 0x00214C48
		// (set) Token: 0x06008298 RID: 33432 RVA: 0x00216A7C File Offset: 0x00214C7C
		public unsafe Transform target
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.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(IKSolverTrigonometric.NativeFieldInfoPtr_target), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002C6F RID: 11375
		// (get) Token: 0x06008299 RID: 33433 RVA: 0x00216AA4 File Offset: 0x00214CA4
		// (set) Token: 0x0600829A RID: 33434 RVA: 0x00216ACC File Offset: 0x00214CCC
		public unsafe float IKRotationWeight
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_IKRotationWeight);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_IKRotationWeight)) = value;
			}
		}

		// Token: 0x17002C70 RID: 11376
		// (get) Token: 0x0600829B RID: 33435 RVA: 0x00216AF0 File Offset: 0x00214CF0
		// (set) Token: 0x0600829C RID: 33436 RVA: 0x00216B18 File Offset: 0x00214D18
		public unsafe Quaternion IKRotation
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_IKRotation);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_IKRotation)) = value;
			}
		}

		// Token: 0x17002C71 RID: 11377
		// (get) Token: 0x0600829D RID: 33437 RVA: 0x00216B3C File Offset: 0x00214D3C
		// (set) Token: 0x0600829E RID: 33438 RVA: 0x00216B64 File Offset: 0x00214D64
		public unsafe Vector3 bendNormal
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bendNormal);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bendNormal)) = value;
			}
		}

		// Token: 0x17002C72 RID: 11378
		// (get) Token: 0x0600829F RID: 33439 RVA: 0x00216B88 File Offset: 0x00214D88
		// (set) Token: 0x060082A0 RID: 33440 RVA: 0x00216BBC File Offset: 0x00214DBC
		public unsafe IKSolverTrigonometric.TrigonometricBone bone1
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bone1);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new IKSolverTrigonometric.TrigonometricBone(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bone1), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002C73 RID: 11379
		// (get) Token: 0x060082A1 RID: 33441 RVA: 0x00216BE4 File Offset: 0x00214DE4
		// (set) Token: 0x060082A2 RID: 33442 RVA: 0x00216C18 File Offset: 0x00214E18
		public unsafe IKSolverTrigonometric.TrigonometricBone bone2
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bone2);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new IKSolverTrigonometric.TrigonometricBone(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bone2), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002C74 RID: 11380
		// (get) Token: 0x060082A3 RID: 33443 RVA: 0x00216C40 File Offset: 0x00214E40
		// (set) Token: 0x060082A4 RID: 33444 RVA: 0x00216C74 File Offset: 0x00214E74
		public unsafe IKSolverTrigonometric.TrigonometricBone bone3
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bone3);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new IKSolverTrigonometric.TrigonometricBone(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_bone3), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002C75 RID: 11381
		// (get) Token: 0x060082A5 RID: 33445 RVA: 0x00216C9C File Offset: 0x00214E9C
		// (set) Token: 0x060082A6 RID: 33446 RVA: 0x00216CC4 File Offset: 0x00214EC4
		public unsafe Vector3 weightIKPosition
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_weightIKPosition);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_weightIKPosition)) = value;
			}
		}

		// Token: 0x17002C76 RID: 11382
		// (get) Token: 0x060082A7 RID: 33447 RVA: 0x00216CE8 File Offset: 0x00214EE8
		// (set) Token: 0x060082A8 RID: 33448 RVA: 0x00216D10 File Offset: 0x00214F10
		public unsafe bool directHierarchy
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_directHierarchy);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.NativeFieldInfoPtr_directHierarchy)) = value;
			}
		}

		// Token: 0x04005735 RID: 22325
		private static readonly IntPtr NativeFieldInfoPtr_target;

		// Token: 0x04005736 RID: 22326
		private static readonly IntPtr NativeFieldInfoPtr_IKRotationWeight;

		// Token: 0x04005737 RID: 22327
		private static readonly IntPtr NativeFieldInfoPtr_IKRotation;

		// Token: 0x04005738 RID: 22328
		private static readonly IntPtr NativeFieldInfoPtr_bendNormal;

		// Token: 0x04005739 RID: 22329
		private static readonly IntPtr NativeFieldInfoPtr_bone1;

		// Token: 0x0400573A RID: 22330
		private static readonly IntPtr NativeFieldInfoPtr_bone2;

		// Token: 0x0400573B RID: 22331
		private static readonly IntPtr NativeFieldInfoPtr_bone3;

		// Token: 0x0400573C RID: 22332
		private static readonly IntPtr NativeFieldInfoPtr_weightIKPosition;

		// Token: 0x0400573D RID: 22333
		private static readonly IntPtr NativeFieldInfoPtr_directHierarchy;

		// Token: 0x0400573E RID: 22334
		private static readonly IntPtr NativeMethodInfoPtr_SetBendGoalPosition_Public_Void_Vector3_Single_0;

		// Token: 0x0400573F RID: 22335
		private static readonly IntPtr NativeMethodInfoPtr_SetBendPlaneToCurrent_Public_Void_0;

		// Token: 0x04005740 RID: 22336
		private static readonly IntPtr NativeMethodInfoPtr_SetIKRotation_Public_Void_Quaternion_0;

		// Token: 0x04005741 RID: 22337
		private static readonly IntPtr NativeMethodInfoPtr_SetIKRotationWeight_Public_Void_Single_0;

		// Token: 0x04005742 RID: 22338
		private static readonly IntPtr NativeMethodInfoPtr_GetIKRotation_Public_Quaternion_0;

		// Token: 0x04005743 RID: 22339
		private static readonly IntPtr NativeMethodInfoPtr_GetIKRotationWeight_Public_Single_0;

		// Token: 0x04005744 RID: 22340
		private static readonly IntPtr NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0;

		// Token: 0x04005745 RID: 22341
		private static readonly IntPtr NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0;

		// Token: 0x04005746 RID: 22342
		private static readonly IntPtr NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0;

		// Token: 0x04005747 RID: 22343
		private static readonly IntPtr NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0;

		// Token: 0x04005748 RID: 22344
		private static readonly IntPtr NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0;

		// Token: 0x04005749 RID: 22345
		private static readonly IntPtr NativeMethodInfoPtr_SetChain_Public_Boolean_Transform_Transform_Transform_Transform_0;

		// Token: 0x0400574A RID: 22346
		private static readonly IntPtr NativeMethodInfoPtr_Solve_Public_Static_Void_Transform_Transform_Transform_Vector3_Vector3_Single_0;

		// Token: 0x0400574B RID: 22347
		private static readonly IntPtr NativeMethodInfoPtr_GetDirectionToBendPoint_Private_Static_Vector3_Vector3_Single_Vector3_Single_Single_0;

		// Token: 0x0400574C RID: 22348
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0;

		// Token: 0x0400574D RID: 22349
		private static readonly IntPtr NativeMethodInfoPtr_IsDirectHierarchy_Private_Boolean_0;

		// Token: 0x0400574E RID: 22350
		private static readonly IntPtr NativeMethodInfoPtr_InitiateBones_Private_Void_0;

		// Token: 0x0400574F RID: 22351
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0;

		// Token: 0x04005750 RID: 22352
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_New_Void_0;

		// Token: 0x04005751 RID: 22353
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_New_Void_0;

		// Token: 0x04005752 RID: 22354
		private static readonly IntPtr NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_New_Void_0;

		// Token: 0x04005753 RID: 22355
		private static readonly IntPtr NativeMethodInfoPtr_GetBendDirection_Protected_Vector3_Vector3_Vector3_0;

		// Token: 0x04005754 RID: 22356
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000447 RID: 1095
		[Serializable]
		public class TrigonometricBone : IKSolver.Bone
		{
			// Token: 0x060082A9 RID: 33449 RVA: 0x00216D34 File Offset: 0x00214F34
			[CallerCount(4)]
			[CachedScanResults(RefRangeStart = 600016, RefRangeEnd = 600020, XrefRangeStart = 600009, XrefRangeEnd = 600016, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void Initiate(Vector3 childPosition, Vector3 bendNormal)
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr;
				checked
				{
					ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref childPosition;
				}
				ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bendNormal;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_Initiate_Public_Void_Vector3_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x060082AA RID: 33450 RVA: 0x00216D9C File Offset: 0x00214F9C
			[CallerCount(2)]
			[CachedScanResults(RefRangeStart = 600022, RefRangeEnd = 600024, XrefRangeStart = 600020, XrefRangeEnd = 600022, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe Quaternion GetRotation(Vector3 direction, Vector3 bendNormal)
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr;
				checked
				{
					ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref direction;
				}
				ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bendNormal;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_GetRotation_Public_Quaternion_Vector3_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}

			// Token: 0x060082AB RID: 33451 RVA: 0x00216E14 File Offset: 0x00215014
			[CallerCount(3)]
			[CachedScanResults(RefRangeStart = 600026, RefRangeEnd = 600029, XrefRangeStart = 600024, XrefRangeEnd = 600026, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe Vector3 GetBendNormalFromCurrentRotation()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_GetBendNormalFromCurrentRotation_Public_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}

			// Token: 0x060082AC RID: 33452 RVA: 0x00216E64 File Offset: 0x00215064
			[CallerCount(4)]
			[CachedScanResults(RefRangeStart = 599708, RefRangeEnd = 599712, XrefRangeStart = 599708, XrefRangeEnd = 599712, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe TrigonometricBone()
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr))
			{
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x060082AD RID: 33453 RVA: 0x00216EB0 File Offset: 0x002150B0
			// Note: this type is marked as 'beforefieldinit'.
			static TrigonometricBone()
			{
				Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, "TrigonometricBone");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr);
				IKSolverTrigonometric.TrigonometricBone.NativeFieldInfoPtr_targetToLocalSpace = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, "targetToLocalSpace");
				IKSolverTrigonometric.TrigonometricBone.NativeFieldInfoPtr_defaultLocalBendNormal = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, "defaultLocalBendNormal");
				IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_Initiate_Public_Void_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, 100673243);
				IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_GetRotation_Public_Quaternion_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, 100673244);
				IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_GetBendNormalFromCurrentRotation_Public_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, 100673245);
				IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, 100673246);
			}

			// Token: 0x060082AE RID: 33454 RVA: 0x00215EA7 File Offset: 0x002140A7
			public TrigonometricBone(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x17002C77 RID: 11383
			// (get) Token: 0x060082AF RID: 33455 RVA: 0x00216F54 File Offset: 0x00215154
			// (set) Token: 0x060082B0 RID: 33456 RVA: 0x00216F7C File Offset: 0x0021517C
			public unsafe Quaternion targetToLocalSpace
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.TrigonometricBone.NativeFieldInfoPtr_targetToLocalSpace);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.TrigonometricBone.NativeFieldInfoPtr_targetToLocalSpace)) = value;
				}
			}

			// Token: 0x17002C78 RID: 11384
			// (get) Token: 0x060082B1 RID: 33457 RVA: 0x00216FA0 File Offset: 0x002151A0
			// (set) Token: 0x060082B2 RID: 33458 RVA: 0x00216FC8 File Offset: 0x002151C8
			public unsafe Vector3 defaultLocalBendNormal
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.TrigonometricBone.NativeFieldInfoPtr_defaultLocalBendNormal);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverTrigonometric.TrigonometricBone.NativeFieldInfoPtr_defaultLocalBendNormal)) = value;
				}
			}

			// Token: 0x04005755 RID: 22357
			private static readonly IntPtr NativeFieldInfoPtr_targetToLocalSpace;

			// Token: 0x04005756 RID: 22358
			private static readonly IntPtr NativeFieldInfoPtr_defaultLocalBendNormal;

			// Token: 0x04005757 RID: 22359
			private static readonly IntPtr NativeMethodInfoPtr_Initiate_Public_Void_Vector3_Vector3_0;

			// Token: 0x04005758 RID: 22360
			private static readonly IntPtr NativeMethodInfoPtr_GetRotation_Public_Quaternion_Vector3_Vector3_0;

			// Token: 0x04005759 RID: 22361
			private static readonly IntPtr NativeMethodInfoPtr_GetBendNormalFromCurrentRotation_Public_Vector3_0;

			// Token: 0x0400575A RID: 22362
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
		}
	}
}
