using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000437 RID: 1079
	[Token(Token = "0x2000437")]
	[Serializable]
	public class IKSolverTrigonometric : IKSolver
	{
		// Token: 0x060026C4 RID: 9924 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C4")]
		[Address(RVA = "0x159DF00", Offset = "0x159CD00", VA = "0x18159DF00")]
		public void SetBendGoalPosition(Vector3 goalPosition, float weight)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C5 RID: 9925 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C5")]
		[Address(RVA = "0x159E170", Offset = "0x159CF70", VA = "0x18159E170")]
		public void SetBendPlaneToCurrent()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C6 RID: 9926 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C6")]
		[Address(RVA = "0x101BA00", Offset = "0x101A800", VA = "0x18101BA00")]
		public void SetIKRotation(Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C7 RID: 9927 RVA: 0x000566EC File Offset: 0x000548EC
		[Token(Token = "0x60026C7")]
		[Address(RVA = "0x159E410", Offset = "0x159D210", VA = "0x18159E410")]
		public void SetIKRotationWeight(float weight)
		{
			int num = 0;
			float num2 = Mathf.Clamp(weight, (float)num, 1f);
			this.IKRotationWeight = num2;
		}

		// Token: 0x060026C8 RID: 9928 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026C8")]
		[Address(RVA = "0x159C6C0", Offset = "0x159B4C0", VA = "0x18159C6C0")]
		public Quaternion GetIKRotation()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026C9 RID: 9929 RVA: 0x00056710 File Offset: 0x00054910
		[Token(Token = "0x60026C9")]
		[Address(RVA = "0x618E30", Offset = "0x617C30", VA = "0x180618E30")]
		public float GetIKRotationWeight()
		{
			return this.IKRotationWeight;
		}

		// Token: 0x060026CA RID: 9930 RVA: 0x00056724 File Offset: 0x00054924
		[Token(Token = "0x60026CA")]
		[Address(RVA = "0x159C830", Offset = "0x159B630", VA = "0x18159C830", 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: 0x060026CB RID: 9931 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CB")]
		[Address(RVA = "0x159C6D0", Offset = "0x159B4D0", VA = "0x18159C6D0", Slot = "7")]
		public override IKSolver.Point GetPoint(Transform transform)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026CC RID: 9932 RVA: 0x00056784 File Offset: 0x00054984
		[Token(Token = "0x60026CC")]
		[Address(RVA = "0x159EC50", Offset = "0x159DA50", VA = "0x18159EC50", Slot = "9")]
		public override void StoreDefaultLocalState()
		{
			this.bone1.StoreDefaultLocalState();
			this.bone2.StoreDefaultLocalState();
			this.bone3.StoreDefaultLocalState();
		}

		// Token: 0x060026CD RID: 9933 RVA: 0x000567B8 File Offset: 0x000549B8
		[Token(Token = "0x60026CD")]
		[Address(RVA = "0x159C190", Offset = "0x159AF90", VA = "0x18159C190", Slot = "8")]
		public override void FixTransforms()
		{
			this.bone1.FixTransform();
			this.bone2.FixTransform();
			this.bone3.FixTransform();
		}

		// Token: 0x060026CE RID: 9934 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CE")]
		[Address(RVA = "0x159CDC0", Offset = "0x159BBC0", VA = "0x18159CDC0", Slot = "4")]
		public override bool IsValid(ref string message)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026CF RID: 9935 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026CF")]
		[Address(RVA = "0x159E380", Offset = "0x159D180", VA = "0x18159E380")]
		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: 0x060026D0 RID: 9936 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D0")]
		[Address(RVA = "0x159E440", Offset = "0x159D240", VA = "0x18159E440")]
		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: 0x060026D1 RID: 9937 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D1")]
		[Address(RVA = "0x159C4F0", Offset = "0x159B2F0", VA = "0x18159C4F0")]
		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: 0x060026D2 RID: 9938 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D2")]
		[Address(RVA = "0x159D2B0", Offset = "0x159C0B0", VA = "0x18159D2B0", Slot = "10")]
		protected override void OnInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D3 RID: 9939 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D3")]
		[Address(RVA = "0x159CC90", Offset = "0x159BA90", VA = "0x18159CC90")]
		private bool IsDirectHierarchy()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D4 RID: 9940 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D4")]
		[Address(RVA = "0x159C9B0", Offset = "0x159B7B0", VA = "0x18159C9B0")]
		private void InitiateBones()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D5 RID: 9941 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D5")]
		[Address(RVA = "0x159D4C0", Offset = "0x159C2C0", VA = "0x18159D4C0", Slot = "11")]
		protected override void OnUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D6 RID: 9942 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D6")]
		[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "12")]
		protected virtual void OnInitiateVirtual()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D7 RID: 9943 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D7")]
		[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "13")]
		protected virtual void OnUpdateVirtual()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D8 RID: 9944 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D8")]
		[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "14")]
		protected virtual void OnPostSolveVirtual()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026D9 RID: 9945 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026D9")]
		[Address(RVA = "0x159C1E0", Offset = "0x159AFE0", VA = "0x18159C1E0")]
		protected Vector3 GetBendDirection(Vector3 IKPosition, Vector3 bendNormal)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060026DA RID: 9946 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60026DA")]
		[Address(RVA = "0x159ECA0", Offset = "0x159DAA0", VA = "0x18159ECA0")]
		public IKSolverTrigonometric()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04003015 RID: 12309
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4003015")]
		public Transform target;

		// Token: 0x04003016 RID: 12310
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003016")]
		[Range(0f, 1f)]
		public float IKRotationWeight;

		// Token: 0x04003017 RID: 12311
		[FieldOffset(Offset = "0x64")]
		[Token(Token = "0x4003017")]
		public Quaternion IKRotation;

		// Token: 0x04003018 RID: 12312
		[FieldOffset(Offset = "0x74")]
		[Token(Token = "0x4003018")]
		public Vector3 bendNormal;

		// Token: 0x04003019 RID: 12313
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4003019")]
		public IKSolverTrigonometric.TrigonometricBone bone1;

		// Token: 0x0400301A RID: 12314
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x400301A")]
		public IKSolverTrigonometric.TrigonometricBone bone2;

		// Token: 0x0400301B RID: 12315
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x400301B")]
		public IKSolverTrigonometric.TrigonometricBone bone3;

		// Token: 0x0400301C RID: 12316
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x400301C")]
		protected Vector3 weightIKPosition;

		// Token: 0x0400301D RID: 12317
		[FieldOffset(Offset = "0xA4")]
		[Token(Token = "0x400301D")]
		protected bool directHierarchy;

		// Token: 0x02000438 RID: 1080
		[Token(Token = "0x2000438")]
		[Serializable]
		public class TrigonometricBone : IKSolver.Bone
		{
			// Token: 0x060026DB RID: 9947 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60026DB")]
			[Address(RVA = "0x14F7940", Offset = "0x14F6740", VA = "0x1814F7940")]
			public void Initiate(Vector3 childPosition, Vector3 bendNormal)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060026DC RID: 9948 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60026DC")]
			[Address(RVA = "0x14F78C0", Offset = "0x14F66C0", VA = "0x1814F78C0")]
			public Quaternion GetRotation(Vector3 direction, Vector3 bendNormal)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060026DD RID: 9949 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60026DD")]
			[Address(RVA = "0x14F7840", Offset = "0x14F6640", VA = "0x1814F7840")]
			public Vector3 GetBendNormalFromCurrentRotation()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060026DE RID: 9950 RVA: 0x000567EC File Offset: 0x000549EC
			[Token(Token = "0x60026DE")]
			[Address(RVA = "0x14F1520", Offset = "0x14F0320", VA = "0x1814F1520")]
			public TrigonometricBone()
			{
			}

			// Token: 0x0400301E RID: 12318
			[FieldOffset(Offset = "0x80")]
			[Token(Token = "0x400301E")]
			private Quaternion targetToLocalSpace;

			// Token: 0x0400301F RID: 12319
			[FieldOffset(Offset = "0x90")]
			[Token(Token = "0x400301F")]
			private Vector3 defaultLocalBendNormal;
		}
	}
}
