using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000430 RID: 1072
	[Token(Token = "0x2000430")]
	[Serializable]
	public class IKSolverHeuristic : IKSolver
	{
		// Token: 0x0600267C RID: 9852 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600267C")]
		[Address(RVA = "0x15965A0", Offset = "0x15953A0", VA = "0x1815965A0")]
		public bool SetChain(Transform[] hierarchy, Transform root)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600267D RID: 9853 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600267D")]
		[Address(RVA = "0x1595290", Offset = "0x1594090", VA = "0x181595290")]
		public void AddBone(Transform bone)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600267E RID: 9854 RVA: 0x00056160 File Offset: 0x00054360
		[Token(Token = "0x600267E")]
		[Address(RVA = "0x1596A60", Offset = "0x1595860", VA = "0x181596A60", Slot = "9")]
		public override void StoreDefaultLocalState()
		{
			IKSolver.Bone[] array = this.bones;
			int num = 0;
			if (num < array.Length)
			{
				array[num].StoreDefaultLocalState();
				IKSolver.Bone[] array2 = this.bones;
				num++;
			}
		}

		// Token: 0x0600267F RID: 9855 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600267F")]
		[Address(RVA = "0x1595460", Offset = "0x1594260", VA = "0x181595460", Slot = "8")]
		public override void FixTransforms()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002680 RID: 9856 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002680")]
		[Address(RVA = "0x1596150", Offset = "0x1594F50", VA = "0x181596150", Slot = "4")]
		public override bool IsValid(ref string message)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002681 RID: 9857 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002681")]
		[Address(RVA = "0x3EFFD0", Offset = "0x3EEDD0", VA = "0x1803EFFD0", Slot = "6")]
		public override IKSolver.Point[] GetPoints()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002682 RID: 9858 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002682")]
		[Address(RVA = "0x15954E0", Offset = "0x15942E0", VA = "0x1815954E0", Slot = "7")]
		public override IKSolver.Point GetPoint(Transform transform)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x1700024B RID: 587
		// (get) Token: 0x06002683 RID: 9859 RVA: 0x0005619C File Offset: 0x0005439C
		[Token(Token = "0x1700024B")]
		protected virtual int minBones
		{
			[Token(Token = "0x6002683")]
			[Address(RVA = "0x51C1E0", Offset = "0x51AFE0", VA = "0x18051C1E0", Slot = "12")]
			get
			{
				return 2;
			}
		}

		// Token: 0x1700024C RID: 588
		// (get) Token: 0x06002684 RID: 9860 RVA: 0x000561AC File Offset: 0x000543AC
		[Token(Token = "0x1700024C")]
		protected virtual bool boneLengthCanBeZero
		{
			[Token(Token = "0x6002684")]
			[Address(RVA = "0x454840", Offset = "0x453640", VA = "0x180454840", Slot = "13")]
			get
			{
				return true;
			}
		}

		// Token: 0x1700024D RID: 589
		// (get) Token: 0x06002685 RID: 9861 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x1700024D")]
		protected virtual bool allowCommonParent
		{
			[Token(Token = "0x6002685")]
			[Address(RVA = "0x290BB0", Offset = "0x28F9B0", VA = "0x180290BB0", Slot = "14")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002686 RID: 9862 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002686")]
		[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "10")]
		protected override void OnInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002687 RID: 9863 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002687")]
		[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "11")]
		protected override void OnUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002688 RID: 9864 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002688")]
		[Address(RVA = "0x1595A60", Offset = "0x1594860", VA = "0x181595A60")]
		protected void InitiateBones()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x1700024E RID: 590
		// (get) Token: 0x06002689 RID: 9865 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x1700024E")]
		protected virtual Vector3 localDirection
		{
			[Token(Token = "0x6002689")]
			[Address(RVA = "0x1596AE0", Offset = "0x15958E0", VA = "0x181596AE0", Slot = "15")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x1700024F RID: 591
		// (get) Token: 0x0600268A RID: 9866 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x1700024F")]
		protected float positionOffset
		{
			[Token(Token = "0x600268A")]
			[Address(RVA = "0x1596C80", Offset = "0x1595A80", VA = "0x181596C80")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x0600268B RID: 9867 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600268B")]
		[Address(RVA = "0x1595600", Offset = "0x1594400", VA = "0x181595600")]
		protected Vector3 GetSingularityOffset()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600268C RID: 9868 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600268C")]
		[Address(RVA = "0x1596780", Offset = "0x1595580", VA = "0x181596780")]
		private bool SingularityDetected()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600268D RID: 9869 RVA: 0x000561BC File Offset: 0x000543BC
		[Token(Token = "0x600268D")]
		[Address(RVA = "0x158A000", Offset = "0x1588E00", VA = "0x18158A000")]
		public IKSolverHeuristic()
		{
			int num = 0;
			this.useRotationLimits = true;
			IKSolver.Bone[] array = new IKSolver.Bone[num];
			this.bones = array;
			base..ctor();
		}

		// Token: 0x04002FDA RID: 12250
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4002FDA")]
		public Transform target;

		// Token: 0x04002FDB RID: 12251
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002FDB")]
		public float tolerance;

		// Token: 0x04002FDC RID: 12252
		[FieldOffset(Offset = "0x64")]
		[Token(Token = "0x4002FDC")]
		public int maxIterations = (int)((ulong)4L);

		// Token: 0x04002FDD RID: 12253
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4002FDD")]
		public bool useRotationLimits;

		// Token: 0x04002FDE RID: 12254
		[FieldOffset(Offset = "0x69")]
		[Token(Token = "0x4002FDE")]
		public bool XY;

		// Token: 0x04002FDF RID: 12255
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002FDF")]
		public IKSolver.Bone[] bones;

		// Token: 0x04002FE0 RID: 12256
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4002FE0")]
		protected Vector3 lastLocalDirection;

		// Token: 0x04002FE1 RID: 12257
		[FieldOffset(Offset = "0x84")]
		[Token(Token = "0x4002FE1")]
		protected float chainLength;
	}
}
