using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000421 RID: 1057
	[Token(Token = "0x2000421")]
	[Serializable]
	public class IKMappingSpine : IKMapping
	{
		// Token: 0x060025CB RID: 9675 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025CB")]
		[Address(RVA = "0x1184CE0", Offset = "0x1183AE0", VA = "0x181184CE0", Slot = "4")]
		public override bool IsValid(IKSolver solver, ref string message)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025CC RID: 9676 RVA: 0x00055294 File Offset: 0x00053494
		[Token(Token = "0x60025CC")]
		[Address(RVA = "0x1185F00", Offset = "0x1184D00", VA = "0x181185F00")]
		public IKMappingSpine()
		{
			this.iterations = (int)((ulong)3L);
			int num = 0;
			this.twistWeight = 1f;
			IKMapping.BoneMap[] array = new IKMapping.BoneMap[num];
			this.spine = array;
			IKMapping.BoneMap boneMap = new IKMapping.BoneMap();
			this.leftUpperArm = boneMap;
			IKMapping.BoneMap boneMap2 = new IKMapping.BoneMap();
			this.rightUpperArm = boneMap2;
			IKMapping.BoneMap boneMap3 = new IKMapping.BoneMap();
			this.leftThigh = boneMap3;
			IKMapping.BoneMap boneMap4 = new IKMapping.BoneMap();
			this.rightThigh = boneMap4;
			base..ctor();
		}

		// Token: 0x060025CD RID: 9677 RVA: 0x00055304 File Offset: 0x00053504
		[Token(Token = "0x60025CD")]
		[Address(RVA = "0x1186020", Offset = "0x1184E20", VA = "0x181186020")]
		public IKMappingSpine(Transform[] spineBones, Transform leftUpperArmBone, Transform rightUpperArmBone, Transform leftThighBone, Transform rightThighBone)
		{
			/*
An exception occurred when decompiling this method (060025CD)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingSpine::.ctor(UnityEngine.Transform[],UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:int32(IKMappingSpine::iterations, ldloc:IKMappingSpine(this), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](3))); 	stloc:int32(var_0_0A, ldc.i4:int32(0)); 	stfld:float32(IKMappingSpine::twistWeight, ldloc:IKMappingSpine(this), ldc.r4:float32(1)); 	stloc:class RootMotion.FinalIK.IKMapping/BoneMap[](var_1_1C, newarr:class RootMotion.FinalIK.IKMapping/BoneMap[](RootMotion.FinalIK.IKMapping/BoneMap, ldloc:int32(var_0_0A))); 	stfld:class RootMotion.FinalIK.IKMapping/BoneMap[](IKMappingSpine::spine, ldloc:IKMappingSpine(this), ldloc:class RootMotion.FinalIK.IKMapping/BoneMap[](var_1_1C)); 	stloc:BoneMap(var_2_29, newobj:BoneMap(BoneMap::.ctor)); 	stfld:BoneMap(IKMappingSpine::leftUpperArm, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_2_29)); 	stloc:BoneMap(var_3_36, newobj:BoneMap(BoneMap::.ctor)); 	stfld:BoneMap(IKMappingSpine::rightUpperArm, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_3_36)); 	stloc:BoneMap(var_4_43, newobj:BoneMap(BoneMap::.ctor)); 	stfld:BoneMap(IKMappingSpine::leftThigh, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_4_43)); 	stloc:BoneMap(var_5_52, newobj:BoneMap(BoneMap::.ctor)); 	stfld:BoneMap(IKMappingSpine::rightThigh, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_5_52)); 	call:void(object::.ctor, ldloc:IKMappingSpine[exp:object](this)); 	stfld:class [UnityEngine.CoreModule]UnityEngine.Transform[](IKMappingSpine::spineBones, ldloc:IKMappingSpine(this), ldloc:class [UnityEngine.CoreModule]UnityEngine.Transform[](spineBones)); 	stfld:Transform(IKMappingSpine::leftUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(leftUpperArmBone)); 	stfld:Transform(IKMappingSpine::rightUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(rightUpperArmBone)); 	stfld:Transform(IKMappingSpine::leftThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); 	stfld:Transform(IKMappingSpine::rightThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x060025CE RID: 9678 RVA: 0x00055398 File Offset: 0x00053598
		[Token(Token = "0x60025CE")]
		[Address(RVA = "0x1185910", Offset = "0x1184710", VA = "0x181185910")]
		public void SetBones(Transform[] spineBones, Transform leftUpperArmBone, Transform rightUpperArmBone, Transform leftThighBone, Transform rightThighBone)
		{
			/*
An exception occurred when decompiling this method (060025CE)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingSpine::SetBones(UnityEngine.Transform[],UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:class [UnityEngine.CoreModule]UnityEngine.Transform[](IKMappingSpine::spineBones, ldloc:IKMappingSpine(this), ldloc:class [UnityEngine.CoreModule]UnityEngine.Transform[](spineBones)); 	stfld:Transform(IKMappingSpine::leftUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(leftUpperArmBone)); 	stfld:Transform(IKMappingSpine::rightUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(rightUpperArmBone)); 	stfld:Transform(IKMappingSpine::leftThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); 	stfld:Transform(IKMappingSpine::rightThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x060025CF RID: 9679 RVA: 0x000553C8 File Offset: 0x000535C8
		[Token(Token = "0x60025CF")]
		[Address(RVA = "0x1185990", Offset = "0x1184790", VA = "0x181185990")]
		public void StoreDefaultLocalState()
		{
			IKMapping.BoneMap[] array = this.spine;
			int num = 0;
			if (num < array.Length)
			{
				array[num].StoreDefaultLocalState();
				IKMapping.BoneMap[] array2 = this.spine;
				num++;
			}
		}

		// Token: 0x060025D0 RID: 9680 RVA: 0x00055404 File Offset: 0x00053604
		[Token(Token = "0x60025D0")]
		[Address(RVA = "0x11841C0", Offset = "0x1182FC0", VA = "0x1811841C0")]
		public void FixTransforms()
		{
			IKMapping.BoneMap[] array = this.spine;
			int num = 0;
			int num2 = 0;
			if (num2 < array.Length)
			{
				int length = array.Length;
				IKMapping.BoneMap boneMap = array[num];
				if (num == 0)
				{
				}
				int num3 = length - 1;
				bool flag = num == num3;
				boneMap.FixTransform(flag);
				IKMapping.BoneMap[] array2 = this.spine;
				num++;
			}
		}

		// Token: 0x060025D1 RID: 9681 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025D1")]
		[Address(RVA = "0x1184450", Offset = "0x1183250", VA = "0x181184450", Slot = "5")]
		public override void Initiate(IKSolverFullBody solver)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025D2 RID: 9682 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025D2")]
		[Address(RVA = "0x1185A10", Offset = "0x1184810", VA = "0x181185A10")]
		private bool UseFABRIK()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025D3 RID: 9683 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025D3")]
		[Address(RVA = "0x1185530", Offset = "0x1184330", VA = "0x181185530")]
		public void ReadPose()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025D4 RID: 9684 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025D4")]
		[Address(RVA = "0x1185A40", Offset = "0x1184840", VA = "0x181185A40")]
		public void WritePose(IKSolverFullBody solver)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025D5 RID: 9685 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025D5")]
		[Address(RVA = "0x1184260", Offset = "0x1183060", VA = "0x181184260")]
		public void ForwardReach(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025D6 RID: 9686 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025D6")]
		[Address(RVA = "0x1183FE0", Offset = "0x1182DE0", VA = "0x181183FE0")]
		private void BackwardReach(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025D7 RID: 9687 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025D7")]
		[Address(RVA = "0x1185100", Offset = "0x1183F00", VA = "0x181185100")]
		private void MapToSolverPositions(IKSolverFullBody solver)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04002F79 RID: 12153
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4002F79")]
		public Transform[] spineBones;

		// Token: 0x04002F7A RID: 12154
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002F7A")]
		public Transform leftUpperArmBone;

		// Token: 0x04002F7B RID: 12155
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002F7B")]
		public Transform rightUpperArmBone;

		// Token: 0x04002F7C RID: 12156
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002F7C")]
		public Transform leftThighBone;

		// Token: 0x04002F7D RID: 12157
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002F7D")]
		public Transform rightThighBone;

		// Token: 0x04002F7E RID: 12158
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002F7E")]
		[Range(1f, 3f)]
		public int iterations;

		// Token: 0x04002F7F RID: 12159
		[FieldOffset(Offset = "0x3C")]
		[Token(Token = "0x4002F7F")]
		[Range(0f, 1f)]
		public float twistWeight;

		// Token: 0x04002F80 RID: 12160
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002F80")]
		private int rootNodeIndex;

		// Token: 0x04002F81 RID: 12161
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002F81")]
		private IKMapping.BoneMap[] spine;

		// Token: 0x04002F82 RID: 12162
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002F82")]
		private IKMapping.BoneMap leftUpperArm;

		// Token: 0x04002F83 RID: 12163
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4002F83")]
		private IKMapping.BoneMap rightUpperArm;

		// Token: 0x04002F84 RID: 12164
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002F84")]
		private IKMapping.BoneMap leftThigh;

		// Token: 0x04002F85 RID: 12165
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4002F85")]
		private IKMapping.BoneMap rightThigh;

		// Token: 0x04002F86 RID: 12166
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002F86")]
		private bool useFABRIK;
	}
}
