using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x0200048F RID: 1167
	[Token(Token = "0x200048F")]
	[Serializable]
	public class IKSolverTrigonometric : IKSolver
	{
		// Token: 0x0600298D RID: 10637 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600298D")]
		[Address(RVA = "0x15230F0", Offset = "0x15220F0", VA = "0x1815230F0")]
		public void SetBendGoalPosition(Vector3 goalPosition, float weight)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600298E RID: 10638 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600298E")]
		[Address(RVA = "0x1523360", Offset = "0x1522360", VA = "0x181523360")]
		public void SetBendPlaneToCurrent()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600298F RID: 10639 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600298F")]
		[Address(RVA = "0xE74B20", Offset = "0xE73B20", VA = "0x180E74B20")]
		public void SetIKRotation(Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002990 RID: 10640 RVA: 0x0005D9E8 File Offset: 0x0005BBE8
		[Token(Token = "0x6002990")]
		[Address(RVA = "0x1523600", Offset = "0x1522600", VA = "0x181523600")]
		public void SetIKRotationWeight(float weight)
		{
			int num = 0;
			float num2 = Mathf.Clamp(weight, (float)num, 1f);
			this.IKRotationWeight = num2;
		}

		// Token: 0x06002991 RID: 10641 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002991")]
		[Address(RVA = "0x15218B0", Offset = "0x15208B0", VA = "0x1815218B0")]
		public Quaternion GetIKRotation()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002992 RID: 10642 RVA: 0x0005DA0C File Offset: 0x0005BC0C
		[Token(Token = "0x6002992")]
		[Address(RVA = "0x614BD0", Offset = "0x613BD0", VA = "0x180614BD0")]
		public float GetIKRotationWeight()
		{
			return this.IKRotationWeight;
		}

		// Token: 0x06002993 RID: 10643 RVA: 0x0005DA20 File Offset: 0x0005BC20
		[Token(Token = "0x6002993")]
		[Address(RVA = "0x1521A20", Offset = "0x1520A20", VA = "0x181521A20", Slot = "6")]
		public override IKSolver.Point[] GetPoints()
		{
			IKSolver.Point[] array;
			IKSolverTrigonometric.TrigonometricBone trigonometricBone3;
			for (;;)
			{
				array = new IKSolver.Point[3];
				IKSolverTrigonometric.TrigonometricBone trigonometricBone = this.bone1;
				if (trigonometricBone == 0 || array != 0)
				{
					array[0] = trigonometricBone;
					IKSolverTrigonometric.TrigonometricBone trigonometricBone2 = this.bone2;
					if (trigonometricBone2 == 0 || array != 0)
					{
						array[1] = trigonometricBone2;
						trigonometricBone3 = this.bone3;
						if (trigonometricBone3 == 0 || array != 0)
						{
							break;
						}
					}
				}
			}
			array[2] = trigonometricBone3;
			return array;
		}

		// Token: 0x06002994 RID: 10644 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002994")]
		[Address(RVA = "0x15218C0", Offset = "0x15208C0", VA = "0x1815218C0", Slot = "7")]
		public override IKSolver.Point GetPoint(Transform transform)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002995 RID: 10645 RVA: 0x0005DA80 File Offset: 0x0005BC80
		[Token(Token = "0x6002995")]
		[Address(RVA = "0x1523E40", Offset = "0x1522E40", VA = "0x181523E40", Slot = "9")]
		public override void StoreDefaultLocalState()
		{
			this.bone1.StoreDefaultLocalState();
			this.bone2.StoreDefaultLocalState();
			this.bone3.StoreDefaultLocalState();
		}

		// Token: 0x06002996 RID: 10646 RVA: 0x0005DAB4 File Offset: 0x0005BCB4
		[Token(Token = "0x6002996")]
		[Address(RVA = "0x1521380", Offset = "0x1520380", VA = "0x181521380", Slot = "8")]
		public override void FixTransforms()
		{
			this.bone1.FixTransform();
			this.bone2.FixTransform();
			this.bone3.FixTransform();
		}

		// Token: 0x06002997 RID: 10647 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002997")]
		[Address(RVA = "0x1521FB0", Offset = "0x1520FB0", VA = "0x181521FB0", Slot = "4")]
		public override bool IsValid(ref string message)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002998 RID: 10648 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002998")]
		[Address(RVA = "0x1523570", Offset = "0x1522570", VA = "0x181523570")]
		public bool SetChain(Transform bone1, Transform bone2, Transform bone3, Transform root)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002999 RID: 10649 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002999")]
		[Address(RVA = "0x1523630", Offset = "0x1522630", VA = "0x181523630")]
		public static void Solve(Transform bone1, Transform bone2, Transform bone3, Vector3 targetPosition, Vector3 bendNormal, float weight)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600299A RID: 10650 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600299A")]
		[Address(RVA = "0x15216E0", Offset = "0x15206E0", VA = "0x1815216E0")]
		private static Vector3 GetDirectionToBendPoint(Vector3 direction, float directionMag, Vector3 bendDirection, float sqrMag1, float sqrMag2)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600299B RID: 10651 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600299B")]
		[Address(RVA = "0x15224A0", Offset = "0x15214A0", VA = "0x1815224A0", Slot = "10")]
		protected override void OnInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600299C RID: 10652 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600299C")]
		[Address(RVA = "0x1521E80", Offset = "0x1520E80", VA = "0x181521E80")]
		private bool IsDirectHierarchy()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600299D RID: 10653 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600299D")]
		[Address(RVA = "0x1521BA0", Offset = "0x1520BA0", VA = "0x181521BA0")]
		private void InitiateBones()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600299E RID: 10654 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600299E")]
		[Address(RVA = "0x15226B0", Offset = "0x15216B0", VA = "0x1815226B0", Slot = "11")]
		protected override void OnUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600299F RID: 10655 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600299F")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "12")]
		protected virtual void OnInitiateVirtual()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060029A0 RID: 10656 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60029A0")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "13")]
		protected virtual void OnUpdateVirtual()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060029A1 RID: 10657 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60029A1")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "14")]
		protected virtual void OnPostSolveVirtual()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060029A2 RID: 10658 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60029A2")]
		[Address(RVA = "0x15213D0", Offset = "0x15203D0", VA = "0x1815213D0")]
		protected Vector3 GetBendDirection(Vector3 IKPosition, Vector3 bendNormal)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060029A3 RID: 10659 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60029A3")]
		[Address(RVA = "0x1523E90", Offset = "0x1522E90", VA = "0x181523E90")]
		public IKSolverTrigonometric()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x040032FF RID: 13055
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x40032FF")]
		public Transform target;

		// Token: 0x04003300 RID: 13056
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003300")]
		[Range(0f, 1f)]
		public float IKRotationWeight;

		// Token: 0x04003301 RID: 13057
		[FieldOffset(Offset = "0x64")]
		[Token(Token = "0x4003301")]
		public Quaternion IKRotation;

		// Token: 0x04003302 RID: 13058
		[FieldOffset(Offset = "0x74")]
		[Token(Token = "0x4003302")]
		public Vector3 bendNormal;

		// Token: 0x04003303 RID: 13059
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4003303")]
		public IKSolverTrigonometric.TrigonometricBone bone1;

		// Token: 0x04003304 RID: 13060
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4003304")]
		public IKSolverTrigonometric.TrigonometricBone bone2;

		// Token: 0x04003305 RID: 13061
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4003305")]
		public IKSolverTrigonometric.TrigonometricBone bone3;

		// Token: 0x04003306 RID: 13062
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4003306")]
		protected Vector3 weightIKPosition;

		// Token: 0x04003307 RID: 13063
		[FieldOffset(Offset = "0xA4")]
		[Token(Token = "0x4003307")]
		protected bool directHierarchy;

		// Token: 0x02000490 RID: 1168
		[Token(Token = "0x2000490")]
		[Serializable]
		public class TrigonometricBone : IKSolver.Bone
		{
			// Token: 0x060029A4 RID: 10660 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60029A4")]
			[Address(RVA = "0x16B2200", Offset = "0x16B1200", VA = "0x1816B2200")]
			public void Initiate(Vector3 childPosition, Vector3 bendNormal)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060029A5 RID: 10661 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60029A5")]
			[Address(RVA = "0x16B2180", Offset = "0x16B1180", VA = "0x1816B2180")]
			public Quaternion GetRotation(Vector3 direction, Vector3 bendNormal)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060029A6 RID: 10662 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60029A6")]
			[Address(RVA = "0x16B2100", Offset = "0x16B1100", VA = "0x1816B2100")]
			public Vector3 GetBendNormalFromCurrentRotation()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060029A7 RID: 10663 RVA: 0x0005DAE8 File Offset: 0x0005BCE8
			[Token(Token = "0x60029A7")]
			[Address(RVA = "0x16AC430", Offset = "0x16AB430", VA = "0x1816AC430")]
			public TrigonometricBone()
			{
			}

			// Token: 0x04003308 RID: 13064
			[FieldOffset(Offset = "0x80")]
			[Token(Token = "0x4003308")]
			private Quaternion targetToLocalSpace;

			// Token: 0x04003309 RID: 13065
			[FieldOffset(Offset = "0x90")]
			[Token(Token = "0x4003309")]
			private Vector3 defaultLocalBendNormal;
		}
	}
}
