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: 0x02000441 RID: 1089
	[Serializable]
	public class IKSolverLimb : IKSolverTrigonometric
	{
		// Token: 0x0600820E RID: 33294 RVA: 0x00213DE8 File Offset: 0x00211FE8
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 599620, RefRangeEnd = 599621, XrefRangeStart = 599619, XrefRangeEnd = 599620, 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: 0x0600820F RID: 33295 RVA: 0x00213E2C File Offset: 0x0021202C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 599622, RefRangeEnd = 599623, XrefRangeStart = 599621, XrefRangeEnd = 599622, 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: 0x06008210 RID: 33296 RVA: 0x00213E70 File Offset: 0x00212070
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599623, XrefRangeEnd = 599650, 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: 0x06008211 RID: 33297 RVA: 0x00213EC0 File Offset: 0x002120C0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599650, XrefRangeEnd = 599655, 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: 0x06008212 RID: 33298 RVA: 0x00213F10 File Offset: 0x00212110
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 599655, XrefRangeEnd = 599658, 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: 0x06008213 RID: 33299 RVA: 0x00213F60 File Offset: 0x00212160
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 599666, RefRangeEnd = 599668, XrefRangeStart = 599658, XrefRangeEnd = 599666, 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: 0x06008214 RID: 33300 RVA: 0x00213FAC File Offset: 0x002121AC
		[CallerCount(4)]
		[CachedScanResults(RefRangeStart = 599676, RefRangeEnd = 599680, XrefRangeStart = 599668, XrefRangeEnd = 599676, 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: 0x17002C57 RID: 11351
		// (get) Token: 0x06008215 RID: 33301 RVA: 0x0021400C File Offset: 0x0021220C
		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: 0x06008216 RID: 33302 RVA: 0x00214064 File Offset: 0x00212264
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 599685, RefRangeEnd = 599687, XrefRangeStart = 599680, XrefRangeEnd = 599685, 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: 0x06008217 RID: 33303 RVA: 0x002140C0 File Offset: 0x002122C0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 599706, RefRangeEnd = 599707, XrefRangeStart = 599687, XrefRangeEnd = 599706, 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: 0x06008218 RID: 33304 RVA: 0x00214110 File Offset: 0x00212310
		// 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, 100673178);
			IKSolverLimb.NativeMethodInfoPtr_MaintainBend_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673179);
			IKSolverLimb.NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673180);
			IKSolverLimb.NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673181);
			IKSolverLimb.NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673182);
			IKSolverLimb.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673183);
			IKSolverLimb.NativeMethodInfoPtr__ctor_Public_Void_AvatarIKGoal_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673184);
			IKSolverLimb.NativeMethodInfoPtr_get_axisDirections_Private_get_Il2CppStructArray_1_AxisDirection_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673185);
			IKSolverLimb.NativeMethodInfoPtr_StoreAxisDirections_Private_Void_byref_Il2CppStructArray_1_AxisDirection_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673186);
			IKSolverLimb.NativeMethodInfoPtr_GetModifiedBendNormal_Private_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IKSolverLimb>.NativeClassPtr, 100673187);
		}

		// Token: 0x06008219 RID: 33305 RVA: 0x00214348 File Offset: 0x00212548
		public IKSolverLimb(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002C47 RID: 11335
		// (get) Token: 0x0600821A RID: 33306 RVA: 0x00214354 File Offset: 0x00212554
		// (set) Token: 0x0600821B RID: 33307 RVA: 0x0021437C File Offset: 0x0021257C
		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: 0x17002C48 RID: 11336
		// (get) Token: 0x0600821C RID: 33308 RVA: 0x002143A0 File Offset: 0x002125A0
		// (set) Token: 0x0600821D RID: 33309 RVA: 0x002143C8 File Offset: 0x002125C8
		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: 0x17002C49 RID: 11337
		// (get) Token: 0x0600821E RID: 33310 RVA: 0x002143EC File Offset: 0x002125EC
		// (set) Token: 0x0600821F RID: 33311 RVA: 0x00214414 File Offset: 0x00212614
		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: 0x17002C4A RID: 11338
		// (get) Token: 0x06008220 RID: 33312 RVA: 0x00214438 File Offset: 0x00212638
		// (set) Token: 0x06008221 RID: 33313 RVA: 0x00214460 File Offset: 0x00212660
		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: 0x17002C4B RID: 11339
		// (get) Token: 0x06008222 RID: 33314 RVA: 0x00214484 File Offset: 0x00212684
		// (set) Token: 0x06008223 RID: 33315 RVA: 0x002144B8 File Offset: 0x002126B8
		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: 0x17002C4C RID: 11340
		// (get) Token: 0x06008224 RID: 33316 RVA: 0x002144E0 File Offset: 0x002126E0
		// (set) Token: 0x06008225 RID: 33317 RVA: 0x00214508 File Offset: 0x00212708
		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: 0x17002C4D RID: 11341
		// (get) Token: 0x06008226 RID: 33318 RVA: 0x0021452C File Offset: 0x0021272C
		// (set) Token: 0x06008227 RID: 33319 RVA: 0x00214554 File Offset: 0x00212754
		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: 0x17002C4E RID: 11342
		// (get) Token: 0x06008228 RID: 33320 RVA: 0x00214578 File Offset: 0x00212778
		// (set) Token: 0x06008229 RID: 33321 RVA: 0x002145A0 File Offset: 0x002127A0
		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: 0x17002C4F RID: 11343
		// (get) Token: 0x0600822A RID: 33322 RVA: 0x002145C4 File Offset: 0x002127C4
		// (set) Token: 0x0600822B RID: 33323 RVA: 0x002145EC File Offset: 0x002127EC
		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: 0x17002C50 RID: 11344
		// (get) Token: 0x0600822C RID: 33324 RVA: 0x00214610 File Offset: 0x00212810
		// (set) Token: 0x0600822D RID: 33325 RVA: 0x00214638 File Offset: 0x00212838
		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: 0x17002C51 RID: 11345
		// (get) Token: 0x0600822E RID: 33326 RVA: 0x0021465C File Offset: 0x0021285C
		// (set) Token: 0x0600822F RID: 33327 RVA: 0x00214684 File Offset: 0x00212884
		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: 0x17002C52 RID: 11346
		// (get) Token: 0x06008230 RID: 33328 RVA: 0x002146A8 File Offset: 0x002128A8
		// (set) Token: 0x06008231 RID: 33329 RVA: 0x002146D0 File Offset: 0x002128D0
		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: 0x17002C53 RID: 11347
		// (get) Token: 0x06008232 RID: 33330 RVA: 0x002146F4 File Offset: 0x002128F4
		// (set) Token: 0x06008233 RID: 33331 RVA: 0x0021471C File Offset: 0x0021291C
		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: 0x17002C54 RID: 11348
		// (get) Token: 0x06008234 RID: 33332 RVA: 0x00214740 File Offset: 0x00212940
		// (set) Token: 0x06008235 RID: 33333 RVA: 0x00214768 File Offset: 0x00212968
		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: 0x17002C55 RID: 11349
		// (get) Token: 0x06008236 RID: 33334 RVA: 0x0021478C File Offset: 0x0021298C
		// (set) Token: 0x06008237 RID: 33335 RVA: 0x002147C0 File Offset: 0x002129C0
		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: 0x17002C56 RID: 11350
		// (get) Token: 0x06008238 RID: 33336 RVA: 0x002147E8 File Offset: 0x002129E8
		// (set) Token: 0x06008239 RID: 33337 RVA: 0x0021481C File Offset: 0x00212A1C
		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: 0x040056E0 RID: 22240
		private static readonly IntPtr NativeFieldInfoPtr_goal;

		// Token: 0x040056E1 RID: 22241
		private static readonly IntPtr NativeFieldInfoPtr_bendModifier;

		// Token: 0x040056E2 RID: 22242
		private static readonly IntPtr NativeFieldInfoPtr_maintainRotationWeight;

		// Token: 0x040056E3 RID: 22243
		private static readonly IntPtr NativeFieldInfoPtr_bendModifierWeight;

		// Token: 0x040056E4 RID: 22244
		private static readonly IntPtr NativeFieldInfoPtr_bendGoal;

		// Token: 0x040056E5 RID: 22245
		private static readonly IntPtr NativeFieldInfoPtr_maintainBendFor1Frame;

		// Token: 0x040056E6 RID: 22246
		private static readonly IntPtr NativeFieldInfoPtr_maintainRotationFor1Frame;

		// Token: 0x040056E7 RID: 22247
		private static readonly IntPtr NativeFieldInfoPtr_defaultRootRotation;

		// Token: 0x040056E8 RID: 22248
		private static readonly IntPtr NativeFieldInfoPtr_parentDefaultRotation;

		// Token: 0x040056E9 RID: 22249
		private static readonly IntPtr NativeFieldInfoPtr_bone3RotationBeforeSolve;

		// Token: 0x040056EA RID: 22250
		private static readonly IntPtr NativeFieldInfoPtr_maintainRotation;

		// Token: 0x040056EB RID: 22251
		private static readonly IntPtr NativeFieldInfoPtr_bone3DefaultRotation;

		// Token: 0x040056EC RID: 22252
		private static readonly IntPtr NativeFieldInfoPtr__bendNormal;

		// Token: 0x040056ED RID: 22253
		private static readonly IntPtr NativeFieldInfoPtr_animationNormal;

		// Token: 0x040056EE RID: 22254
		private static readonly IntPtr NativeFieldInfoPtr_axisDirectionsLeft;

		// Token: 0x040056EF RID: 22255
		private static readonly IntPtr NativeFieldInfoPtr_axisDirectionsRight;

		// Token: 0x040056F0 RID: 22256
		private static readonly IntPtr NativeMethodInfoPtr_MaintainRotation_Public_Void_0;

		// Token: 0x040056F1 RID: 22257
		private static readonly IntPtr NativeMethodInfoPtr_MaintainBend_Public_Void_0;

		// Token: 0x040056F2 RID: 22258
		private static readonly IntPtr NativeMethodInfoPtr_OnInitiateVirtual_Protected_Virtual_Void_0;

		// Token: 0x040056F3 RID: 22259
		private static readonly IntPtr NativeMethodInfoPtr_OnUpdateVirtual_Protected_Virtual_Void_0;

		// Token: 0x040056F4 RID: 22260
		private static readonly IntPtr NativeMethodInfoPtr_OnPostSolveVirtual_Protected_Virtual_Void_0;

		// Token: 0x040056F5 RID: 22261
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x040056F6 RID: 22262
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_AvatarIKGoal_0;

		// Token: 0x040056F7 RID: 22263
		private static readonly IntPtr NativeMethodInfoPtr_get_axisDirections_Private_get_Il2CppStructArray_1_AxisDirection_0;

		// Token: 0x040056F8 RID: 22264
		private static readonly IntPtr NativeMethodInfoPtr_StoreAxisDirections_Private_Void_byref_Il2CppStructArray_1_AxisDirection_0;

		// Token: 0x040056F9 RID: 22265
		private static readonly IntPtr NativeMethodInfoPtr_GetModifiedBendNormal_Private_Vector3_0;

		// Token: 0x02000442 RID: 1090
		[Serializable]
		public enum BendModifier
		{
			// Token: 0x040056FB RID: 22267
			Animation,
			// Token: 0x040056FC RID: 22268
			Target,
			// Token: 0x040056FD RID: 22269
			Parent,
			// Token: 0x040056FE RID: 22270
			Arm,
			// Token: 0x040056FF RID: 22271
			Goal
		}

		// Token: 0x02000443 RID: 1091
		[Serializable]
		[StructLayout(LayoutKind.Explicit)]
		public struct AxisDirection
		{
			// Token: 0x0600823A RID: 33338 RVA: 0x00214844 File Offset: 0x00212A44
			[CallerCount(4)]
			[CachedScanResults(RefRangeStart = 599615, RefRangeEnd = 599619, XrefRangeStart = 599613, XrefRangeEnd = 599615, 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: 0x0600823B RID: 33339 RVA: 0x0021489C File Offset: 0x00212A9C
			// 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, 100673188);
			}

			// Token: 0x0600823C RID: 33340 RVA: 0x00214917 File Offset: 0x00212B17
			public Il2CppSystem.Object BoxIl2CppObject()
			{
				return new Il2CppSystem.Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<IKSolverLimb.AxisDirection>.NativeClassPtr, ref this));
			}

			// Token: 0x04005700 RID: 22272
			private static readonly IntPtr NativeFieldInfoPtr_direction;

			// Token: 0x04005701 RID: 22273
			private static readonly IntPtr NativeFieldInfoPtr_axis;

			// Token: 0x04005702 RID: 22274
			private static readonly IntPtr NativeFieldInfoPtr_dot;

			// Token: 0x04005703 RID: 22275
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0;

			// Token: 0x04005704 RID: 22276
			[FieldOffset(0)]
			public Vector3 direction;

			// Token: 0x04005705 RID: 22277
			[FieldOffset(12)]
			public Vector3 axis;

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