using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000444 RID: 1092
	[Token(Token = "0x2000444")]
	public class TwistRelaxer : MonoBehaviour
	{
		// Token: 0x06002772 RID: 10098 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002772")]
		[Address(RVA = "0x75A790", Offset = "0x759590", VA = "0x18075A790")]
		public void Relax()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002773 RID: 10099 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002773")]
		[Address(RVA = "0x75AB10", Offset = "0x759910", VA = "0x18075AB10")]
		private void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002774 RID: 10100 RVA: 0x000572D8 File Offset: 0x000554D8
		[Token(Token = "0x6002774")]
		[Address(RVA = "0x75A780", Offset = "0x759580", VA = "0x18075A780")]
		private void LateUpdate()
		{
			this.Relax();
		}

		// Token: 0x06002775 RID: 10101 RVA: 0x000572EC File Offset: 0x000554EC
		[Token(Token = "0x6002775")]
		[Address(RVA = "0x75AE70", Offset = "0x759C70", VA = "0x18075AE70")]
		public TwistRelaxer()
		{
			float z = Vector3.right.z;
			this.twistAxis.z = z;
			float z2 = Vector3.forward.z;
			this.axis.z = z2;
			base..ctor();
		}

		// Token: 0x040030E8 RID: 12520
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x40030E8")]
		[Range(0f, 1f)]
		[Tooltip("The weight of relaxing the twist of this Transform")]
		public float weight = 1f;

		// Token: 0x040030E9 RID: 12521
		[FieldOffset(Offset = "0x1C")]
		[Token(Token = "0x40030E9")]
		[Range(0f, 1f)]
		[Tooltip("If 0.5, this Transform will be twisted half way from parent to child. If 1, the twist angle will be locked to the child and will rotate with along with it.")]
		public float parentChildCrossfade = 0.5f;

		// Token: 0x040030EA RID: 12522
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x40030EA")]
		private Vector3 twistAxis;

		// Token: 0x040030EB RID: 12523
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x40030EB")]
		private Vector3 axis;

		// Token: 0x040030EC RID: 12524
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x40030EC")]
		private Vector3 axisRelativeToParentDefault;

		// Token: 0x040030ED RID: 12525
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x40030ED")]
		private Vector3 axisRelativeToChildDefault;

		// Token: 0x040030EE RID: 12526
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x40030EE")]
		private Transform parent;

		// Token: 0x040030EF RID: 12527
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x40030EF")]
		private Transform child;
	}
}
