using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000450 RID: 1104
	[Token(Token = "0x2000450")]
	[Serializable]
	public class Finger
	{
		// Token: 0x17000235 RID: 565
		// (get) Token: 0x0600271A RID: 10010 RVA: 0x0005A228 File Offset: 0x00058428
		// (set) Token: 0x0600271B RID: 10011 RVA: 0x0005A23C File Offset: 0x0005843C
		[Token(Token = "0x17000235")]
		public bool initiated
		{
			[Token(Token = "0x600271A")]
			[Address(RVA = "0x7DD440", Offset = "0x7DC440", VA = "0x1807DD440")]
			get;
			[Token(Token = "0x600271B")]
			[Address(RVA = "0x7DD450", Offset = "0x7DC450", VA = "0x1807DD450")]
			private set;
		}

		// Token: 0x17000236 RID: 566
		// (get) Token: 0x0600271C RID: 10012 RVA: 0x000020D3 File Offset: 0x000002D3
		// (set) Token: 0x0600271D RID: 10013 RVA: 0x0005A250 File Offset: 0x00058450
		[Token(Token = "0x17000236")]
		public Vector3 IKPosition
		{
			[Token(Token = "0x600271C")]
			[Address(RVA = "0xD1C710", Offset = "0xD1B710", VA = "0x180D1C710")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
			[Token(Token = "0x600271D")]
			[Address(RVA = "0xD1C770", Offset = "0xD1B770", VA = "0x180D1C770")]
			set
			{
				IKSolverLimb iksolverLimb = this.solver;
				float z = value.z;
				iksolverLimb.IKPosition.z = z;
			}
		}

		// Token: 0x17000237 RID: 567
		// (get) Token: 0x0600271E RID: 10014 RVA: 0x000020D3 File Offset: 0x000002D3
		// (set) Token: 0x0600271F RID: 10015 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000237")]
		public Quaternion IKRotation
		{
			[Token(Token = "0x600271E")]
			[Address(RVA = "0xD1C740", Offset = "0xD1B740", VA = "0x180D1C740")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
			[Token(Token = "0x600271F")]
			[Address(RVA = "0xD1C7A0", Offset = "0xD1B7A0", VA = "0x180D1C7A0")]
			set
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002720 RID: 10016 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002720")]
		[Address(RVA = "0xD1C370", Offset = "0xD1B370", VA = "0x180D1C370")]
		public bool IsValid(ref string errorMessage)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002721 RID: 10017 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002721")]
		[Address(RVA = "0xD1C090", Offset = "0xD1B090", VA = "0x180D1C090")]
		public void Initiate(Transform hand, int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002722 RID: 10018 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002722")]
		[Address(RVA = "0xD1BFB0", Offset = "0xD1AFB0", VA = "0x180D1BFB0")]
		public void FixTransforms()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002723 RID: 10019 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002723")]
		[Address(RVA = "0xD1C490", Offset = "0xD1B490", VA = "0x180D1C490")]
		public void Update(float masterWeight)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002724 RID: 10020 RVA: 0x0005A280 File Offset: 0x00058480
		[Token(Token = "0x6002724")]
		[Address(RVA = "0xD1C700", Offset = "0xD1B700", VA = "0x180D1C700")]
		public Finger()
		{
		}

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

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

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

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

		// Token: 0x04003101 RID: 12545
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003101")]
		[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: 0x04003102 RID: 12546
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003102")]
		[Tooltip("The IK target (optional, can use IKPosition and IKRotation directly).")]
		public Transform target;

		// Token: 0x04003104 RID: 12548
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003104")]
		private IKSolverLimb solver;

		// Token: 0x04003105 RID: 12549
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4003105")]
		private Quaternion bone3RelativeToTarget;

		// Token: 0x04003106 RID: 12550
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003106")]
		private Vector3 bone3DefaultLocalPosition;

		// Token: 0x04003107 RID: 12551
		[FieldOffset(Offset = "0x6C")]
		[Token(Token = "0x4003107")]
		private Quaternion bone3DefaultLocalRotation;
	}
}
