using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x020004B8 RID: 1208
	[Token(Token = "0x20004B8")]
	public abstract class RotationLimit : MonoBehaviour
	{
		// Token: 0x06002B15 RID: 11029 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B15")]
		[Address(RVA = "0x509650", Offset = "0x508650", VA = "0x180509650")]
		public void SetDefaultLocalRotation()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B16 RID: 11030 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B16")]
		[Address(RVA = "0x509090", Offset = "0x508090", VA = "0x180509090")]
		public Quaternion GetLimitedLocalRotation(Quaternion localRotation, out bool changed)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B17 RID: 11031 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B17")]
		[Address(RVA = "0x508DE0", Offset = "0x507DE0", VA = "0x180508DE0")]
		public bool Apply()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B18 RID: 11032 RVA: 0x000605E0 File Offset: 0x0005E7E0
		[Token(Token = "0x6002B18")]
		[Address(RVA = "0x509060", Offset = "0x508060", VA = "0x180509060")]
		public void Disable()
		{
			if (!this.initiated)
			{
				this.Awake();
			}
			int num = 0;
			base.enabled = num != 0;
		}

		// Token: 0x170002AE RID: 686
		// (get) Token: 0x06002B19 RID: 11033 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170002AE")]
		public Vector3 secondaryAxis
		{
			[Token(Token = "0x6002B19")]
			[Address(RVA = "0x509740", Offset = "0x508740", VA = "0x180509740")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x170002AF RID: 687
		// (get) Token: 0x06002B1A RID: 11034 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170002AF")]
		public Vector3 crossAxis
		{
			[Token(Token = "0x6002B1A")]
			[Address(RVA = "0x5096D0", Offset = "0x5086D0", VA = "0x1805096D0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002B1B RID: 11035
		[Token(Token = "0x6002B1B")]
		[Address(Slot = "4")]
		protected abstract Quaternion LimitRotation(Quaternion rotation);

		// Token: 0x06002B1C RID: 11036 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B1C")]
		[Address(RVA = "0x508F60", Offset = "0x507F60", VA = "0x180508F60")]
		private void Awake()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B1D RID: 11037 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B1D")]
		[Address(RVA = "0x509230", Offset = "0x508230", VA = "0x180509230")]
		private void LateUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B1E RID: 11038 RVA: 0x00060608 File Offset: 0x0005E808
		[Token(Token = "0x6002B1E")]
		[Address(RVA = "0x509620", Offset = "0x508620", VA = "0x180509620")]
		public void LogWarning(string message)
		{
			Transform transform = base.transform;
			int num = 0;
			Warning.Log(message, transform, num != 0);
		}

		// Token: 0x06002B1F RID: 11039 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B1F")]
		[Address(RVA = "0x5093A0", Offset = "0x5083A0", VA = "0x1805093A0")]
		protected static Quaternion Limit1DOF(Quaternion rotation, Vector3 axis)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B20 RID: 11040 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B20")]
		[Address(RVA = "0x509460", Offset = "0x508460", VA = "0x180509460")]
		protected static Quaternion LimitTwist(Quaternion rotation, Vector3 axis, Vector3 orthoAxis, float twistLimit)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B21 RID: 11041 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B21")]
		[Address(RVA = "0x5091B0", Offset = "0x5081B0", VA = "0x1805091B0")]
		protected static float GetOrthogonalAngle(Vector3 v1, Vector3 v2, Vector3 normal)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B22 RID: 11042 RVA: 0x00060628 File Offset: 0x0005E828
		[Token(Token = "0x6002B22")]
		[Address(RVA = "0x509690", Offset = "0x508690", VA = "0x180509690")]
		protected RotationLimit()
		{
			float z = Vector3.forward.z;
			this.axis.z = z;
			base..ctor();
		}

		// Token: 0x04003495 RID: 13461
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003495")]
		public Vector3 axis;

		// Token: 0x04003496 RID: 13462
		[FieldOffset(Offset = "0x24")]
		[Token(Token = "0x4003496")]
		[HideInInspector]
		public Quaternion defaultLocalRotation;

		// Token: 0x04003497 RID: 13463
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x4003497")]
		private bool initiated;

		// Token: 0x04003498 RID: 13464
		[FieldOffset(Offset = "0x35")]
		[Token(Token = "0x4003498")]
		private bool applicationQuit;

		// Token: 0x04003499 RID: 13465
		[FieldOffset(Offset = "0x36")]
		[Token(Token = "0x4003499")]
		private bool defaultLocalRotationSet;
	}
}
