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

namespace RootMotion.FinalIK
{
	// Token: 0x02000499 RID: 1177
	[Serializable]
	public class IKSolverLimb : IKSolverTrigonometric
	{
		// Token: 0x06008A61 RID: 35425 RVA: 0x00236B24 File Offset: 0x00234D24
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 631922, RefRangeEnd = 631923, XrefRangeStart = 631921, XrefRangeEnd = 631922, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void MaintainRotation()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.NativeMethodInfoPtr_MaintainRotation_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008A62 RID: 35426 RVA: 0x00236B68 File Offset: 0x00234D68
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 631924, RefRangeEnd = 631925, XrefRangeStart = 631923, XrefRangeEnd = 631924, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void MaintainBend()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.NativeMethodInfoPtr_MaintainBend_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008A63 RID: 35427 RVA: 0x00236BAC File Offset: 0x00234DAC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631925, XrefRangeEnd = 631952, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override 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), IKSolverLimb.NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008A64 RID: 35428 RVA: 0x00236BFC File Offset: 0x00234DFC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631952, XrefRangeEnd = 631957, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override 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), IKSolverLimb.NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008A65 RID: 35429 RVA: 0x00236C4C File Offset: 0x00234E4C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 631957, XrefRangeEnd = 631960, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override 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), IKSolverLimb.NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008A66 RID: 35430 RVA: 0x00236C9C File Offset: 0x00234E9C
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 631968, RefRangeEnd = 631970, XrefRangeStart = 631960, XrefRangeEnd = 631968, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IKSolverLimb()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008A67 RID: 35431 RVA: 0x00236CE8 File Offset: 0x00234EE8
		[CallerCount(4)]
		[CachedScanResults(RefRangeStart = 631978, RefRangeEnd = 631982, XrefRangeStart = 631970, XrefRangeEnd = 631978, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IKSolverLimb(AvatarIKGoal goal)
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr))
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref goal;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.NativeMethodInfoPtr__ctor_Public_Void_AvatarIKGoal_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x17002EF2 RID: 12018
		// (get) Token: 0x06008A68 RID: 35432 RVA: 0x00236D48 File Offset: 0x00234F48
		public unsafe Il2CppStructArray<IKSolverLimb.AxisDirection> axisDirections
		{
			[CallerCount(0)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.NativeMethodInfoPtr_get_axisDirections_Private_get_Il2CppStructArray_1_AxisDirection_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new Il2CppStructArray<IKSolverLimb.AxisDirection>(intPtr3) : null;
			}
		}

		// Token: 0x06008A69 RID: 35433 RVA: 0x00236DA0 File Offset: 0x00234FA0
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 631987, RefRangeEnd = 631989, XrefRangeStart = 631982, XrefRangeEnd = 631987, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void StoreAxisDirections(ref Il2CppStructArray<IKSolverLimb.AxisDirection> axisDirections)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtrNotNull(axisDirections);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.NativeMethodInfoPtr_StoreAxisDirections_Private_Void_byref_Il2CppStructArray_1_AxisDirection_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008A6A RID: 35434 RVA: 0x00236DFC File Offset: 0x00234FFC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 632008, RefRangeEnd = 632009, XrefRangeStart = 631989, XrefRangeEnd = 632008, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Vector3 GetModifiedBendNormal()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.NativeMethodInfoPtr_GetModifiedBendNormal_Private_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008A6B RID: 35435 RVA: 0x00236E4C File Offset: 0x0023504C
		// Note: this type is marked as 'beforefieldinit'.
		static IKSolverLimb()
		{
			Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.FinalIK", "IKSolverLimb");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr);
			IKSolverLimb.NativeFieldInfoPtr_goal = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "goal");
			IKSolverLimb.NativeFieldInfoPtr_bendModifier = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "bendModifier");
			IKSolverLimb.NativeFieldInfoPtr_maintainRotationWeight = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "maintainRotationWeight");
			IKSolverLimb.NativeFieldInfoPtr_bendModifierWeight = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "bendModifierWeight");
			IKSolverLimb.NativeFieldInfoPtr_bendGoal = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "bendGoal");
			IKSolverLimb.NativeFieldInfoPtr_maintainBendFor1Frame = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "maintainBendFor1Frame");
			IKSolverLimb.NativeFieldInfoPtr_maintainRotationFor1Frame = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "maintainRotationFor1Frame");
			IKSolverLimb.NativeFieldInfoPtr_defaultRootRotation = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "defaultRootRotation");
			IKSolverLimb.NativeFieldInfoPtr_parentDefaultRotation = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "parentDefaultRotation");
			IKSolverLimb.NativeFieldInfoPtr_bone3RotationBeforeSolve = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "bone3RotationBeforeSolve");
			IKSolverLimb.NativeFieldInfoPtr_maintainRotation = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "maintainRotation");
			IKSolverLimb.NativeFieldInfoPtr_bone3DefaultRotation = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "bone3DefaultRotation");
			IKSolverLimb.NativeFieldInfoPtr__bendNormal = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "_bendNormal");
			IKSolverLimb.NativeFieldInfoPtr_animationNormal = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "animationNormal");
			IKSolverLimb.NativeFieldInfoPtr_axisDirectionsLeft = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "axisDirectionsLeft");
			IKSolverLimb.NativeFieldInfoPtr_axisDirectionsRight = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "axisDirectionsRight");
			IKSolverLimb.NativeMethodInfoPtr_MaintainRotation_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673891);
			IKSolverLimb.NativeMethodInfoPtr_MaintainBend_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673892);
			IKSolverLimb.NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673893);
			IKSolverLimb.NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673894);
			IKSolverLimb.NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673895);
			IKSolverLimb.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673896);
			IKSolverLimb.NativeMethodInfoPtr__ctor_Public_Void_AvatarIKGoal_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673897);
			IKSolverLimb.NativeMethodInfoPtr_get_axisDirections_Private_get_Il2CppStructArray_1_AxisDirection_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673898);
			IKSolverLimb.NativeMethodInfoPtr_StoreAxisDirections_Private_Void_byref_Il2CppStructArray_1_AxisDirection_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673899);
			IKSolverLimb.NativeMethodInfoPtr_GetModifiedBendNormal_Private_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673900);
		}

		// Token: 0x06008A6C RID: 35436 RVA: 0x00237084 File Offset: 0x00235284
		public IKSolverLimb(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002EE2 RID: 12002
		// (get) Token: 0x06008A6D RID: 35437 RVA: 0x00237090 File Offset: 0x00235290
		// (set) Token: 0x06008A6E RID: 35438 RVA: 0x002370B8 File Offset: 0x002352B8
		public unsafe AvatarIKGoal goal
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_goal);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_goal)) = value;
			}
		}

		// Token: 0x17002EE3 RID: 12003
		// (get) Token: 0x06008A6F RID: 35439 RVA: 0x002370DC File Offset: 0x002352DC
		// (set) Token: 0x06008A70 RID: 35440 RVA: 0x00237104 File Offset: 0x00235304
		public unsafe IKSolverLimb.BendModifier bendModifier
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bendModifier);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bendModifier)) = value;
			}
		}

		// Token: 0x17002EE4 RID: 12004
		// (get) Token: 0x06008A71 RID: 35441 RVA: 0x00237128 File Offset: 0x00235328
		// (set) Token: 0x06008A72 RID: 35442 RVA: 0x00237150 File Offset: 0x00235350
		public unsafe float maintainRotationWeight
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainRotationWeight);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainRotationWeight)) = value;
			}
		}

		// Token: 0x17002EE5 RID: 12005
		// (get) Token: 0x06008A73 RID: 35443 RVA: 0x00237174 File Offset: 0x00235374
		// (set) Token: 0x06008A74 RID: 35444 RVA: 0x0023719C File Offset: 0x0023539C
		public unsafe float bendModifierWeight
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bendModifierWeight);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bendModifierWeight)) = value;
			}
		}

		// Token: 0x17002EE6 RID: 12006
		// (get) Token: 0x06008A75 RID: 35445 RVA: 0x002371C0 File Offset: 0x002353C0
		// (set) Token: 0x06008A76 RID: 35446 RVA: 0x002371F4 File Offset: 0x002353F4
		public unsafe Transform bendGoal
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bendGoal);
				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(IKSolverLimb.NativeFieldInfoPtr_bendGoal), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002EE7 RID: 12007
		// (get) Token: 0x06008A77 RID: 35447 RVA: 0x0023721C File Offset: 0x0023541C
		// (set) Token: 0x06008A78 RID: 35448 RVA: 0x00237244 File Offset: 0x00235444
		public unsafe bool maintainBendFor1Frame
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainBendFor1Frame);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainBendFor1Frame)) = value;
			}
		}

		// Token: 0x17002EE8 RID: 12008
		// (get) Token: 0x06008A79 RID: 35449 RVA: 0x00237268 File Offset: 0x00235468
		// (set) Token: 0x06008A7A RID: 35450 RVA: 0x00237290 File Offset: 0x00235490
		public unsafe bool maintainRotationFor1Frame
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainRotationFor1Frame);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainRotationFor1Frame)) = value;
			}
		}

		// Token: 0x17002EE9 RID: 12009
		// (get) Token: 0x06008A7B RID: 35451 RVA: 0x002372B4 File Offset: 0x002354B4
		// (set) Token: 0x06008A7C RID: 35452 RVA: 0x002372DC File Offset: 0x002354DC
		public unsafe Quaternion defaultRootRotation
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_defaultRootRotation);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_defaultRootRotation)) = value;
			}
		}

		// Token: 0x17002EEA RID: 12010
		// (get) Token: 0x06008A7D RID: 35453 RVA: 0x00237300 File Offset: 0x00235500
		// (set) Token: 0x06008A7E RID: 35454 RVA: 0x00237328 File Offset: 0x00235528
		public unsafe Quaternion parentDefaultRotation
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_parentDefaultRotation);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_parentDefaultRotation)) = value;
			}
		}

		// Token: 0x17002EEB RID: 12011
		// (get) Token: 0x06008A7F RID: 35455 RVA: 0x0023734C File Offset: 0x0023554C
		// (set) Token: 0x06008A80 RID: 35456 RVA: 0x00237374 File Offset: 0x00235574
		public unsafe Quaternion bone3RotationBeforeSolve
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bone3RotationBeforeSolve);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bone3RotationBeforeSolve)) = value;
			}
		}

		// Token: 0x17002EEC RID: 12012
		// (get) Token: 0x06008A81 RID: 35457 RVA: 0x00237398 File Offset: 0x00235598
		// (set) Token: 0x06008A82 RID: 35458 RVA: 0x002373C0 File Offset: 0x002355C0
		public unsafe Quaternion maintainRotation
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainRotation);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_maintainRotation)) = value;
			}
		}

		// Token: 0x17002EED RID: 12013
		// (get) Token: 0x06008A83 RID: 35459 RVA: 0x002373E4 File Offset: 0x002355E4
		// (set) Token: 0x06008A84 RID: 35460 RVA: 0x0023740C File Offset: 0x0023560C
		public unsafe Quaternion bone3DefaultRotation
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bone3DefaultRotation);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_bone3DefaultRotation)) = value;
			}
		}

		// Token: 0x17002EEE RID: 12014
		// (get) Token: 0x06008A85 RID: 35461 RVA: 0x00237430 File Offset: 0x00235630
		// (set) Token: 0x06008A86 RID: 35462 RVA: 0x00237458 File Offset: 0x00235658
		public unsafe Vector3 _bendNormal
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr__bendNormal);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr__bendNormal)) = value;
			}
		}

		// Token: 0x17002EEF RID: 12015
		// (get) Token: 0x06008A87 RID: 35463 RVA: 0x0023747C File Offset: 0x0023567C
		// (set) Token: 0x06008A88 RID: 35464 RVA: 0x002374A4 File Offset: 0x002356A4
		public unsafe Vector3 animationNormal
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_animationNormal);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_animationNormal)) = value;
			}
		}

		// Token: 0x17002EF0 RID: 12016
		// (get) Token: 0x06008A89 RID: 35465 RVA: 0x002374C8 File Offset: 0x002356C8
		// (set) Token: 0x06008A8A RID: 35466 RVA: 0x002374FC File Offset: 0x002356FC
		public unsafe Il2CppStructArray<IKSolverLimb.AxisDirection> axisDirectionsLeft
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_axisDirectionsLeft);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStructArray<IKSolverLimb.AxisDirection>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_axisDirectionsLeft), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002EF1 RID: 12017
		// (get) Token: 0x06008A8B RID: 35467 RVA: 0x00237524 File Offset: 0x00235724
		// (set) Token: 0x06008A8C RID: 35468 RVA: 0x00237558 File Offset: 0x00235758
		public unsafe Il2CppStructArray<IKSolverLimb.AxisDirection> axisDirectionsRight
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_axisDirectionsRight);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStructArray<IKSolverLimb.AxisDirection>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(IKSolverLimb.NativeFieldInfoPtr_axisDirectionsRight), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04005C89 RID: 23689
		private static readonly IntPtr NativeFieldInfoPtr_goal;

		// Token: 0x04005C8A RID: 23690
		private static readonly IntPtr NativeFieldInfoPtr_bendModifier;

		// Token: 0x04005C8B RID: 23691
		private static readonly IntPtr NativeFieldInfoPtr_maintainRotationWeight;

		// Token: 0x04005C8C RID: 23692
		private static readonly IntPtr NativeFieldInfoPtr_bendModifierWeight;

		// Token: 0x04005C8D RID: 23693
		private static readonly IntPtr NativeFieldInfoPtr_bendGoal;

		// Token: 0x04005C8E RID: 23694
		private static readonly IntPtr NativeFieldInfoPtr_maintainBendFor1Frame;

		// Token: 0x04005C8F RID: 23695
		private static readonly IntPtr NativeFieldInfoPtr_maintainRotationFor1Frame;

		// Token: 0x04005C90 RID: 23696
		private static readonly IntPtr NativeFieldInfoPtr_defaultRootRotation;

		// Token: 0x04005C91 RID: 23697
		private static readonly IntPtr NativeFieldInfoPtr_parentDefaultRotation;

		// Token: 0x04005C92 RID: 23698
		private static readonly IntPtr NativeFieldInfoPtr_bone3RotationBeforeSolve;

		// Token: 0x04005C93 RID: 23699
		private static readonly IntPtr NativeFieldInfoPtr_maintainRotation;

		// Token: 0x04005C94 RID: 23700
		private static readonly IntPtr NativeFieldInfoPtr_bone3DefaultRotation;

		// Token: 0x04005C95 RID: 23701
		private static readonly IntPtr NativeFieldInfoPtr__bendNormal;

		// Token: 0x04005C96 RID: 23702
		private static readonly IntPtr NativeFieldInfoPtr_animationNormal;

		// Token: 0x04005C97 RID: 23703
		private static readonly IntPtr NativeFieldInfoPtr_axisDirectionsLeft;

		// Token: 0x04005C98 RID: 23704
		private static readonly IntPtr NativeFieldInfoPtr_axisDirectionsRight;

		// Token: 0x04005C99 RID: 23705
		private static readonly IntPtr NativeMethodInfoPtr_MaintainRotation_Public_Void_0;

		// Token: 0x04005C9A RID: 23706
		private static readonly IntPtr NativeMethodInfoPtr_MaintainBend_Public_Void_0;

		// Token: 0x04005C9B RID: 23707
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_Void_0;

		// Token: 0x04005C9C RID: 23708
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_Void_0;

		// Token: 0x04005C9D RID: 23709
		private static readonly IntPtr NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_Void_0;

		// Token: 0x04005C9E RID: 23710
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x04005C9F RID: 23711
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_AvatarIKGoal_0;

		// Token: 0x04005CA0 RID: 23712
		private static readonly IntPtr NativeMethodInfoPtr_get_axisDirections_Private_get_Il2CppStructArray_1_AxisDirection_0;

		// Token: 0x04005CA1 RID: 23713
		private static readonly IntPtr NativeMethodInfoPtr_StoreAxisDirections_Private_Void_byref_Il2CppStructArray_1_AxisDirection_0;

		// Token: 0x04005CA2 RID: 23714
		private static readonly IntPtr NativeMethodInfoPtr_GetModifiedBendNormal_Private_Vector3_0;

		// Token: 0x0200049A RID: 1178
		[Serializable]
		public enum BendModifier
		{
			// Token: 0x04005CA4 RID: 23716
			Animation,
			// Token: 0x04005CA5 RID: 23717
			Target,
			// Token: 0x04005CA6 RID: 23718
			Parent,
			// Token: 0x04005CA7 RID: 23719
			Arm,
			// Token: 0x04005CA8 RID: 23720
			Goal
		}

		// Token: 0x0200049B RID: 1179
		[Serializable]
		[StructLayout(2)]
		public struct AxisDirection
		{
			// Token: 0x06008A8D RID: 35469 RVA: 0x00237580 File Offset: 0x00235780
			[CallerCount(4)]
			[CachedScanResults(RefRangeStart = 631917, RefRangeEnd = 631921, XrefRangeStart = 631915, XrefRangeEnd = 631917, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe AxisDirection(Vector3 direction, Vector3 axis)
			{
				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 axis;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IKSolverLimb.AxisDirection.NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0, ref this, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x06008A8E RID: 35470 RVA: 0x002375D8 File Offset: 0x002357D8
			// Note: this type is marked as 'beforefieldinit'.
			static AxisDirection()
			{
				Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, "AxisDirection");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr);
				IKSolverLimb.AxisDirection.NativeFieldInfoPtr_direction = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr, "direction");
				IKSolverLimb.AxisDirection.NativeFieldInfoPtr_axis = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr, "axis");
				IKSolverLimb.AxisDirection.NativeFieldInfoPtr_dot = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr, "dot");
				IKSolverLimb.AxisDirection.NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr, 100673901);
			}

			// Token: 0x06008A8F RID: 35471 RVA: 0x00237653 File Offset: 0x00235853
			public Il2CppSystem.Object BoxIl2CppObject()
			{
				return new Il2CppSystem.Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr, ref this));
			}

			// Token: 0x04005CA9 RID: 23721
			private static readonly IntPtr NativeFieldInfoPtr_direction;

			// Token: 0x04005CAA RID: 23722
			private static readonly IntPtr NativeFieldInfoPtr_axis;

			// Token: 0x04005CAB RID: 23723
			private static readonly IntPtr NativeFieldInfoPtr_dot;

			// Token: 0x04005CAC RID: 23724
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0;

			// Token: 0x04005CAD RID: 23725
			[FieldOffset(0)]
			public Vector3 direction;

			// Token: 0x04005CAE RID: 23726
			[FieldOffset(12)]
			public Vector3 axis;

			// Token: 0x04005CAF RID: 23727
			[FieldOffset(24)]
			public float dot;
		}
	}
}
