using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000413 RID: 1043
	[Token(Token = "0x2000413")]
	[Serializable]
	public class FABRIKChain
	{
		// Token: 0x06002546 RID: 9542 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002546")]
		[Address(RVA = "0xA6AE80", Offset = "0xA69C80", VA = "0x180A6AE80")]
		public bool IsValid(ref string message)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002547 RID: 9543 RVA: 0x0005455C File Offset: 0x0005275C
		[Token(Token = "0x6002547")]
		[Address(RVA = "0xA6AE50", Offset = "0xA69C50", VA = "0x180A6AE50")]
		public void Initiate()
		{
			FABRIK fabrik = this.ik;
			int num = 0;
			fabrik.enabled = num != 0;
		}

		// Token: 0x06002548 RID: 9544 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002548")]
		[Address(RVA = "0xA6AF60", Offset = "0xA69D60", VA = "0x180A6AF60")]
		public void Stage1(FABRIKChain[] chain)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002549 RID: 9545 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002549")]
		[Address(RVA = "0xA6B0A0", Offset = "0xA69EA0", VA = "0x180A6B0A0")]
		public void Stage2(Vector3 rootPosition, FABRIKChain[] chain)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600254A RID: 9546 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600254A")]
		[Address(RVA = "0xA6AB30", Offset = "0xA69930", VA = "0x180A6AB30")]
		private Vector3 GetCentroid(FABRIKChain[] chain)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600254B RID: 9547 RVA: 0x00054580 File Offset: 0x00052780
		[Token(Token = "0x600254B")]
		[Address(RVA = "0xA6B220", Offset = "0xA6A020", VA = "0x180A6B220")]
		public FABRIKChain()
		{
			int num = 0;
			this.pin = 1f;
			int[] array = new int[num];
			this.children = array;
			base..ctor();
		}

		// Token: 0x04002EBE RID: 11966
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4002EBE")]
		public FABRIK ik;

		// Token: 0x04002EBF RID: 11967
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002EBF")]
		[Range(0f, 1f)]
		public float pull = 1f;

		// Token: 0x04002EC0 RID: 11968
		[FieldOffset(Offset = "0x1C")]
		[Token(Token = "0x4002EC0")]
		[Range(0f, 1f)]
		public float pin;

		// Token: 0x04002EC1 RID: 11969
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002EC1")]
		public int[] children;
	}
}
