using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000466 RID: 1126
	[Token(Token = "0x2000466")]
	[AddComponentMenu("Scripts/RootMotion.FinalIK/Rotation Limits/Rotation Limit Spline")]
	[HelpURL("http://www.root-motion.com/finalikdox/html/page12.html")]
	public class RotationLimitSpline : RotationLimit
	{
		// Token: 0x06002880 RID: 10368 RVA: 0x000594C4 File Offset: 0x000576C4
		[Token(Token = "0x6002880")]
		[Address(RVA = "0x42F330", Offset = "0x42E130", VA = "0x18042F330")]
		[ContextMenu("User Manual")]
		private void OpenUserManual()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/page12.html");
		}

		// Token: 0x06002881 RID: 10369 RVA: 0x000594DC File Offset: 0x000576DC
		[Token(Token = "0x6002881")]
		[Address(RVA = "0x42F2F0", Offset = "0x42E0F0", VA = "0x18042F2F0")]
		[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: 0x06002882 RID: 10370 RVA: 0x000594F4 File Offset: 0x000576F4
		[Token(Token = "0x6002882")]
		[Address(RVA = "0x42F390", Offset = "0x42E190", VA = "0x18042F390")]
		[ContextMenu("Support Group")]
		private void SupportGroup()
		{
			Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
		}

		// Token: 0x06002883 RID: 10371 RVA: 0x0005950C File Offset: 0x0005770C
		[Token(Token = "0x6002883")]
		[Address(RVA = "0x42EEF0", Offset = "0x42DCF0", VA = "0x18042EEF0")]
		[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: 0x06002884 RID: 10372 RVA: 0x00059524 File Offset: 0x00057724
		[Token(Token = "0x6002884")]
		[Address(RVA = "0x42F370", Offset = "0x42E170", VA = "0x18042F370")]
		public void SetSpline(Keyframe[] keyframes)
		{
			this.spline.keys = keyframes;
		}

		// Token: 0x06002885 RID: 10373 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002885")]
		[Address(RVA = "0x42EF30", Offset = "0x42DD30", VA = "0x18042EF30", Slot = "4")]
		protected override Quaternion LimitRotation(Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002886 RID: 10374 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002886")]
		[Address(RVA = "0x42F010", Offset = "0x42DE10", VA = "0x18042F010")]
		public Quaternion LimitSwing(Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002887 RID: 10375 RVA: 0x00059544 File Offset: 0x00057744
		[Token(Token = "0x6002887")]
		[Address(RVA = "0x42F3D0", Offset = "0x42E1D0", VA = "0x18042F3D0")]
		public RotationLimitSpline()
		{
		}

		// Token: 0x040031C3 RID: 12739
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x40031C3")]
		[Range(0f, 180f)]
		public float twistLimit = 180f;

		// Token: 0x040031C4 RID: 12740
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x40031C4")]
		[HideInInspector]
		[SerializeField]
		public AnimationCurve spline;
	}
}
