using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x0200045B RID: 1115
	[Token(Token = "0x200045B")]
	public abstract class Poser : SolverManager
	{
		// Token: 0x06002826 RID: 10278
		[Token(Token = "0x6002826")]
		[Address(Slot = "7")]
		public abstract void AutoMapping();

		// Token: 0x06002827 RID: 10279
		[Token(Token = "0x6002827")]
		[Address(Slot = "8")]
		protected abstract void InitiatePoser();

		// Token: 0x06002828 RID: 10280
		[Token(Token = "0x6002828")]
		[Address(Slot = "9")]
		protected abstract void UpdatePoser();

		// Token: 0x06002829 RID: 10281
		[Token(Token = "0x6002829")]
		[Address(Slot = "10")]
		protected abstract void FixPoserTransforms();

		// Token: 0x0600282A RID: 10282 RVA: 0x00058CF0 File Offset: 0x00056EF0
		[Token(Token = "0x600282A")]
		[Address(RVA = "0xBDC470", Offset = "0xBDB270", VA = "0x180BDC470", Slot = "5")]
		protected override void UpdateSolver()
		{
			if (!this.initiated)
			{
				this.InitiateSolver();
				if (!this.initiated)
				{
					return;
				}
			}
			this.AutoMapping();
		}

		// Token: 0x0600282B RID: 10283 RVA: 0x00058D1C File Offset: 0x00056F1C
		[Token(Token = "0x600282B")]
		[Address(RVA = "0xBDC440", Offset = "0xBDB240", VA = "0x180BDC440", Slot = "4")]
		protected override void InitiateSolver()
		{
			if (!this.initiated)
			{
				this.InitiatePoser();
				this.initiated = true;
			}
		}

		// Token: 0x0600282C RID: 10284 RVA: 0x00058D40 File Offset: 0x00056F40
		[Token(Token = "0x600282C")]
		[Address(RVA = "0xBDC420", Offset = "0xBDB220", VA = "0x180BDC420", Slot = "6")]
		protected override void FixTransforms()
		{
			if (this.initiated)
			{
				this.AutoMapping();
				return;
			}
		}

		// Token: 0x0600282D RID: 10285 RVA: 0x00058D60 File Offset: 0x00056F60
		[Token(Token = "0x600282D")]
		[Address(RVA = "0xBDC4C0", Offset = "0xBDB2C0", VA = "0x180BDC4C0")]
		protected Poser()
		{
		}

		// Token: 0x04003185 RID: 12677
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003185")]
		public Transform poseRoot;

		// Token: 0x04003186 RID: 12678
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4003186")]
		[Range(0f, 1f)]
		public float weight = 1f;

		// Token: 0x04003187 RID: 12679
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4003187")]
		[Range(0f, 1f)]
		public float localRotationWeight = 1f;

		// Token: 0x04003188 RID: 12680
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003188")]
		[Range(0f, 1f)]
		public float localPositionWeight;

		// Token: 0x04003189 RID: 12681
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4003189")]
		private bool initiated;
	}
}
