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

namespace RootMotion.FinalIK
{
	// Token: 0x020004CE RID: 1230
	public class AimPoser : MonoBehaviour
	{
		// Token: 0x06009019 RID: 36889 RVA: 0x0024FC00 File Offset: 0x0024DE00
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 636301, RefRangeEnd = 636302, XrefRangeStart = 636299, XrefRangeEnd = 636301, 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: 0x0600901A RID: 36890 RVA: 0x0024FC68 File Offset: 0x0024DE68
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 636304, RefRangeEnd = 636305, XrefRangeStart = 636302, XrefRangeEnd = 636304, 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: 0x0600901B RID: 36891 RVA: 0x0024FCC4 File Offset: 0x0024DEC4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636305, XrefRangeEnd = 636310, 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: 0x0600901C RID: 36892 RVA: 0x0024FD10 File Offset: 0x0024DF10
		// 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, 100674385);
			AimPoser.NativeMethodInfoPtr_SetPoseActive_Public_Void_Pose_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, 100674386);
			AimPoser.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser>.NativeClassPtr, 100674387);
		}

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

		// Token: 0x170030D4 RID: 12500
		// (get) Token: 0x0600901E RID: 36894 RVA: 0x0024FDA4 File Offset: 0x0024DFA4
		// (set) Token: 0x0600901F RID: 36895 RVA: 0x0024FDCC File Offset: 0x0024DFCC
		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: 0x170030D5 RID: 12501
		// (get) Token: 0x06009020 RID: 36896 RVA: 0x0024FDF0 File Offset: 0x0024DFF0
		// (set) Token: 0x06009021 RID: 36897 RVA: 0x0024FE24 File Offset: 0x0024E024
		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: 0x04006052 RID: 24658
		private static readonly IntPtr NativeFieldInfoPtr_angleBuffer;

		// Token: 0x04006053 RID: 24659
		private static readonly IntPtr NativeFieldInfoPtr_poses;

		// Token: 0x04006054 RID: 24660
		private static readonly IntPtr NativeMethodInfoPtr_GetPose_Public_Pose_Vector3_0;

		// Token: 0x04006055 RID: 24661
		private static readonly IntPtr NativeMethodInfoPtr_SetPoseActive_Public_Void_Pose_0;

		// Token: 0x04006056 RID: 24662
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020004CF RID: 1231
		[Serializable]
		public class Pose : Il2CppSystem.Object
		{
			// Token: 0x06009022 RID: 36898 RVA: 0x0024FE4C File Offset: 0x0024E04C
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 636297, RefRangeEnd = 636298, XrefRangeStart = 636284, XrefRangeEnd = 636297, 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: 0x06009023 RID: 36899 RVA: 0x0024FEB0 File Offset: 0x0024E0B0
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 225954, RefRangeEnd = 225955, XrefRangeStart = 225954, XrefRangeEnd = 225955, 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: 0x06009024 RID: 36900 RVA: 0x0024FF04 File Offset: 0x0024E104
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636298, XrefRangeEnd = 636299, 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: 0x06009025 RID: 36901 RVA: 0x0024FF50 File Offset: 0x0024E150
			// 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, 100674388);
				AimPoser.Pose.NativeMethodInfoPtr_SetAngleBuffer_Public_Void_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, 100674389);
				AimPoser.Pose.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AimPoser.Pose>.NativeClassPtr, 100674390);
			}

			// Token: 0x06009026 RID: 36902 RVA: 0x0000A74C File Offset: 0x0000894C
			public Pose(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x170030D6 RID: 12502
			// (get) Token: 0x06009027 RID: 36903 RVA: 0x00250030 File Offset: 0x0024E230
			// (set) Token: 0x06009028 RID: 36904 RVA: 0x00250058 File Offset: 0x0024E258
			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: 0x170030D7 RID: 12503
			// (get) Token: 0x06009029 RID: 36905 RVA: 0x0025007C File Offset: 0x0024E27C
			// (set) Token: 0x0600902A RID: 36906 RVA: 0x002500A5 File Offset: 0x0024E2A5
			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: 0x170030D8 RID: 12504
			// (get) Token: 0x0600902B RID: 36907 RVA: 0x002500CC File Offset: 0x0024E2CC
			// (set) Token: 0x0600902C RID: 36908 RVA: 0x002500F4 File Offset: 0x0024E2F4
			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: 0x170030D9 RID: 12505
			// (get) Token: 0x0600902D RID: 36909 RVA: 0x00250118 File Offset: 0x0024E318
			// (set) Token: 0x0600902E RID: 36910 RVA: 0x00250140 File Offset: 0x0024E340
			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: 0x170030DA RID: 12506
			// (get) Token: 0x0600902F RID: 36911 RVA: 0x00250164 File Offset: 0x0024E364
			// (set) Token: 0x06009030 RID: 36912 RVA: 0x0025018C File Offset: 0x0024E38C
			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: 0x170030DB RID: 12507
			// (get) Token: 0x06009031 RID: 36913 RVA: 0x002501B0 File Offset: 0x0024E3B0
			// (set) Token: 0x06009032 RID: 36914 RVA: 0x002501D8 File Offset: 0x0024E3D8
			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: 0x04006057 RID: 24663
			private static readonly IntPtr NativeFieldInfoPtr_visualize;

			// Token: 0x04006058 RID: 24664
			private static readonly IntPtr NativeFieldInfoPtr_name;

			// Token: 0x04006059 RID: 24665
			private static readonly IntPtr NativeFieldInfoPtr_direction;

			// Token: 0x0400605A RID: 24666
			private static readonly IntPtr NativeFieldInfoPtr_yaw;

			// Token: 0x0400605B RID: 24667
			private static readonly IntPtr NativeFieldInfoPtr_pitch;

			// Token: 0x0400605C RID: 24668
			private static readonly IntPtr NativeFieldInfoPtr_angleBuffer;

			// Token: 0x0400605D RID: 24669
			private static readonly IntPtr NativeMethodInfoPtr_IsInDirection_Public_Boolean_Vector3_0;

			// Token: 0x0400605E RID: 24670
			private static readonly IntPtr NativeMethodInfoPtr_SetAngleBuffer_Public_Void_Single_0;

			// Token: 0x0400605F RID: 24671
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
		}
	}
}
