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

namespace RootMotion.FinalIK
{
	// Token: 0x0200049E RID: 1182
	[Serializable]
	public class IKSolverTrigonometric : IKSolver
	{
		// Token: 0x06008AD1 RID: 35537 RVA: 0x00238BEC File Offset: 0x00236DEC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 632337, RefRangeEnd = 632338, XrefRangeStart = 632331, XrefRangeEnd = 632337, 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: 0x06008AD2 RID: 35538 RVA: 0x00238C54 File Offset: 0x00236E54
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632338, XrefRangeEnd = 632345, 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: 0x06008AD3 RID: 35539 RVA: 0x00238C98 File Offset: 0x00236E98
		[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: 0x06008AD4 RID: 35540 RVA: 0x00238CEC File Offset: 0x00236EEC
		[CallerCount(4)]
		[CachedScanResults(RefRangeStart = 632346, RefRangeEnd = 632350, XrefRangeStart = 632345, XrefRangeEnd = 632346, 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: 0x06008AD5 RID: 35541 RVA: 0x00238D40 File Offset: 0x00236F40
		[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: 0x06008AD6 RID: 35542 RVA: 0x00238D90 File Offset: 0x00236F90
		[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: 0x06008AD7 RID: 35543 RVA: 0x00238DE0 File Offset: 0x00236FE0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632350, XrefRangeEnd = 632359, 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: 0x06008AD8 RID: 35544 RVA: 0x00238E44 File Offset: 0x00237044
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632359, XrefRangeEnd = 632369, 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: 0x06008AD9 RID: 35545 RVA: 0x00238EBC File Offset: 0x002370BC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632369, XrefRangeEnd = 632373, 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: 0x06008ADA RID: 35546 RVA: 0x00238F0C File Offset: 0x0023710C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632373, XrefRangeEnd = 632377, 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: 0x06008ADB RID: 35547 RVA: 0x00238F5C File Offset: 0x0023715C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632377, XrefRangeEnd = 632417, 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: 0x06008ADC RID: 35548 RVA: 0x00238FE8 File Offset: 0x002371E8
		[CallerCount(9)]
		[CachedScanResults(RefRangeStart = 632421, RefRangeEnd = 632430, XrefRangeStart = 632417, XrefRangeEnd = 632421, 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: 0x06008ADD RID: 35549 RVA: 0x00239098 File Offset: 0x00237298
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632430, XrefRangeEnd = 632470, 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: 0x06008ADE RID: 35550 RVA: 0x0023914C File Offset: 0x0023734C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632470, XrefRangeEnd = 632482, 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: 0x06008ADF RID: 35551 RVA: 0x002391EC File Offset: 0x002373EC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632482, XrefRangeEnd = 632498, 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: 0x06008AE0 RID: 35552 RVA: 0x0023923C File Offset: 0x0023743C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632498, XrefRangeEnd = 632507, 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: 0x06008AE1 RID: 35553 RVA: 0x0023928C File Offset: 0x0023748C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 632518, RefRangeEnd = 632519, XrefRangeStart = 632507, XrefRangeEnd = 632518, 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: 0x06008AE2 RID: 35554 RVA: 0x002392D0 File Offset: 0x002374D0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 632519, XrefRangeEnd = 632565, 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: 0x06008AE3 RID: 35555 RVA: 0x00239320 File Offset: 0x00237520
		[CallerCount(5874)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5898, XrefRangeStart = 24, XrefRangeEnd = 5898, 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: 0x06008AE4 RID: 35556 RVA: 0x00239370 File Offset: 0x00237570
		[CallerCount(5874)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5898, XrefRangeStart = 24, XrefRangeEnd = 5898, 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: 0x06008AE5 RID: 35557 RVA: 0x002393C0 File Offset: 0x002375C0
		[CallerCount(5874)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5898, XrefRangeStart = 24, XrefRangeEnd = 5898, 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: 0x06008AE6 RID: 35558 RVA: 0x00239410 File Offset: 0x00237610
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 632580, RefRangeEnd = 632581, XrefRangeStart = 632565, XrefRangeEnd = 632580, 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: 0x06008AE7 RID: 35559 RVA: 0x00239488 File Offset: 0x00237688
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 632597, RefRangeEnd = 632600, XrefRangeStart = 632581, XrefRangeEnd = 632597, 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: 0x06008AE8 RID: 35560 RVA: 0x002394D4 File Offset: 0x002376D4
		// 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, 100673933);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetBendPlaneToCurrent_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673934);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetIKRotation_Public_Void_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673935);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetIKRotationWeight_Public_Void_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673936);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetIKRotation_Public_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673937);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetIKRotationWeight_Public_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673938);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673939);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673940);
			IKSolverTrigonometric.NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673941);
			IKSolverTrigonometric.NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673942);
			IKSolverTrigonometric.NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673943);
			IKSolverTrigonometric.NativeMethodInfoPtr_SetChain_Public_Boolean_Transform_Transform_Transform_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673944);
			IKSolverTrigonometric.NativeMethodInfoPtr_Solve_Public_Static_Void_Transform_Transform_Transform_Vector3_Vector3_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673945);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetDirectionToBendPoint_Private_Static_Vector3_Vector3_Single_Vector3_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673946);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673947);
			IKSolverTrigonometric.NativeMethodInfoPtr_IsDirectHierarchy_Private_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673948);
			IKSolverTrigonometric.NativeMethodInfoPtr_InitiateBones_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673949);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673950);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673951);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673952);
			IKSolverTrigonometric.NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673953);
			IKSolverTrigonometric.NativeMethodInfoPtr_GetBendDirection_Protected_Vector3_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673954);
			IKSolverTrigonometric.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric>.NativeClassPtr, 100673955);
		}

		// Token: 0x06008AE9 RID: 35561 RVA: 0x00232E00 File Offset: 0x00231000
		public IKSolverTrigonometric(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002F09 RID: 12041
		// (get) Token: 0x06008AEA RID: 35562 RVA: 0x00239784 File Offset: 0x00237984
		// (set) Token: 0x06008AEB RID: 35563 RVA: 0x002397B8 File Offset: 0x002379B8
		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: 0x17002F0A RID: 12042
		// (get) Token: 0x06008AEC RID: 35564 RVA: 0x002397E0 File Offset: 0x002379E0
		// (set) Token: 0x06008AED RID: 35565 RVA: 0x00239808 File Offset: 0x00237A08
		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: 0x17002F0B RID: 12043
		// (get) Token: 0x06008AEE RID: 35566 RVA: 0x0023982C File Offset: 0x00237A2C
		// (set) Token: 0x06008AEF RID: 35567 RVA: 0x00239854 File Offset: 0x00237A54
		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: 0x17002F0C RID: 12044
		// (get) Token: 0x06008AF0 RID: 35568 RVA: 0x00239878 File Offset: 0x00237A78
		// (set) Token: 0x06008AF1 RID: 35569 RVA: 0x002398A0 File Offset: 0x00237AA0
		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: 0x17002F0D RID: 12045
		// (get) Token: 0x06008AF2 RID: 35570 RVA: 0x002398C4 File Offset: 0x00237AC4
		// (set) Token: 0x06008AF3 RID: 35571 RVA: 0x002398F8 File Offset: 0x00237AF8
		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: 0x17002F0E RID: 12046
		// (get) Token: 0x06008AF4 RID: 35572 RVA: 0x00239920 File Offset: 0x00237B20
		// (set) Token: 0x06008AF5 RID: 35573 RVA: 0x00239954 File Offset: 0x00237B54
		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: 0x17002F0F RID: 12047
		// (get) Token: 0x06008AF6 RID: 35574 RVA: 0x0023997C File Offset: 0x00237B7C
		// (set) Token: 0x06008AF7 RID: 35575 RVA: 0x002399B0 File Offset: 0x00237BB0
		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: 0x17002F10 RID: 12048
		// (get) Token: 0x06008AF8 RID: 35576 RVA: 0x002399D8 File Offset: 0x00237BD8
		// (set) Token: 0x06008AF9 RID: 35577 RVA: 0x00239A00 File Offset: 0x00237C00
		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: 0x17002F11 RID: 12049
		// (get) Token: 0x06008AFA RID: 35578 RVA: 0x00239A24 File Offset: 0x00237C24
		// (set) Token: 0x06008AFB RID: 35579 RVA: 0x00239A4C File Offset: 0x00237C4C
		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: 0x04005CDE RID: 23774
		private static readonly IntPtr NativeFieldInfoPtr_target;

		// Token: 0x04005CDF RID: 23775
		private static readonly IntPtr NativeFieldInfoPtr_IKRotationWeight;

		// Token: 0x04005CE0 RID: 23776
		private static readonly IntPtr NativeFieldInfoPtr_IKRotation;

		// Token: 0x04005CE1 RID: 23777
		private static readonly IntPtr NativeFieldInfoPtr_bendNormal;

		// Token: 0x04005CE2 RID: 23778
		private static readonly IntPtr NativeFieldInfoPtr_bone1;

		// Token: 0x04005CE3 RID: 23779
		private static readonly IntPtr NativeFieldInfoPtr_bone2;

		// Token: 0x04005CE4 RID: 23780
		private static readonly IntPtr NativeFieldInfoPtr_bone3;

		// Token: 0x04005CE5 RID: 23781
		private static readonly IntPtr NativeFieldInfoPtr_weightIKPosition;

		// Token: 0x04005CE6 RID: 23782
		private static readonly IntPtr NativeFieldInfoPtr_directHierarchy;

		// Token: 0x04005CE7 RID: 23783
		private static readonly IntPtr NativeMethodInfoPtr_SetBendGoalPosition_Public_Void_Vector3_Single_0;

		// Token: 0x04005CE8 RID: 23784
		private static readonly IntPtr NativeMethodInfoPtr_SetBendPlaneToCurrent_Public_Void_0;

		// Token: 0x04005CE9 RID: 23785
		private static readonly IntPtr NativeMethodInfoPtr_SetIKRotation_Public_Void_Quaternion_0;

		// Token: 0x04005CEA RID: 23786
		private static readonly IntPtr NativeMethodInfoPtr_SetIKRotationWeight_Public_Void_Single_0;

		// Token: 0x04005CEB RID: 23787
		private static readonly IntPtr NativeMethodInfoPtr_GetIKRotation_Public_Quaternion_0;

		// Token: 0x04005CEC RID: 23788
		private static readonly IntPtr NativeMethodInfoPtr_GetIKRotationWeight_Public_Single_0;

		// Token: 0x04005CED RID: 23789
		private static readonly IntPtr NativeMethodInfoPtr_GetPoints_Public_Virtual_Il2CppReferenceArray_1_Point_0;

		// Token: 0x04005CEE RID: 23790
		private static readonly IntPtr NativeMethodInfoPtr_GetPoint_Public_Virtual_Point_Transform_0;

		// Token: 0x04005CEF RID: 23791
		private static readonly IntPtr NativeMethodInfoPtr_StoreDefaultLocalState_Public_Virtual_Void_0;

		// Token: 0x04005CF0 RID: 23792
		private static readonly IntPtr NativeMethodInfoPtr_FixTransforms_Public_Virtual_Void_0;

		// Token: 0x04005CF1 RID: 23793
		private static readonly IntPtr NativeMethodInfoPtr_IsValid_Public_Virtual_Boolean_byref_String_0;

		// Token: 0x04005CF2 RID: 23794
		private static readonly IntPtr NativeMethodInfoPtr_SetChain_Public_Boolean_Transform_Transform_Transform_Transform_0;

		// Token: 0x04005CF3 RID: 23795
		private static readonly IntPtr NativeMethodInfoPtr_Solve_Public_Static_Void_Transform_Transform_Transform_Vector3_Vector3_Single_0;

		// Token: 0x04005CF4 RID: 23796
		private static readonly IntPtr NativeMethodInfoPtr_GetDirectionToBendPoint_Private_Static_Vector3_Vector3_Single_Vector3_Single_Single_0;

		// Token: 0x04005CF5 RID: 23797
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiate_Protected_Virtual_Void_0;

		// Token: 0x04005CF6 RID: 23798
		private static readonly IntPtr NativeMethodInfoPtr_IsDirectHierarchy_Private_Boolean_0;

		// Token: 0x04005CF7 RID: 23799
		private static readonly IntPtr NativeMethodInfoPtr_InitiateBones_Private_Void_0;

		// Token: 0x04005CF8 RID: 23800
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdate_Protected_Virtual_Void_0;

		// Token: 0x04005CF9 RID: 23801
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_New_Void_0;

		// Token: 0x04005CFA RID: 23802
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_New_Void_0;

		// Token: 0x04005CFB RID: 23803
		private static readonly IntPtr NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_New_Void_0;

		// Token: 0x04005CFC RID: 23804
		private static readonly IntPtr NativeMethodInfoPtr_GetBendDirection_Protected_Vector3_Vector3_Vector3_0;

		// Token: 0x04005CFD RID: 23805
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x0200049F RID: 1183
		[Serializable]
		public class TrigonometricBone : IKSolver.Bone
		{
			// Token: 0x06008AFC RID: 35580 RVA: 0x00239A70 File Offset: 0x00237C70
			[CallerCount(4)]
			[CachedScanResults(RefRangeStart = 632318, RefRangeEnd = 632322, XrefRangeStart = 632311, XrefRangeEnd = 632318, 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: 0x06008AFD RID: 35581 RVA: 0x00239AD8 File Offset: 0x00237CD8
			[CallerCount(2)]
			[CachedScanResults(RefRangeStart = 632324, RefRangeEnd = 632326, XrefRangeStart = 632322, XrefRangeEnd = 632324, 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: 0x06008AFE RID: 35582 RVA: 0x00239B50 File Offset: 0x00237D50
			[CallerCount(3)]
			[CachedScanResults(RefRangeStart = 632328, RefRangeEnd = 632331, XrefRangeStart = 632326, XrefRangeEnd = 632328, 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: 0x06008AFF RID: 35583 RVA: 0x00239BA0 File Offset: 0x00237DA0
			[CallerCount(4)]
			[CachedScanResults(RefRangeStart = 632010, RefRangeEnd = 632014, XrefRangeStart = 632010, XrefRangeEnd = 632014, 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: 0x06008B00 RID: 35584 RVA: 0x00239BEC File Offset: 0x00237DEC
			// 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, 100673956);
				IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_GetRotation_Public_Quaternion_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, 100673957);
				IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr_GetBendNormalFromCurrentRotation_Public_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, 100673958);
				IKSolverTrigonometric.TrigonometricBone.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverTrigonometric.TrigonometricBone>.NativeClassPtr, 100673959);
			}

			// Token: 0x06008B01 RID: 35585 RVA: 0x00238BE3 File Offset: 0x00236DE3
			public TrigonometricBone(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x17002F12 RID: 12050
			// (get) Token: 0x06008B02 RID: 35586 RVA: 0x00239C90 File Offset: 0x00237E90
			// (set) Token: 0x06008B03 RID: 35587 RVA: 0x00239CB8 File Offset: 0x00237EB8
			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: 0x17002F13 RID: 12051
			// (get) Token: 0x06008B04 RID: 35588 RVA: 0x00239CDC File Offset: 0x00237EDC
			// (set) Token: 0x06008B05 RID: 35589 RVA: 0x00239D04 File Offset: 0x00237F04
			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: 0x04005CFE RID: 23806
			private static readonly IntPtr NativeFieldInfoPtr_targetToLocalSpace;

			// Token: 0x04005CFF RID: 23807
			private static readonly IntPtr NativeFieldInfoPtr_defaultLocalBendNormal;

			// Token: 0x04005D00 RID: 23808
			private static readonly IntPtr NativeMethodInfoPtr_Initiate_Public_Void_Vector3_Vector3_0;

			// Token: 0x04005D01 RID: 23809
			private static readonly IntPtr NativeMethodInfoPtr_GetRotation_Public_Quaternion_Vector3_Vector3_0;

			// Token: 0x04005D02 RID: 23810
			private static readonly IntPtr NativeMethodInfoPtr_GetBendNormalFromCurrentRotation_Public_Vector3_0;

			// Token: 0x04005D03 RID: 23811
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
		}
	}
}
