using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x020003F8 RID: 1016
	[Token(Token = "0x20003F8")]
	[Serializable]
	public class Finger
	{
		// Token: 0x17000210 RID: 528
		// (get) Token: 0x06002451 RID: 9297 RVA: 0x00052EFC File Offset: 0x000510FC
		// (set) Token: 0x06002452 RID: 9298 RVA: 0x00052F10 File Offset: 0x00051110
		[Token(Token = "0x17000210")]
		public bool initiated
		{
			[Token(Token = "0x6002451")]
			[Address(RVA = "0x4C04C0", Offset = "0x4BF2C0", VA = "0x1804C04C0")]
			get;
			[Token(Token = "0x6002452")]
			[Address(RVA = "0x4C0520", Offset = "0x4BF320", VA = "0x1804C0520")]
			private set;
		}

		// Token: 0x17000211 RID: 529
		// (get) Token: 0x06002453 RID: 9299 RVA: 0x000020D3 File Offset: 0x000002D3
		// (set) Token: 0x06002454 RID: 9300 RVA: 0x00052F24 File Offset: 0x00051124
		[Token(Token = "0x17000211")]
		public Vector3 IKPosition
		{
			[Token(Token = "0x6002453")]
			[Address(RVA = "0x4C0460", Offset = "0x4BF260", VA = "0x1804C0460")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
			[Token(Token = "0x6002454")]
			[Address(RVA = "0x4C04D0", Offset = "0x4BF2D0", VA = "0x1804C04D0")]
			set
			{
				IKSolverLimb iksolverLimb = this.solver;
				float z = value.z;
				iksolverLimb.IKPosition.z = z;
			}
		}

		// Token: 0x17000212 RID: 530
		// (get) Token: 0x06002455 RID: 9301 RVA: 0x000020D3 File Offset: 0x000002D3
		// (set) Token: 0x06002456 RID: 9302 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000212")]
		public Quaternion IKRotation
		{
			[Token(Token = "0x6002455")]
			[Address(RVA = "0x4C0490", Offset = "0x4BF290", VA = "0x1804C0490")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
			[Token(Token = "0x6002456")]
			[Address(RVA = "0x4C0500", Offset = "0x4BF300", VA = "0x1804C0500")]
			set
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002457 RID: 9303 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002457")]
		[Address(RVA = "0x4C00C0", Offset = "0x4BEEC0", VA = "0x1804C00C0")]
		public bool IsValid(ref string errorMessage)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002458 RID: 9304 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002458")]
		[Address(RVA = "0x4BFDE0", Offset = "0x4BEBE0", VA = "0x1804BFDE0")]
		public void Initiate(Transform hand, int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002459 RID: 9305 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002459")]
		[Address(RVA = "0x4BFD00", Offset = "0x4BEB00", VA = "0x1804BFD00")]
		public void FixTransforms()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600245A RID: 9306 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600245A")]
		[Address(RVA = "0x4C01E0", Offset = "0x4BEFE0", VA = "0x1804C01E0")]
		public void Update(float masterWeight)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600245B RID: 9307 RVA: 0x00052F54 File Offset: 0x00051154
		[Token(Token = "0x600245B")]
		[Address(RVA = "0x4C0450", Offset = "0x4BF250", VA = "0x1804C0450")]
		public Finger()
		{
		}

		// Token: 0x04002E13 RID: 11795
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4002E13")]
		[Tooltip("Master Weight for the finger.")]
		[Range(0f, 1f)]
		public float weight = 1f;

		// Token: 0x04002E14 RID: 11796
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002E14")]
		[Tooltip("The first bone of the finger.")]
		public Transform bone1;

		// Token: 0x04002E15 RID: 11797
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002E15")]
		[Tooltip("The second bone of the finger.")]
		public Transform bone2;

		// Token: 0x04002E16 RID: 11798
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002E16")]
		[Tooltip("The (optional) third bone of the finger. This can be ignored for thumbs.")]
		public Transform bone3;

		// Token: 0x04002E17 RID: 11799
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002E17")]
		[Tooltip("The fingertip object. If your character doesn't have tip bones, you can create an empty GameObject and parent it to the last bone in the finger. Place it to the tip of the finger.")]
		public Transform tip;

		// Token: 0x04002E18 RID: 11800
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002E18")]
		[Tooltip("The IK target (optional, can use IKPosition and IKRotation directly).")]
		public Transform target;

		// Token: 0x04002E1A RID: 11802
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002E1A")]
		private IKSolverLimb solver;

		// Token: 0x04002E1B RID: 11803
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002E1B")]
		private Quaternion bone3RelativeToTarget;

		// Token: 0x04002E1C RID: 11804
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002E1C")]
		private Vector3 bone3DefaultLocalPosition;

		// Token: 0x04002E1D RID: 11805
		[FieldOffset(Offset = "0x6C")]
		[Token(Token = "0x4002E1D")]
		private Quaternion bone3DefaultLocalRotation;
	}
}
