using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x020004BE RID: 1214
	[Token(Token = "0x20004BE")]
	[HelpURL("http://www.root-motion.com/finalikdox/html/page12.html")]
	[AddComponentMenu("Scripts/RootMotion.FinalIK/Rotation Limits/Rotation Limit Spline")]
	public class RotationLimitSpline : RotationLimit
	{
		// Token: 0x06002B49 RID: 11081 RVA: 0x00060850 File Offset: 0x0005EA50
		[Token(Token = "0x6002B49")]
		[Address(RVA = "0x508D00", Offset = "0x507D00", VA = "0x180508D00")]
		[ContextMenu("User Manual")]
		private void OpenUserManual()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/page12.html");
		}

		// Token: 0x06002B4A RID: 11082 RVA: 0x00060868 File Offset: 0x0005EA68
		[Token(Token = "0x6002B4A")]
		[Address(RVA = "0x508CC0", Offset = "0x507CC0", VA = "0x180508CC0")]
		[ContextMenu("Scrpt Reference")]
		private void OpenScriptReference()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_rotation_limit_spline.html");
		}

		// Token: 0x06002B4B RID: 11083 RVA: 0x00060880 File Offset: 0x0005EA80
		[Token(Token = "0x6002B4B")]
		[Address(RVA = "0x508D60", Offset = "0x507D60", VA = "0x180508D60")]
		[ContextMenu("Support Group")]
		private void SupportGroup()
		{
			Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
		}

		// Token: 0x06002B4C RID: 11084 RVA: 0x00060898 File Offset: 0x0005EA98
		[Token(Token = "0x6002B4C")]
		[Address(RVA = "0x508870", Offset = "0x507870", VA = "0x180508870")]
		[ContextMenu("Asset Store Thread")]
		private void ASThread()
		{
			Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
		}

		// Token: 0x06002B4D RID: 11085 RVA: 0x000608B0 File Offset: 0x0005EAB0
		[Token(Token = "0x6002B4D")]
		[Address(RVA = "0x508D40", Offset = "0x507D40", VA = "0x180508D40")]
		public void SetSpline(Keyframe[] keyframes)
		{
			this.spline.keys = keyframes;
		}

		// Token: 0x06002B4E RID: 11086 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B4E")]
		[Address(RVA = "0x5088B0", Offset = "0x5078B0", VA = "0x1805088B0", Slot = "4")]
		protected override Quaternion LimitRotation(Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B4F RID: 11087 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B4F")]
		[Address(RVA = "0x508960", Offset = "0x507960", VA = "0x180508960")]
		public Quaternion LimitSwing(Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B50 RID: 11088 RVA: 0x000608D0 File Offset: 0x0005EAD0
		[Token(Token = "0x6002B50")]
		[Address(RVA = "0x508DA0", Offset = "0x507DA0", VA = "0x180508DA0")]
		public RotationLimitSpline()
		{
			float z = Vector3.forward.z;
			this.axis.z = z;
			base..ctor();
		}

		// Token: 0x040034AD RID: 13485
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x40034AD")]
		[Range(0f, 180f)]
		public float twistLimit = 180f;

		// Token: 0x040034AE RID: 13486
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x40034AE")]
		[SerializeField]
		[HideInInspector]
		public AnimationCurve spline;
	}
}
