using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000480 RID: 1152
	[Token(Token = "0x2000480")]
	[Serializable]
	public class IKSolverAim : IKSolverHeuristic
	{
		// Token: 0x060028D2 RID: 10450 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028D2")]
		[Address(RVA = "0x170C9C0", Offset = "0x170B9C0", VA = "0x18170C9C0")]
		public float GetAngle()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000258 RID: 600
		// (get) Token: 0x060028D3 RID: 10451 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000258")]
		public Vector3 transformAxis
		{
			[Token(Token = "0x60028D3")]
			[Address(RVA = "0x170E450", Offset = "0x170D450", VA = "0x18170E450")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x17000259 RID: 601
		// (get) Token: 0x060028D4 RID: 10452 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000259")]
		public Vector3 transformPoleAxis
		{
			[Token(Token = "0x60028D4")]
			[Address(RVA = "0x170E4D0", Offset = "0x170D4D0", VA = "0x18170E4D0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x060028D5 RID: 10453 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028D5")]
		[Address(RVA = "0x170D020", Offset = "0x170C020", VA = "0x18170D020", Slot = "10")]
		protected override void OnInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028D6 RID: 10454 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028D6")]
		[Address(RVA = "0x170D3E0", Offset = "0x170C3E0", VA = "0x18170D3E0", Slot = "11")]
		protected override void OnUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x1700025A RID: 602
		// (get) Token: 0x060028D7 RID: 10455 RVA: 0x0005C9D4 File Offset: 0x0005ABD4
		[Token(Token = "0x1700025A")]
		protected override int minBones
		{
			[Token(Token = "0x60028D7")]
			[Address(RVA = "0x367A80", Offset = "0x366A80", VA = "0x180367A80", Slot = "12")]
			get
			{
				return 1;
			}
		}

		// Token: 0x060028D8 RID: 10456 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028D8")]
		[Address(RVA = "0x170E1D0", Offset = "0x170D1D0", VA = "0x18170E1D0")]
		private void Solve()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028D9 RID: 10457 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028D9")]
		[Address(RVA = "0x170CAE0", Offset = "0x170BAE0", VA = "0x18170CAE0")]
		private Vector3 GetClampedIKPosition()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060028DA RID: 10458 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60028DA")]
		[Address(RVA = "0x170DB40", Offset = "0x170CB40", VA = "0x18170DB40")]
		private void RotateToTarget(Vector3 targetPosition, IKSolver.Bone bone, float weight)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x1700025B RID: 603
		// (get) Token: 0x060028DB RID: 10459 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x1700025B")]
		protected override Vector3 localDirection
		{
			[Token(Token = "0x60028DB")]
			[Address(RVA = "0x170E380", Offset = "0x170D380", VA = "0x18170E380", Slot = "15")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x060028DC RID: 10460 RVA: 0x0005C9E4 File Offset: 0x0005ABE4
		[Token(Token = "0x60028DC")]
		[Address(RVA = "0x170E310", Offset = "0x170D310", VA = "0x18170E310")]
		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);
			base..ctor();
		}

		// Token: 0x04003289 RID: 12937
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4003289")]
		public Transform transform;

		// Token: 0x0400328A RID: 12938
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x400328A")]
		public Vector3 axis;

		// Token: 0x0400328B RID: 12939
		[FieldOffset(Offset = "0x9C")]
		[Token(Token = "0x400328B")]
		public Vector3 poleAxis;

		// Token: 0x0400328C RID: 12940
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x400328C")]
		public Vector3 polePosition;

		// Token: 0x0400328D RID: 12941
		[FieldOffset(Offset = "0xB4")]
		[Token(Token = "0x400328D")]
		[Range(0f, 1f)]
		public float poleWeight;

		// Token: 0x0400328E RID: 12942
		[FieldOffset(Offset = "0xB8")]
		[Token(Token = "0x400328E")]
		public Transform poleTarget;

		// Token: 0x0400328F RID: 12943
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x400328F")]
		[Range(0f, 1f)]
		public float clampWeight;

		// Token: 0x04003290 RID: 12944
		[FieldOffset(Offset = "0xC4")]
		[Token(Token = "0x4003290")]
		[Attribute(Name = "RangeAttribute", RVA = "0x25BBB0", Offset = "0x25AFB0")]
		public int clampSmoothing;

		// Token: 0x04003291 RID: 12945
		[FieldOffset(Offset = "0xC8")]
		[Token(Token = "0x4003291")]
		public IKSolver.IterationDelegate OnPreIteration;

		// Token: 0x04003292 RID: 12946
		[FieldOffset(Offset = "0xD0")]
		[Token(Token = "0x4003292")]
		private float step;

		// Token: 0x04003293 RID: 12947
		[FieldOffset(Offset = "0xD4")]
		[Token(Token = "0x4003293")]
		private Vector3 clampedIKPosition;

		// Token: 0x04003294 RID: 12948
		[FieldOffset(Offset = "0xE0")]
		[Token(Token = "0x4003294")]
		private RotationLimit transformLimit;

		// Token: 0x04003295 RID: 12949
		[FieldOffset(Offset = "0xE8")]
		[Token(Token = "0x4003295")]
		private Transform lastTransform;
	}
}
