using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000428 RID: 1064
	[Token(Token = "0x2000428")]
	[Serializable]
	public class IKSolverAim : IKSolverHeuristic
	{
		// Token: 0x06002609 RID: 9737 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002609")]
		[Address(RVA = "0x1587630", Offset = "0x1586430", VA = "0x181587630")]
		public float GetAngle()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000233 RID: 563
		// (get) Token: 0x0600260A RID: 9738 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000233")]
		public Vector3 transformAxis
		{
			[Token(Token = "0x600260A")]
			[Address(RVA = "0x1589100", Offset = "0x1587F00", VA = "0x181589100")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x17000234 RID: 564
		// (get) Token: 0x0600260B RID: 9739 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000234")]
		public Vector3 transformPoleAxis
		{
			[Token(Token = "0x600260B")]
			[Address(RVA = "0x1589180", Offset = "0x1587F80", VA = "0x181589180")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x0600260C RID: 9740 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600260C")]
		[Address(RVA = "0x1587C90", Offset = "0x1586A90", VA = "0x181587C90", Slot = "10")]
		protected override void OnInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600260D RID: 9741 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600260D")]
		[Address(RVA = "0x1588050", Offset = "0x1586E50", VA = "0x181588050", Slot = "11")]
		protected override void OnUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000235 RID: 565
		// (get) Token: 0x0600260E RID: 9742 RVA: 0x00055678 File Offset: 0x00053878
		[Token(Token = "0x17000235")]
		protected override int minBones
		{
			[Token(Token = "0x600260E")]
			[Address(RVA = "0x370C60", Offset = "0x36FA60", VA = "0x180370C60", Slot = "12")]
			get
			{
				return 1;
			}
		}

		// Token: 0x0600260F RID: 9743 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600260F")]
		[Address(RVA = "0x1588E30", Offset = "0x1587C30", VA = "0x181588E30")]
		private void Solve()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002610 RID: 9744 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002610")]
		[Address(RVA = "0x1587750", Offset = "0x1586550", VA = "0x181587750")]
		private Vector3 GetClampedIKPosition()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002611 RID: 9745 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002611")]
		[Address(RVA = "0x15887A0", Offset = "0x15875A0", VA = "0x1815887A0")]
		private void RotateToTarget(Vector3 targetPosition, IKSolver.Bone bone, float weight)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000236 RID: 566
		// (get) Token: 0x06002612 RID: 9746 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000236")]
		protected override Vector3 localDirection
		{
			[Token(Token = "0x6002612")]
			[Address(RVA = "0x1589030", Offset = "0x1587E30", VA = "0x181589030", Slot = "15")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002613 RID: 9747 RVA: 0x00055688 File Offset: 0x00053888
		[Token(Token = "0x6002613")]
		[Address(RVA = "0x1588F70", Offset = "0x1587D70", VA = "0x181588F70")]
		public IKSolverAim()
		{
			float z = Vector3.forward.z;
			this.axis.z = z;
			float z2 = Vector3.up.z;
			this.poleAxis.z = z2;
			this.clampWeight = 0.1f;
			this.clampSmoothing = (int)((ulong)2L);
			this.maxIterations = (int)((ulong)4L);
			int num = 0;
			this.useRotationLimits = true;
			IKSolver.Bone[] array = new IKSolver.Bone[num];
			this.bones = array;
			base..ctor();
		}

		// Token: 0x04002F9F RID: 12191
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4002F9F")]
		public Transform transform;

		// Token: 0x04002FA0 RID: 12192
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4002FA0")]
		public Vector3 axis;

		// Token: 0x04002FA1 RID: 12193
		[FieldOffset(Offset = "0x9C")]
		[Token(Token = "0x4002FA1")]
		public Vector3 poleAxis;

		// Token: 0x04002FA2 RID: 12194
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x4002FA2")]
		public Vector3 polePosition;

		// Token: 0x04002FA3 RID: 12195
		[FieldOffset(Offset = "0xB4")]
		[Token(Token = "0x4002FA3")]
		[Range(0f, 1f)]
		public float poleWeight;

		// Token: 0x04002FA4 RID: 12196
		[FieldOffset(Offset = "0xB8")]
		[Token(Token = "0x4002FA4")]
		public Transform poleTarget;

		// Token: 0x04002FA5 RID: 12197
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4002FA5")]
		[Range(0f, 1f)]
		public float clampWeight;

		// Token: 0x04002FA6 RID: 12198
		[FieldOffset(Offset = "0xC4")]
		[Token(Token = "0x4002FA6")]
		[Attribute(Name = "RangeAttribute", RVA = "0xDF060", Offset = "0xDE460")]
		public int clampSmoothing;

		// Token: 0x04002FA7 RID: 12199
		[FieldOffset(Offset = "0xC8")]
		[Token(Token = "0x4002FA7")]
		public IKSolver.IterationDelegate OnPreIteration;

		// Token: 0x04002FA8 RID: 12200
		[FieldOffset(Offset = "0xD0")]
		[Token(Token = "0x4002FA8")]
		private float step;

		// Token: 0x04002FA9 RID: 12201
		[FieldOffset(Offset = "0xD4")]
		[Token(Token = "0x4002FA9")]
		private Vector3 clampedIKPosition;

		// Token: 0x04002FAA RID: 12202
		[FieldOffset(Offset = "0xE0")]
		[Token(Token = "0x4002FAA")]
		private RotationLimit transformLimit;

		// Token: 0x04002FAB RID: 12203
		[FieldOffset(Offset = "0xE8")]
		[Token(Token = "0x4002FAB")]
		private Transform lastTransform;
	}
}
