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

namespace RootMotion.FinalIK
{
	// Token: 0x02000474 RID: 1140
	[Token(Token = "0x2000474")]
	[Serializable]
	public class IKMapping
	{
		// Token: 0x06002862 RID: 10338 RVA: 0x0005C03C File Offset: 0x0005A23C
		[Token(Token = "0x6002862")]
		[Address(RVA = "0x4990D0", Offset = "0x4980D0", VA = "0x1804990D0", Slot = "4")]
		public virtual bool IsValid(IKSolver solver, ref string message)
		{
			return true;
		}

		// Token: 0x06002863 RID: 10339 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002863")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "5")]
		public virtual void Initiate(IKSolverFullBody solver)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002864 RID: 10340 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002864")]
		[Address(RVA = "0x170C880", Offset = "0x170B880", VA = "0x18170C880")]
		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: 0x06002865 RID: 10341 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002865")]
		[Address(RVA = "0xD16210", Offset = "0xD15210", VA = "0x180D16210")]
		protected Vector3 SolveFABRIKJoint(Vector3 pos1, Vector3 pos2, float length)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002866 RID: 10342 RVA: 0x0005C04C File Offset: 0x0005A24C
		[Token(Token = "0x6002866")]
		[Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")]
		public IKMapping()
		{
			int num = 0;
			this.Initiate(num);
		}

		// Token: 0x02000475 RID: 1141
		[Token(Token = "0x2000475")]
		[Serializable]
		public class BoneMap
		{
			// Token: 0x06002867 RID: 10343 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002867")]
			[Address(RVA = "0x16A05B0", Offset = "0x169F5B0", VA = "0x1816A05B0")]
			public void Initiate(Transform transform, IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x17000253 RID: 595
			// (get) Token: 0x06002868 RID: 10344 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x17000253")]
			public Vector3 swingDirection
			{
				[Token(Token = "0x6002868")]
				[Address(RVA = "0x16A1B20", Offset = "0x16A0B20", VA = "0x1816A1B20")]
				get
				{
					throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
				}
			}

			// Token: 0x06002869 RID: 10345 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002869")]
			[Address(RVA = "0x16A0FA0", Offset = "0x169FFA0", VA = "0x1816A0FA0")]
			public void StoreDefaultLocalState()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600286A RID: 10346 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600286A")]
			[Address(RVA = "0x16A0290", Offset = "0x169F290", VA = "0x1816A0290")]
			public void FixTransform(bool position)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x17000254 RID: 596
			// (get) Token: 0x0600286B RID: 10347 RVA: 0x0005C064 File Offset: 0x0005A264
			[Token(Token = "0x17000254")]
			public bool isNodeBone
			{
				[Token(Token = "0x600286B")]
				[Address(RVA = "0x16A18F0", Offset = "0x16A08F0", VA = "0x1816A18F0")]
				get
				{
					return this.nodeIndex != -1;
				}
			}

			// Token: 0x0600286C RID: 10348 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600286C")]
			[Address(RVA = "0x16A0A70", Offset = "0x169FA70", VA = "0x1816A0A70")]
			public void SetLength(IKMapping.BoneMap nextBone)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600286D RID: 10349 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600286D")]
			[Address(RVA = "0x16A0C70", Offset = "0x169FC70", VA = "0x1816A0C70")]
			public void SetLocalSwingAxis(IKMapping.BoneMap swingTarget)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600286E RID: 10350 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600286E")]
			[Address(RVA = "0x16A0B20", Offset = "0x169FB20", VA = "0x1816A0B20")]
			public void SetLocalSwingAxis(IKMapping.BoneMap bone1, IKMapping.BoneMap bone2)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600286F RID: 10351 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600286F")]
			[Address(RVA = "0x16A0DB0", Offset = "0x169FDB0", VA = "0x1816A0DB0")]
			public void SetLocalTwistAxis(Vector3 twistDirection, Vector3 normalDirection)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002870 RID: 10352 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002870")]
			[Address(RVA = "0x16A0E50", Offset = "0x169FE50", VA = "0x1816A0E50")]
			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: 0x06002871 RID: 10353 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002871")]
			[Address(RVA = "0x16A1550", Offset = "0x16A0550", VA = "0x1816A1550")]
			public void UpdatePlane(bool rotation, bool position)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002872 RID: 10354 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002872")]
			[Address(RVA = "0x16A0A30", Offset = "0x169FA30", VA = "0x1816A0A30")]
			public void SetIKPosition()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002873 RID: 10355 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002873")]
			[Address(RVA = "0x16A0610", Offset = "0x169F610", VA = "0x1816A0610")]
			public void MaintainRotation()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002874 RID: 10356 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002874")]
			[Address(RVA = "0x16A0F60", Offset = "0x169FF60", VA = "0x1816A0F60")]
			public void SetToIKPosition()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002875 RID: 10357 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002875")]
			[Address(RVA = "0x16A0120", Offset = "0x169F120", VA = "0x1816A0120")]
			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: 0x06002876 RID: 10358 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002876")]
			[Address(RVA = "0x16A02F0", Offset = "0x169F2F0", VA = "0x1816A02F0")]
			public Vector3 GetPlanePosition(IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002877 RID: 10359 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002877")]
			[Address(RVA = "0x16A0650", Offset = "0x169F650", VA = "0x1816A0650")]
			public void PositionToPlane(IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002878 RID: 10360 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002878")]
			[Address(RVA = "0x16A0960", Offset = "0x169F960", VA = "0x1816A0960")]
			public void RotateToPlane(IKSolverFullBody solver, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002879 RID: 10361 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002879")]
			[Address(RVA = "0x16A1000", Offset = "0x16A0000", VA = "0x1816A1000")]
			public void Swing(Vector3 swingTarget, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600287A RID: 10362 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600287A")]
			[Address(RVA = "0x16A11E0", Offset = "0x16A01E0", VA = "0x1816A11E0")]
			public void Swing(Vector3 pos1, Vector3 pos2, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600287B RID: 10363 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600287B")]
			[Address(RVA = "0x16A13D0", Offset = "0x16A03D0", VA = "0x1816A13D0")]
			public void Twist(Vector3 twistDirection, Vector3 normalDirection, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600287C RID: 10364 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600287C")]
			[Address(RVA = "0x16A08D0", Offset = "0x169F8D0", VA = "0x1816A08D0")]
			public void RotateToMaintain(float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600287D RID: 10365 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600287D")]
			[Address(RVA = "0x16A0790", Offset = "0x169F790", VA = "0x1816A0790")]
			public void RotateToEffector(IKSolverFullBody solver, float weight)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600287E RID: 10366 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600287E")]
			[Address(RVA = "0x16A0400", Offset = "0x169F400", VA = "0x1816A0400")]
			private Quaternion GetTargetRotation(IKSolverFullBody solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x17000255 RID: 597
			// (get) Token: 0x0600287F RID: 10367 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x17000255")]
			private Quaternion lastAnimatedTargetRotation
			{
				[Token(Token = "0x600287F")]
				[Address(RVA = "0x16A1900", Offset = "0x16A0900", VA = "0x1816A1900")]
				get
				{
					throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
				}
			}

			// Token: 0x06002880 RID: 10368 RVA: 0x0005C080 File Offset: 0x0005A280
			[Token(Token = "0x6002880")]
			[Address(RVA = "0x16A18C0", Offset = "0x16A08C0", VA = "0x1816A18C0")]
			public BoneMap()
			{
			}

			// Token: 0x0400323B RID: 12859
			[Cpp2IlInjected.FieldOffset(Offset = "0x10")]
			[Token(Token = "0x400323B")]
			public Transform transform;

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

			// Token: 0x0400323D RID: 12861
			[Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
			[Token(Token = "0x400323D")]
			public int nodeIndex;

			// Token: 0x0400323E RID: 12862
			[Cpp2IlInjected.FieldOffset(Offset = "0x20")]
			[Token(Token = "0x400323E")]
			public Vector3 defaultLocalPosition;

			// Token: 0x0400323F RID: 12863
			[Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
			[Token(Token = "0x400323F")]
			public Quaternion defaultLocalRotation;

			// Token: 0x04003240 RID: 12864
			[Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
			[Token(Token = "0x4003240")]
			public Vector3 localSwingAxis;

			// Token: 0x04003241 RID: 12865
			[Cpp2IlInjected.FieldOffset(Offset = "0x48")]
			[Token(Token = "0x4003241")]
			public Vector3 localTwistAxis;

			// Token: 0x04003242 RID: 12866
			[Cpp2IlInjected.FieldOffset(Offset = "0x54")]
			[Token(Token = "0x4003242")]
			public Vector3 planePosition;

			// Token: 0x04003243 RID: 12867
			[Cpp2IlInjected.FieldOffset(Offset = "0x60")]
			[Token(Token = "0x4003243")]
			public Vector3 ikPosition;

			// Token: 0x04003244 RID: 12868
			[Cpp2IlInjected.FieldOffset(Offset = "0x6C")]
			[Token(Token = "0x4003244")]
			public Quaternion defaultLocalTargetRotation;

			// Token: 0x04003245 RID: 12869
			[Cpp2IlInjected.FieldOffset(Offset = "0x7C")]
			[Token(Token = "0x4003245")]
			private Quaternion maintainRotation;

			// Token: 0x04003246 RID: 12870
			[Cpp2IlInjected.FieldOffset(Offset = "0x8C")]
			[Token(Token = "0x4003246")]
			public float length;

			// Token: 0x04003247 RID: 12871
			[Cpp2IlInjected.FieldOffset(Offset = "0x90")]
			[Token(Token = "0x4003247")]
			public Quaternion animatedRotation;

			// Token: 0x04003248 RID: 12872
			[Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
			[Token(Token = "0x4003248")]
			private Transform planeBone1;

			// Token: 0x04003249 RID: 12873
			[Cpp2IlInjected.FieldOffset(Offset = "0xA8")]
			[Token(Token = "0x4003249")]
			private Transform planeBone2;

			// Token: 0x0400324A RID: 12874
			[Cpp2IlInjected.FieldOffset(Offset = "0xB0")]
			[Token(Token = "0x400324A")]
			private Transform planeBone3;

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

			// Token: 0x0400324C RID: 12876
			[Cpp2IlInjected.FieldOffset(Offset = "0xBC")]
			[Token(Token = "0x400324C")]
			private int plane1NodeIndex;

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

			// Token: 0x0400324E RID: 12878
			[Cpp2IlInjected.FieldOffset(Offset = "0xC4")]
			[Token(Token = "0x400324E")]
			private int plane2NodeIndex;

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

			// Token: 0x04003250 RID: 12880
			[Cpp2IlInjected.FieldOffset(Offset = "0xCC")]
			[Token(Token = "0x4003250")]
			private int plane3NodeIndex;
		}
	}
}
