using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x020004B3 RID: 1203
	[Token(Token = "0x20004B3")]
	public abstract class Poser : SolverManager
	{
		// Token: 0x06002AEF RID: 10991
		[Token(Token = "0x6002AEF")]
		[Address(Slot = "7")]
		public abstract void AutoMapping();

		// Token: 0x06002AF0 RID: 10992
		[Token(Token = "0x6002AF0")]
		[Address(Slot = "8")]
		protected abstract void InitiatePoser();

		// Token: 0x06002AF1 RID: 10993
		[Token(Token = "0x6002AF1")]
		[Address(Slot = "9")]
		protected abstract void UpdatePoser();

		// Token: 0x06002AF2 RID: 10994
		[Token(Token = "0x6002AF2")]
		[Address(Slot = "10")]
		protected abstract void FixPoserTransforms();

		// Token: 0x06002AF3 RID: 10995 RVA: 0x00060094 File Offset: 0x0005E294
		[Token(Token = "0x6002AF3")]
		[Address(RVA = "0xEB8730", Offset = "0xEB7730", VA = "0x180EB8730", Slot = "5")]
		protected override void UpdateSolver()
		{
			if (!this.initiated)
			{
				this.InitiateSolver();
				if (!this.initiated)
				{
					return;
				}
			}
			this.AutoMapping();
		}

		// Token: 0x06002AF4 RID: 10996 RVA: 0x000600C0 File Offset: 0x0005E2C0
		[Token(Token = "0x6002AF4")]
		[Address(RVA = "0xEB8700", Offset = "0xEB7700", VA = "0x180EB8700", Slot = "4")]
		protected override void InitiateSolver()
		{
			if (!this.initiated)
			{
				this.InitiatePoser();
				this.initiated = true;
			}
		}

		// Token: 0x06002AF5 RID: 10997 RVA: 0x000600E4 File Offset: 0x0005E2E4
		[Token(Token = "0x6002AF5")]
		[Address(RVA = "0xEB86E0", Offset = "0xEB76E0", VA = "0x180EB86E0", Slot = "6")]
		protected override void FixTransforms()
		{
			if (this.initiated)
			{
				this.AutoMapping();
				return;
			}
		}

		// Token: 0x06002AF6 RID: 10998 RVA: 0x00060104 File Offset: 0x0005E304
		[Token(Token = "0x6002AF6")]
		[Address(RVA = "0xEB8780", Offset = "0xEB7780", VA = "0x180EB8780")]
		protected Poser()
		{
		}

		// Token: 0x0400346F RID: 13423
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x400346F")]
		public Transform poseRoot;

		// Token: 0x04003470 RID: 13424
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4003470")]
		[Range(0f, 1f)]
		public float weight = 1f;

		// Token: 0x04003471 RID: 13425
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4003471")]
		[Range(0f, 1f)]
		public float localRotationWeight = 1f;

		// Token: 0x04003472 RID: 13426
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003472")]
		[Range(0f, 1f)]
		public float localPositionWeight;

		// Token: 0x04003473 RID: 13427
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4003473")]
		private bool initiated;
	}
}
