using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x0200042A RID: 1066
	[Token(Token = "0x200042A")]
	[Serializable]
	public class IKSolverFABRIK : IKSolverHeuristic
	{
		// Token: 0x06002619 RID: 9753 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002619")]
		[Address(RVA = "0x158E410", Offset = "0x158D210", VA = "0x18158E410")]
		public void SolveForward(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600261A RID: 9754 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600261A")]
		[Address(RVA = "0x158E340", Offset = "0x158D140", VA = "0x18158E340")]
		public void SolveBackward(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600261B RID: 9755 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600261B")]
		[Address(RVA = "0x158C4D0", Offset = "0x158B2D0", VA = "0x18158C4D0", Slot = "5")]
		public override Vector3 GetIKPosition()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600261C RID: 9756 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600261C")]
		[Address(RVA = "0x158D530", Offset = "0x158C330", VA = "0x18158D530", Slot = "10")]
		protected override void OnInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600261D RID: 9757 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600261D")]
		[Address(RVA = "0x158E030", Offset = "0x158CE30", VA = "0x18158E030", Slot = "11")]
		protected override void OnUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000237 RID: 567
		// (get) Token: 0x0600261E RID: 9758 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000237")]
		protected override bool boneLengthCanBeZero
		{
			[Token(Token = "0x600261E")]
			[Address(RVA = "0x290BB0", Offset = "0x28F9B0", VA = "0x180290BB0", Slot = "13")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x0600261F RID: 9759 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600261F")]
		[Address(RVA = "0x158E4C0", Offset = "0x158D2C0", VA = "0x18158E4C0")]
		private Vector3 SolveJoint(Vector3 pos1, Vector3 pos2, float length)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002620 RID: 9760 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002620")]
		[Address(RVA = "0x158DA60", Offset = "0x158C860", VA = "0x18158DA60")]
		private void OnPreSolve()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002621 RID: 9761 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002621")]
		[Address(RVA = "0x158D910", Offset = "0x158C710", VA = "0x18158D910")]
		private void OnPostSolve()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002622 RID: 9762 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002622")]
		[Address(RVA = "0x158E600", Offset = "0x158D400", VA = "0x18158E600")]
		private void Solve(Vector3 targetPosition)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002623 RID: 9763 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002623")]
		[Address(RVA = "0x158C1E0", Offset = "0x158AFE0", VA = "0x18158C1E0")]
		private void ForwardReach(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002624 RID: 9764 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002624")]
		[Address(RVA = "0x158E880", Offset = "0x158D680", VA = "0x18158E880")]
		private void SolverMove(int index, Vector3 offset)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002625 RID: 9765 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002625")]
		[Address(RVA = "0x158EA00", Offset = "0x158D800", VA = "0x18158EA00")]
		private void SolverRotate(int index, Quaternion rotation, bool recursive)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002626 RID: 9766 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002626")]
		[Address(RVA = "0x158E940", Offset = "0x158D740", VA = "0x18158E940")]
		private void SolverRotateChildren(int index, Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002627 RID: 9767 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002627")]
		[Address(RVA = "0x158E6B0", Offset = "0x158D4B0", VA = "0x18158E6B0")]
		private void SolverMoveChildrenAroundPoint(int index, Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002628 RID: 9768 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002628")]
		[Address(RVA = "0x158C860", Offset = "0x158B660", VA = "0x18158C860")]
		private Quaternion GetParentSolverRotation(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002629 RID: 9769 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002629")]
		[Address(RVA = "0x158C6E0", Offset = "0x158B4E0", VA = "0x18158C6E0")]
		private Vector3 GetParentSolverPosition(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600262A RID: 9770 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600262A")]
		[Address(RVA = "0x158C580", Offset = "0x158B380", VA = "0x18158C580")]
		private Quaternion GetLimitedRotation(int index, Quaternion q, out bool changed)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600262B RID: 9771 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600262B")]
		[Address(RVA = "0x158C9D0", Offset = "0x158B7D0", VA = "0x18158C9D0")]
		private void LimitForward(int rotateBone, int limitBone)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600262C RID: 9772 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600262C")]
		[Address(RVA = "0x158C1A0", Offset = "0x158AFA0", VA = "0x18158C1A0")]
		private void BackwardReach(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600262D RID: 9773 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600262D")]
		[Address(RVA = "0x158BFB0", Offset = "0x158ADB0", VA = "0x18158BFB0")]
		private void BackwardReachUnlimited(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600262E RID: 9774 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600262E")]
		[Address(RVA = "0x158B870", Offset = "0x158A670", VA = "0x18158B870")]
		private void BackwardReachLimited(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600262F RID: 9775 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600262F")]
		[Address(RVA = "0x158D370", Offset = "0x158C170", VA = "0x18158D370")]
		private void MapToSolverPositions()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002630 RID: 9776 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002630")]
		[Address(RVA = "0x158D250", Offset = "0x158C050", VA = "0x18158D250")]
		private void MapToSolverPositionsLimited()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002631 RID: 9777 RVA: 0x00055734 File Offset: 0x00053934
		[Token(Token = "0x6002631")]
		[Address(RVA = "0x158EAE0", Offset = "0x158D8E0", VA = "0x18158EAE0")]
		public IKSolverFABRIK()
		{
			bool[] array = new bool[0];
			this.limitedBones = array;
			Vector3[] array2 = new Vector3[0];
			this.solverLocalPositions = array2;
			this.maxIterations = (int)((ulong)4L);
			int num = 0;
			this.useRotationLimits = true;
			IKSolver.Bone[] array3 = new IKSolver.Bone[num];
			this.bones = array3;
			base..ctor();
		}

		// Token: 0x04002FAD RID: 12205
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4002FAD")]
		public IKSolver.IterationDelegate OnPreIteration;

		// Token: 0x04002FAE RID: 12206
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4002FAE")]
		private bool[] limitedBones;

		// Token: 0x04002FAF RID: 12207
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4002FAF")]
		private Vector3[] solverLocalPositions;
	}
}
