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

namespace RootMotion.FinalIK
{
	// Token: 0x020004C9 RID: 1225
	public class RotationLimitHinge : RotationLimit
	{
		// Token: 0x06008FC2 RID: 36802 RVA: 0x0024E3C0 File Offset: 0x0024C5C0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636018, XrefRangeEnd = 636021, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OpenUserManual()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitHinge.NativeMethodInfoPtr_OpenUserManual_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FC3 RID: 36803 RVA: 0x0024E404 File Offset: 0x0024C604
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636021, XrefRangeEnd = 636024, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OpenScriptReference()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitHinge.NativeMethodInfoPtr_OpenScriptReference_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FC4 RID: 36804 RVA: 0x0024E448 File Offset: 0x0024C648
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636024, XrefRangeEnd = 636027, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SupportGroup()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitHinge.NativeMethodInfoPtr_SupportGroup_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FC5 RID: 36805 RVA: 0x0024E48C File Offset: 0x0024C68C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636027, XrefRangeEnd = 636030, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void ASThread()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitHinge.NativeMethodInfoPtr_ASThread_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FC6 RID: 36806 RVA: 0x0024E4D0 File Offset: 0x0024C6D0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636030, XrefRangeEnd = 636031, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override Quaternion LimitRotation(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(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), RotationLimitHinge.NativeMethodInfoPtr_LimitRotation_Protected_Virtual_Quaternion_Quaternion_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008FC7 RID: 36807 RVA: 0x0024E540 File Offset: 0x0024C740
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 636049, RefRangeEnd = 636050, XrefRangeStart = 636031, XrefRangeEnd = 636049, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Quaternion LimitHinge(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(RotationLimitHinge.NativeMethodInfoPtr_LimitHinge_Private_Quaternion_Quaternion_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008FC8 RID: 36808 RVA: 0x0024E5A4 File Offset: 0x0024C7A4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 636050, XrefRangeEnd = 636053, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe RotationLimitHinge()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitHinge.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FC9 RID: 36809 RVA: 0x0024E5F0 File Offset: 0x0024C7F0
		// Note: this type is marked as 'beforefieldinit'.
		static RotationLimitHinge()
		{
			Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.FinalIK", "RotationLimitHinge");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr);
			RotationLimitHinge.NativeFieldInfoPtr_useLimits = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, "useLimits");
			RotationLimitHinge.NativeFieldInfoPtr_min = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, "min");
			RotationLimitHinge.NativeFieldInfoPtr_max = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, "max");
			RotationLimitHinge.NativeFieldInfoPtr_zeroAxisDisplayOffset = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, "zeroAxisDisplayOffset");
			RotationLimitHinge.NativeFieldInfoPtr_lastRotation = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, "lastRotation");
			RotationLimitHinge.NativeFieldInfoPtr_lastAngle = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, "lastAngle");
			RotationLimitHinge.NativeMethodInfoPtr_OpenUserManual_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, 100674346);
			RotationLimitHinge.NativeMethodInfoPtr_OpenScriptReference_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, 100674347);
			RotationLimitHinge.NativeMethodInfoPtr_SupportGroup_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, 100674348);
			RotationLimitHinge.NativeMethodInfoPtr_ASThread_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, 100674349);
			RotationLimitHinge.NativeMethodInfoPtr_LimitRotation_Protected_Virtual_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, 100674350);
			RotationLimitHinge.NativeMethodInfoPtr_LimitHinge_Private_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, 100674351);
			RotationLimitHinge.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitHinge>.NativeClassPtr, 100674352);
		}

		// Token: 0x06008FCA RID: 36810 RVA: 0x0024E31C File Offset: 0x0024C51C
		public RotationLimitHinge(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170030BC RID: 12476
		// (get) Token: 0x06008FCB RID: 36811 RVA: 0x0024E724 File Offset: 0x0024C924
		// (set) Token: 0x06008FCC RID: 36812 RVA: 0x0024E74C File Offset: 0x0024C94C
		public unsafe bool useLimits
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_useLimits);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_useLimits)) = value;
			}
		}

		// Token: 0x170030BD RID: 12477
		// (get) Token: 0x06008FCD RID: 36813 RVA: 0x0024E770 File Offset: 0x0024C970
		// (set) Token: 0x06008FCE RID: 36814 RVA: 0x0024E798 File Offset: 0x0024C998
		public unsafe float min
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_min);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_min)) = value;
			}
		}

		// Token: 0x170030BE RID: 12478
		// (get) Token: 0x06008FCF RID: 36815 RVA: 0x0024E7BC File Offset: 0x0024C9BC
		// (set) Token: 0x06008FD0 RID: 36816 RVA: 0x0024E7E4 File Offset: 0x0024C9E4
		public unsafe float max
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_max);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_max)) = value;
			}
		}

		// Token: 0x170030BF RID: 12479
		// (get) Token: 0x06008FD1 RID: 36817 RVA: 0x0024E808 File Offset: 0x0024CA08
		// (set) Token: 0x06008FD2 RID: 36818 RVA: 0x0024E830 File Offset: 0x0024CA30
		public unsafe float zeroAxisDisplayOffset
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_zeroAxisDisplayOffset);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_zeroAxisDisplayOffset)) = value;
			}
		}

		// Token: 0x170030C0 RID: 12480
		// (get) Token: 0x06008FD3 RID: 36819 RVA: 0x0024E854 File Offset: 0x0024CA54
		// (set) Token: 0x06008FD4 RID: 36820 RVA: 0x0024E87C File Offset: 0x0024CA7C
		public unsafe Quaternion lastRotation
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_lastRotation);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_lastRotation)) = value;
			}
		}

		// Token: 0x170030C1 RID: 12481
		// (get) Token: 0x06008FD5 RID: 36821 RVA: 0x0024E8A0 File Offset: 0x0024CAA0
		// (set) Token: 0x06008FD6 RID: 36822 RVA: 0x0024E8C8 File Offset: 0x0024CAC8
		public unsafe float lastAngle
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_lastAngle);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitHinge.NativeFieldInfoPtr_lastAngle)) = value;
			}
		}

		// Token: 0x04006018 RID: 24600
		private static readonly IntPtr NativeFieldInfoPtr_useLimits;

		// Token: 0x04006019 RID: 24601
		private static readonly IntPtr NativeFieldInfoPtr_min;

		// Token: 0x0400601A RID: 24602
		private static readonly IntPtr NativeFieldInfoPtr_max;

		// Token: 0x0400601B RID: 24603
		private static readonly IntPtr NativeFieldInfoPtr_zeroAxisDisplayOffset;

		// Token: 0x0400601C RID: 24604
		private static readonly IntPtr NativeFieldInfoPtr_lastRotation;

		// Token: 0x0400601D RID: 24605
		private static readonly IntPtr NativeFieldInfoPtr_lastAngle;

		// Token: 0x0400601E RID: 24606
		private static readonly IntPtr NativeMethodInfoPtr_OpenUserManual_Private_Void_0;

		// Token: 0x0400601F RID: 24607
		private static readonly IntPtr NativeMethodInfoPtr_OpenScriptReference_Private_Void_0;

		// Token: 0x04006020 RID: 24608
		private static readonly IntPtr NativeMethodInfoPtr_SupportGroup_Private_Void_0;

		// Token: 0x04006021 RID: 24609
		private static readonly IntPtr NativeMethodInfoPtr_ASThread_Private_Void_0;

		// Token: 0x04006022 RID: 24610
		private static readonly IntPtr NativeMethodInfoPtr_LimitRotation_Protected_Virtual_Quaternion_Quaternion_0;

		// Token: 0x04006023 RID: 24611
		private static readonly IntPtr NativeMethodInfoPtr_LimitHinge_Private_Quaternion_Quaternion_0;

		// Token: 0x04006024 RID: 24612
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
