using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x0200041C RID: 1052
	[Token(Token = "0x200041C")]
	[Serializable]
	public class IKMapping
	{
		// Token: 0x06002599 RID: 9625 RVA: 0x00054CE0 File Offset: 0x00052EE0
		[Token(Token = "0x6002599")]
		[Address(RVA = "0x454840", Offset = "0x453640", VA = "0x180454840", Slot = "4")]
		public virtual bool IsValid(IKSolver solver, ref string message)
		{
			return true;
		}

		// Token: 0x0600259A RID: 9626 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600259A")]
		[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "5")]
		public virtual void Initiate(IKSolverFullBody solver)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600259B RID: 9627 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600259B")]
		[Address(RVA = "0x11861B0", Offset = "0x1184FB0", VA = "0x1811861B0")]
		protected bool BoneIsValid(Transform bone, IKSolver solver, ref string message, [Optional] Warning.Logger logger)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600259C RID: 9628 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600259C")]
		[Address(RVA = "0x4BA4D0", Offset = "0x4B92D0", VA = "0x1804BA4D0")]
		protected Vector3 SolveFABRIKJoint(Vector3 pos1, Vector3 pos2, float length)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600259D RID: 9629 RVA: 0x00054CF0 File Offset: 0x00052EF0
		[Token(Token = "0x600259D")]
		[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
		public IKMapping()
		{
			int num = 0;
			this.Initiate(num);
		}

		// Token: 0x0200041D RID: 1053
		[Token(Token = "0x200041D")]
		[Serializable]
		public class BoneMap
		{
			// Token: 0x0600259E RID: 9630 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600259E")]
			[Address(RVA = "0x14E6FB0", Offset = "0x14E5DB0", VA = "0x1814E6FB0")]
			public void Initiate(Transform transform, IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x1700022E RID: 558
			// (get) Token: 0x0600259F RID: 9631 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x1700022E")]
			public Vector3 swingDirection
			{
				[Token(Token = "0x600259F")]
				[Address(RVA = "0x14E84C0", Offset = "0x14E72C0", VA = "0x1814E84C0")]
				get
				{
					throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
				}
			}

			// Token: 0x060025A0 RID: 9632 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A0")]
			[Address(RVA = "0x5FCAF0", Offset = "0x5FB8F0", VA = "0x1805FCAF0")]
			public void StoreDefaultLocalState()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025A1 RID: 9633 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A1")]
			[Address(RVA = "0x14E6C90", Offset = "0x14E5A90", VA = "0x1814E6C90")]
			public void FixTransform(bool position)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x1700022F RID: 559
			// (get) Token: 0x060025A2 RID: 9634 RVA: 0x00054D08 File Offset: 0x00052F08
			[Token(Token = "0x1700022F")]
			public bool isNodeBone
			{
				[Token(Token = "0x60025A2")]
				[Address(RVA = "0x14E8290", Offset = "0x14E7090", VA = "0x1814E8290")]
				get
				{
					return this.nodeIndex != -1;
				}
			}

			// Token: 0x060025A3 RID: 9635 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A3")]
			[Address(RVA = "0x14E7470", Offset = "0x14E6270", VA = "0x1814E7470")]
			public void SetLength(IKMapping.BoneMap nextBone)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025A4 RID: 9636 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A4")]
			[Address(RVA = "0x14E7670", Offset = "0x14E6470", VA = "0x1814E7670")]
			public void SetLocalSwingAxis(IKMapping.BoneMap swingTarget)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025A5 RID: 9637 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A5")]
			[Address(RVA = "0x14E7520", Offset = "0x14E6320", VA = "0x1814E7520")]
			public void SetLocalSwingAxis(IKMapping.BoneMap bone1, IKMapping.BoneMap bone2)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025A6 RID: 9638 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A6")]
			[Address(RVA = "0x14E77B0", Offset = "0x14E65B0", VA = "0x1814E77B0")]
			public void SetLocalTwistAxis(Vector3 twistDirection, Vector3 normalDirection)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025A7 RID: 9639 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A7")]
			[Address(RVA = "0x14E7850", Offset = "0x14E6650", VA = "0x1814E7850")]
			public void SetPlane(IKSolverFullBody solver, Transform planeBone1, Transform planeBone2, Transform planeBone3)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025A8 RID: 9640 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A8")]
			[Address(RVA = "0x14E7EF0", Offset = "0x14E6CF0", VA = "0x1814E7EF0")]
			public void UpdatePlane(bool rotation, bool position)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025A9 RID: 9641 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025A9")]
			[Address(RVA = "0x14E7430", Offset = "0x14E6230", VA = "0x1814E7430")]
			public void SetIKPosition()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025AA RID: 9642 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025AA")]
			[Address(RVA = "0x14E7010", Offset = "0x14E5E10", VA = "0x1814E7010")]
			public void MaintainRotation()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025AB RID: 9643 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025AB")]
			[Address(RVA = "0x14E7960", Offset = "0x14E6760", VA = "0x1814E7960")]
			public void SetToIKPosition()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025AC RID: 9644 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025AC")]
			[Address(RVA = "0x14E6B20", Offset = "0x14E5920", VA = "0x1814E6B20")]
			public void FixToNode(IKSolverFullBody solver, float weight, [Optional] IKSolver.Node fixNode)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025AD RID: 9645 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025AD")]
			[Address(RVA = "0x14E6CF0", Offset = "0x14E5AF0", VA = "0x1814E6CF0")]
			public Vector3 GetPlanePosition(IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025AE RID: 9646 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025AE")]
			[Address(RVA = "0x14E7050", Offset = "0x14E5E50", VA = "0x1814E7050")]
			public void PositionToPlane(IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025AF RID: 9647 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025AF")]
			[Address(RVA = "0x14E7360", Offset = "0x14E6160", VA = "0x1814E7360")]
			public void RotateToPlane(IKSolverFullBody solver, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025B0 RID: 9648 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025B0")]
			[Address(RVA = "0x14E79A0", Offset = "0x14E67A0", VA = "0x1814E79A0")]
			public void Swing(Vector3 swingTarget, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025B1 RID: 9649 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025B1")]
			[Address(RVA = "0x14E7B80", Offset = "0x14E6980", VA = "0x1814E7B80")]
			public void Swing(Vector3 pos1, Vector3 pos2, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025B2 RID: 9650 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025B2")]
			[Address(RVA = "0x14E7D70", Offset = "0x14E6B70", VA = "0x1814E7D70")]
			public void Twist(Vector3 twistDirection, Vector3 normalDirection, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025B3 RID: 9651 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025B3")]
			[Address(RVA = "0x14E72D0", Offset = "0x14E60D0", VA = "0x1814E72D0")]
			public void RotateToMaintain(float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025B4 RID: 9652 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025B4")]
			[Address(RVA = "0x14E7190", Offset = "0x14E5F90", VA = "0x1814E7190")]
			public void RotateToEffector(IKSolverFullBody solver, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060025B5 RID: 9653 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60025B5")]
			[Address(RVA = "0x14E6E00", Offset = "0x14E5C00", VA = "0x1814E6E00")]
			private Quaternion GetTargetRotation(IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x17000230 RID: 560
			// (get) Token: 0x060025B6 RID: 9654 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x17000230")]
			private Quaternion lastAnimatedTargetRotation
			{
				[Token(Token = "0x60025B6")]
				[Address(RVA = "0x14E82A0", Offset = "0x14E70A0", VA = "0x1814E82A0")]
				get
				{
					throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
				}
			}

			// Token: 0x060025B7 RID: 9655 RVA: 0x00054D24 File Offset: 0x00052F24
			[Token(Token = "0x60025B7")]
			[Address(RVA = "0x14E8260", Offset = "0x14E7060", VA = "0x1814E8260")]
			public BoneMap()
			{
			}

			// Token: 0x04002F51 RID: 12113
			[Cpp2IlInjected.FieldOffset(Offset = "0x10")]
			[Token(Token = "0x4002F51")]
			public Transform transform;

			// Token: 0x04002F52 RID: 12114
			[Cpp2IlInjected.FieldOffset(Offset = "0x18")]
			[Token(Token = "0x4002F52")]
			public int chainIndex = (int)((ulong)(-1L));

			// Token: 0x04002F53 RID: 12115
			[Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
			[Token(Token = "0x4002F53")]
			public int nodeIndex;

			// Token: 0x04002F54 RID: 12116
			[Cpp2IlInjected.FieldOffset(Offset = "0x20")]
			[Token(Token = "0x4002F54")]
			public Vector3 defaultLocalPosition;

			// Token: 0x04002F55 RID: 12117
			[Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
			[Token(Token = "0x4002F55")]
			public Quaternion defaultLocalRotation;

			// Token: 0x04002F56 RID: 12118
			[Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
			[Token(Token = "0x4002F56")]
			public Vector3 localSwingAxis;

			// Token: 0x04002F57 RID: 12119
			[Cpp2IlInjected.FieldOffset(Offset = "0x48")]
			[Token(Token = "0x4002F57")]
			public Vector3 localTwistAxis;

			// Token: 0x04002F58 RID: 12120
			[Cpp2IlInjected.FieldOffset(Offset = "0x54")]
			[Token(Token = "0x4002F58")]
			public Vector3 planePosition;

			// Token: 0x04002F59 RID: 12121
			[Cpp2IlInjected.FieldOffset(Offset = "0x60")]
			[Token(Token = "0x4002F59")]
			public Vector3 ikPosition;

			// Token: 0x04002F5A RID: 12122
			[Cpp2IlInjected.FieldOffset(Offset = "0x6C")]
			[Token(Token = "0x4002F5A")]
			public Quaternion defaultLocalTargetRotation;

			// Token: 0x04002F5B RID: 12123
			[Cpp2IlInjected.FieldOffset(Offset = "0x7C")]
			[Token(Token = "0x4002F5B")]
			private Quaternion maintainRotation;

			// Token: 0x04002F5C RID: 12124
			[Cpp2IlInjected.FieldOffset(Offset = "0x8C")]
			[Token(Token = "0x4002F5C")]
			public float length;

			// Token: 0x04002F5D RID: 12125
			[Cpp2IlInjected.FieldOffset(Offset = "0x90")]
			[Token(Token = "0x4002F5D")]
			public Quaternion animatedRotation;

			// Token: 0x04002F5E RID: 12126
			[Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
			[Token(Token = "0x4002F5E")]
			private Transform planeBone1;

			// Token: 0x04002F5F RID: 12127
			[Cpp2IlInjected.FieldOffset(Offset = "0xA8")]
			[Token(Token = "0x4002F5F")]
			private Transform planeBone2;

			// Token: 0x04002F60 RID: 12128
			[Cpp2IlInjected.FieldOffset(Offset = "0xB0")]
			[Token(Token = "0x4002F60")]
			private Transform planeBone3;

			// Token: 0x04002F61 RID: 12129
			[Cpp2IlInjected.FieldOffset(Offset = "0xB8")]
			[Token(Token = "0x4002F61")]
			private int plane1ChainIndex = (int)((ulong)(-1L));

			// Token: 0x04002F62 RID: 12130
			[Cpp2IlInjected.FieldOffset(Offset = "0xBC")]
			[Token(Token = "0x4002F62")]
			private int plane1NodeIndex;

			// Token: 0x04002F63 RID: 12131
			[Cpp2IlInjected.FieldOffset(Offset = "0xC0")]
			[Token(Token = "0x4002F63")]
			private int plane2ChainIndex = (int)((ulong)(-1L));

			// Token: 0x04002F64 RID: 12132
			[Cpp2IlInjected.FieldOffset(Offset = "0xC4")]
			[Token(Token = "0x4002F64")]
			private int plane2NodeIndex;

			// Token: 0x04002F65 RID: 12133
			[Cpp2IlInjected.FieldOffset(Offset = "0xC8")]
			[Token(Token = "0x4002F65")]
			private int plane3ChainIndex = (int)((ulong)(-1L));

			// Token: 0x04002F66 RID: 12134
			[Cpp2IlInjected.FieldOffset(Offset = "0xCC")]
			[Token(Token = "0x4002F66")]
			private int plane3NodeIndex;
		}
	}
}
