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

namespace RootMotion.FinalIK
{
	// Token: 0x02000476 RID: 1142
	public class AimPoser : MonoBehaviour
	{
		// Token: 0x060087C6 RID: 34758 RVA: 0x0022CEC4 File Offset: 0x0022B0C4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 603991, RefRangeEnd = 603992, XrefRangeStart = 603989, XrefRangeEnd = 603991, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe AimPoser.Pose GetPose(Vector3 localDirection)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref localDirection;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AimPoser.NativeMethodInfoPtr_GetPose_Public_Pose_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new AimPoser.Pose(intPtr3) : null;
			}
		}

		// Token: 0x060087C7 RID: 34759 RVA: 0x0022CF2C File Offset: 0x0022B12C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 603994, RefRangeEnd = 603995, XrefRangeStart = 603992, XrefRangeEnd = 603994, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SetPoseActive(AimPoser.Pose pose)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(pose);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AimPoser.NativeMethodInfoPtr_SetPoseActive_Public_Void_Pose_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x060087C8 RID: 34760 RVA: 0x0022CF88 File Offset: 0x0022B188
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603995, XrefRangeEnd = 604000, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe AimPoser()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<AimPoser>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AimPoser.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060087C9 RID: 34761 RVA: 0x0022CFD4 File Offset: 0x0022B1D4
		// Note: this type is marked as 'beforefieldinit'.
		static AimPoser()
		{
			Il2CppClassPointerStore<AimPoser>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.FinalIK", "AimPoser");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<AimPoser>.NativeClassPtr);
			AimPoser.NativeFieldInfoPtr_angleBuffer = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, "angleBuffer");
			AimPoser.NativeFieldInfoPtr_poses = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, "poses");
			AimPoser.NativeMethodInfoPtr_GetPose_Public_Pose_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, 100673672);
			AimPoser.NativeMethodInfoPtr_SetPoseActive_Public_Void_Pose_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, 100673673);
			AimPoser.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, 100673674);
		}

		// Token: 0x060087CA RID: 34762 RVA: 0x0000351C File Offset: 0x0000171C
		public AimPoser(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002E39 RID: 11833
		// (get) Token: 0x060087CB RID: 34763 RVA: 0x0022D068 File Offset: 0x0022B268
		// (set) Token: 0x060087CC RID: 34764 RVA: 0x0022D090 File Offset: 0x0022B290
		public unsafe float angleBuffer
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.NativeFieldInfoPtr_angleBuffer);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.NativeFieldInfoPtr_angleBuffer)) = value;
			}
		}

		// Token: 0x17002E3A RID: 11834
		// (get) Token: 0x060087CD RID: 34765 RVA: 0x0022D0B4 File Offset: 0x0022B2B4
		// (set) Token: 0x060087CE RID: 34766 RVA: 0x0022D0E8 File Offset: 0x0022B2E8
		public unsafe Il2CppReferenceArray<AimPoser.Pose> poses
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.NativeFieldInfoPtr_poses);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppReferenceArray<AimPoser.Pose>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.NativeFieldInfoPtr_poses), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04005AA9 RID: 23209
		private static readonly IntPtr NativeFieldInfoPtr_angleBuffer;

		// Token: 0x04005AAA RID: 23210
		private static readonly IntPtr NativeFieldInfoPtr_poses;

		// Token: 0x04005AAB RID: 23211
		private static readonly IntPtr NativeMethodInfoPtr_GetPose_Public_Pose_Vector3_0;

		// Token: 0x04005AAC RID: 23212
		private static readonly IntPtr NativeMethodInfoPtr_SetPoseActive_Public_Void_Pose_0;

		// Token: 0x04005AAD RID: 23213
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000477 RID: 1143
		[Serializable]
		public class Pose : Il2CppSystem.Object
		{
			// Token: 0x060087CF RID: 34767 RVA: 0x0022D110 File Offset: 0x0022B310
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 603987, RefRangeEnd = 603988, XrefRangeStart = 603974, XrefRangeEnd = 603987, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe bool IsInDirection(Vector3 d)
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref d;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AimPoser.Pose.NativeMethodInfoPtr_IsInDirection_Public_Boolean_Vector3_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					return *IL2CPP.il2cpp_object_unbox(intPtr);
				}
			}

			// Token: 0x060087D0 RID: 34768 RVA: 0x0022D174 File Offset: 0x0022B374
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 218234, RefRangeEnd = 218235, XrefRangeStart = 218234, XrefRangeEnd = 218235, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void SetAngleBuffer(float value)
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref value;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AimPoser.Pose.NativeMethodInfoPtr_SetAngleBuffer_Public_Void_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}

			// Token: 0x060087D1 RID: 34769 RVA: 0x0022D1C8 File Offset: 0x0022B3C8
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603988, XrefRangeEnd = 603989, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe Pose()
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr))
			{
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AimPoser.Pose.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x060087D2 RID: 34770 RVA: 0x0022D214 File Offset: 0x0022B414
			// Note: this type is marked as 'beforefieldinit'.
			static Pose()
			{
				Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, "Pose");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr);
				AimPoser.Pose.NativeFieldInfoPtr_visualize = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, "visualize");
				AimPoser.Pose.NativeFieldInfoPtr_name = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, "name");
				AimPoser.Pose.NativeFieldInfoPtr_direction = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, "direction");
				AimPoser.Pose.NativeFieldInfoPtr_yaw = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, "yaw");
				AimPoser.Pose.NativeFieldInfoPtr_pitch = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, "pitch");
				AimPoser.Pose.NativeFieldInfoPtr_angleBuffer = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, "angleBuffer");
				AimPoser.Pose.NativeMethodInfoPtr_IsInDirection_Public_Boolean_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, 100673675);
				AimPoser.Pose.NativeMethodInfoPtr_SetAngleBuffer_Public_Void_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, 100673676);
				AimPoser.Pose.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, 100673677);
			}

			// Token: 0x060087D3 RID: 34771 RVA: 0x0000A688 File Offset: 0x00008888
			public Pose(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x17002E3B RID: 11835
			// (get) Token: 0x060087D4 RID: 34772 RVA: 0x0022D2F4 File Offset: 0x0022B4F4
			// (set) Token: 0x060087D5 RID: 34773 RVA: 0x0022D31C File Offset: 0x0022B51C
			public unsafe bool visualize
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_visualize);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_visualize)) = value;
				}
			}

			// Token: 0x17002E3C RID: 11836
			// (get) Token: 0x060087D6 RID: 34774 RVA: 0x0022D340 File Offset: 0x0022B540
			// (set) Token: 0x060087D7 RID: 34775 RVA: 0x0022D369 File Offset: 0x0022B569
			public unsafe string name
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_name);
					return IL2CPP.Il2CppStringToManaged(*intPtr);
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_name), IL2CPP.ManagedStringToIl2Cpp(value));
				}
			}

			// Token: 0x17002E3D RID: 11837
			// (get) Token: 0x060087D8 RID: 34776 RVA: 0x0022D390 File Offset: 0x0022B590
			// (set) Token: 0x060087D9 RID: 34777 RVA: 0x0022D3B8 File Offset: 0x0022B5B8
			public unsafe Vector3 direction
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_direction);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_direction)) = value;
				}
			}

			// Token: 0x17002E3E RID: 11838
			// (get) Token: 0x060087DA RID: 34778 RVA: 0x0022D3DC File Offset: 0x0022B5DC
			// (set) Token: 0x060087DB RID: 34779 RVA: 0x0022D404 File Offset: 0x0022B604
			public unsafe float yaw
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_yaw);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_yaw)) = value;
				}
			}

			// Token: 0x17002E3F RID: 11839
			// (get) Token: 0x060087DC RID: 34780 RVA: 0x0022D428 File Offset: 0x0022B628
			// (set) Token: 0x060087DD RID: 34781 RVA: 0x0022D450 File Offset: 0x0022B650
			public unsafe float pitch
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_pitch);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_pitch)) = value;
				}
			}

			// Token: 0x17002E40 RID: 11840
			// (get) Token: 0x060087DE RID: 34782 RVA: 0x0022D474 File Offset: 0x0022B674
			// (set) Token: 0x060087DF RID: 34783 RVA: 0x0022D49C File Offset: 0x0022B69C
			public unsafe float angleBuffer
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_angleBuffer);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AimPoser.Pose.NativeFieldInfoPtr_angleBuffer)) = value;
				}
			}

			// Token: 0x04005AAE RID: 23214
			private static readonly IntPtr NativeFieldInfoPtr_visualize;

			// Token: 0x04005AAF RID: 23215
			private static readonly IntPtr NativeFieldInfoPtr_name;

			// Token: 0x04005AB0 RID: 23216
			private static readonly IntPtr NativeFieldInfoPtr_direction;

			// Token: 0x04005AB1 RID: 23217
			private static readonly IntPtr NativeFieldInfoPtr_yaw;

			// Token: 0x04005AB2 RID: 23218
			private static readonly IntPtr NativeFieldInfoPtr_pitch;

			// Token: 0x04005AB3 RID: 23219
			private static readonly IntPtr NativeFieldInfoPtr_angleBuffer;

			// Token: 0x04005AB4 RID: 23220
			private static readonly IntPtr NativeMethodInfoPtr_IsInDirection_Public_Boolean_Vector3_0;

			// Token: 0x04005AB5 RID: 23221
			private static readonly IntPtr NativeMethodInfoPtr_SetAngleBuffer_Public_Void_Single_0;

			// Token: 0x04005AB6 RID: 23222
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
		}
	}
}
