using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000482 RID: 1154
	[Token(Token = "0x2000482")]
	[Serializable]
	public class IKSolverFABRIK : IKSolverHeuristic
	{
		// Token: 0x060028E2 RID: 10466 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028E2")]
		[Address(RVA = "0x1711F00", Offset = "0x1710F00", VA = "0x181711F00")]
		public void SolveForward(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028E3 RID: 10467 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028E3")]
		[Address(RVA = "0x1711E30", Offset = "0x1710E30", VA = "0x181711E30")]
		public void SolveBackward(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028E4 RID: 10468 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028E4")]
		[Address(RVA = "0x170FFC0", Offset = "0x170EFC0", VA = "0x18170FFC0", Slot = "5")]
		public override Vector3 GetIKPosition()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028E5 RID: 10469 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028E5")]
		[Address(RVA = "0x1711020", Offset = "0x1710020", VA = "0x181711020", Slot = "10")]
		protected override void OnInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028E6 RID: 10470 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028E6")]
		[Address(RVA = "0x1711B20", Offset = "0x1710B20", VA = "0x181711B20", Slot = "11")]
		protected override void OnUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x1700025C RID: 604
		// (get) Token: 0x060028E7 RID: 10471 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x1700025C")]
		protected override bool boneLengthCanBeZero
		{
			[Token(Token = "0x60028E7")]
			[Address(RVA = "0x29A960", Offset = "0x299960", VA = "0x18029A960", Slot = "13")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x060028E8 RID: 10472 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028E8")]
		[Address(RVA = "0x1711FB0", Offset = "0x1710FB0", VA = "0x181711FB0")]
		private Vector3 SolveJoint(Vector3 pos1, Vector3 pos2, float length)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028E9 RID: 10473 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028E9")]
		[Address(RVA = "0x1711550", Offset = "0x1710550", VA = "0x181711550")]
		private void OnPreSolve()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028EA RID: 10474 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028EA")]
		[Address(RVA = "0x1711400", Offset = "0x1710400", VA = "0x181711400")]
		private void OnPostSolve()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028EB RID: 10475 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028EB")]
		[Address(RVA = "0x17120F0", Offset = "0x17110F0", VA = "0x1817120F0")]
		private void Solve(Vector3 targetPosition)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028EC RID: 10476 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028EC")]
		[Address(RVA = "0x170FCD0", Offset = "0x170ECD0", VA = "0x18170FCD0")]
		private void ForwardReach(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028ED RID: 10477 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028ED")]
		[Address(RVA = "0x1712370", Offset = "0x1711370", VA = "0x181712370")]
		private void SolverMove(int index, Vector3 offset)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028EE RID: 10478 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028EE")]
		[Address(RVA = "0x17124F0", Offset = "0x17114F0", VA = "0x1817124F0")]
		private void SolverRotate(int index, Quaternion rotation, bool recursive)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028EF RID: 10479 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028EF")]
		[Address(RVA = "0x1712430", Offset = "0x1711430", VA = "0x181712430")]
		private void SolverRotateChildren(int index, Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F0 RID: 10480 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F0")]
		[Address(RVA = "0x17121A0", Offset = "0x17111A0", VA = "0x1817121A0")]
		private void SolverMoveChildrenAroundPoint(int index, Quaternion rotation)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F1 RID: 10481 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F1")]
		[Address(RVA = "0x1710350", Offset = "0x170F350", VA = "0x181710350")]
		private Quaternion GetParentSolverRotation(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F2 RID: 10482 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F2")]
		[Address(RVA = "0x17101D0", Offset = "0x170F1D0", VA = "0x1817101D0")]
		private Vector3 GetParentSolverPosition(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F3 RID: 10483 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F3")]
		[Address(RVA = "0x1710070", Offset = "0x170F070", VA = "0x181710070")]
		private Quaternion GetLimitedRotation(int index, Quaternion q, out bool changed)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F4 RID: 10484 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F4")]
		[Address(RVA = "0x17104C0", Offset = "0x170F4C0", VA = "0x1817104C0")]
		private void LimitForward(int rotateBone, int limitBone)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F5 RID: 10485 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F5")]
		[Address(RVA = "0x170FC90", Offset = "0x170EC90", VA = "0x18170FC90")]
		private void BackwardReach(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F6 RID: 10486 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F6")]
		[Address(RVA = "0x170FAA0", Offset = "0x170EAA0", VA = "0x18170FAA0")]
		private void BackwardReachUnlimited(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F7 RID: 10487 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F7")]
		[Address(RVA = "0x170F360", Offset = "0x170E360", VA = "0x18170F360")]
		private void BackwardReachLimited(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F8 RID: 10488 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F8")]
		[Address(RVA = "0x1710E60", Offset = "0x170FE60", VA = "0x181710E60")]
		private void MapToSolverPositions()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028F9 RID: 10489 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028F9")]
		[Address(RVA = "0x1710D40", Offset = "0x170FD40", VA = "0x181710D40")]
		private void MapToSolverPositionsLimited()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028FA RID: 10490 RVA: 0x0005CA50 File Offset: 0x0005AC50
		[Token(Token = "0x60028FA")]
		[Address(RVA = "0x17125D0", Offset = "0x17115D0", VA = "0x1817125D0")]
		public IKSolverFABRIK()
		{
			bool[] array = new bool[0];
			this.limitedBones = array;
			Vector3[] array2 = new Vector3[0];
			this.solverLocalPositions = array2;
			base..ctor();
		}

		// Token: 0x04003297 RID: 12951
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4003297")]
		public IKSolver.IterationDelegate OnPreIteration;

		// Token: 0x04003298 RID: 12952
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4003298")]
		private bool[] limitedBones;

		// Token: 0x04003299 RID: 12953
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4003299")]
		private Vector3[] solverLocalPositions;
	}
}
