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

namespace RootMotion.FinalIK
{
	// Token: 0x02000470 RID: 1136
	public class RotationLimitAngle : RotationLimit
	{
		// Token: 0x06008762 RID: 34658 RVA: 0x0022B2CC File Offset: 0x002294CC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603670, XrefRangeEnd = 603673, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OpenUserManual()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitAngle.NativeMethodInfoPtr_OpenUserManual_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008763 RID: 34659 RVA: 0x0022B310 File Offset: 0x00229510
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603673, XrefRangeEnd = 603676, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OpenScriptReference()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitAngle.NativeMethodInfoPtr_OpenScriptReference_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008764 RID: 34660 RVA: 0x0022B354 File Offset: 0x00229554
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603676, XrefRangeEnd = 603679, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SupportGroup()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitAngle.NativeMethodInfoPtr_SupportGroup_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008765 RID: 34661 RVA: 0x0022B398 File Offset: 0x00229598
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603679, XrefRangeEnd = 603682, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void ASThread()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitAngle.NativeMethodInfoPtr_ASThread_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008766 RID: 34662 RVA: 0x0022B3DC File Offset: 0x002295DC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603682, XrefRangeEnd = 603695, 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), RotationLimitAngle.NativeMethodInfoPtr_LimitRotation_Protected_Virtual_Quaternion_Quaternion_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008767 RID: 34663 RVA: 0x0022B44C File Offset: 0x0022964C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603695, XrefRangeEnd = 603707, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Quaternion LimitSwing(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(RotationLimitAngle.NativeMethodInfoPtr_LimitSwing_Private_Quaternion_Quaternion_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008768 RID: 34664 RVA: 0x0022B4B0 File Offset: 0x002296B0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 603707, XrefRangeEnd = 603709, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe RotationLimitAngle()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(RotationLimitAngle.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008769 RID: 34665 RVA: 0x0022B4FC File Offset: 0x002296FC
		// Note: this type is marked as 'beforefieldinit'.
		static RotationLimitAngle()
		{
			Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.FinalIK", "RotationLimitAngle");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr);
			RotationLimitAngle.NativeFieldInfoPtr_limit = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, "limit");
			RotationLimitAngle.NativeFieldInfoPtr_twistLimit = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, "twistLimit");
			RotationLimitAngle.NativeMethodInfoPtr_OpenUserManual_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, 100673626);
			RotationLimitAngle.NativeMethodInfoPtr_OpenScriptReference_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, 100673627);
			RotationLimitAngle.NativeMethodInfoPtr_SupportGroup_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, 100673628);
			RotationLimitAngle.NativeMethodInfoPtr_ASThread_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, 100673629);
			RotationLimitAngle.NativeMethodInfoPtr_LimitRotation_Protected_Virtual_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, 100673630);
			RotationLimitAngle.NativeMethodInfoPtr_LimitSwing_Private_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, 100673631);
			RotationLimitAngle.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<RotationLimitAngle>.NativeClassPtr, 100673632);
		}

		// Token: 0x0600876A RID: 34666 RVA: 0x0022B5E0 File Offset: 0x002297E0
		public RotationLimitAngle(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002E1F RID: 11807
		// (get) Token: 0x0600876B RID: 34667 RVA: 0x0022B5EC File Offset: 0x002297EC
		// (set) Token: 0x0600876C RID: 34668 RVA: 0x0022B614 File Offset: 0x00229814
		public unsafe float limit
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitAngle.NativeFieldInfoPtr_limit);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitAngle.NativeFieldInfoPtr_limit)) = value;
			}
		}

		// Token: 0x17002E20 RID: 11808
		// (get) Token: 0x0600876D RID: 34669 RVA: 0x0022B638 File Offset: 0x00229838
		// (set) Token: 0x0600876E RID: 34670 RVA: 0x0022B660 File Offset: 0x00229860
		public unsafe float twistLimit
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitAngle.NativeFieldInfoPtr_twistLimit);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(RotationLimitAngle.NativeFieldInfoPtr_twistLimit)) = value;
			}
		}

		// Token: 0x04005A66 RID: 23142
		private static readonly IntPtr NativeFieldInfoPtr_limit;

		// Token: 0x04005A67 RID: 23143
		private static readonly IntPtr NativeFieldInfoPtr_twistLimit;

		// Token: 0x04005A68 RID: 23144
		private static readonly IntPtr NativeMethodInfoPtr_OpenUserManual_Private_Void_0;

		// Token: 0x04005A69 RID: 23145
		private static readonly IntPtr NativeMethodInfoPtr_OpenScriptReference_Private_Void_0;

		// Token: 0x04005A6A RID: 23146
		private static readonly IntPtr NativeMethodInfoPtr_SupportGroup_Private_Void_0;

		// Token: 0x04005A6B RID: 23147
		private static readonly IntPtr NativeMethodInfoPtr_ASThread_Private_Void_0;

		// Token: 0x04005A6C RID: 23148
		private static readonly IntPtr NativeMethodInfoPtr_LimitRotation_Protected_Virtual_Quaternion_Quaternion_0;

		// Token: 0x04005A6D RID: 23149
		private static readonly IntPtr NativeMethodInfoPtr_LimitSwing_Private_Quaternion_Quaternion_0;

		// Token: 0x04005A6E RID: 23150
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
