using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x0200049C RID: 1180
	[Token(Token = "0x200049C")]
	public class TwistRelaxer : MonoBehaviour
	{
		// Token: 0x06002A3B RID: 10811 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A3B")]
		[Address(RVA = "0xF6AE70", Offset = "0xF69E70", VA = "0x180F6AE70")]
		public void Relax()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A3C RID: 10812 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A3C")]
		[Address(RVA = "0xF6B1F0", Offset = "0xF6A1F0", VA = "0x180F6B1F0")]
		private void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A3D RID: 10813 RVA: 0x0005E71C File Offset: 0x0005C91C
		[Token(Token = "0x6002A3D")]
		[Address(RVA = "0xF6AE60", Offset = "0xF69E60", VA = "0x180F6AE60")]
		private void LateUpdate()
		{
			this.Relax();
		}

		// Token: 0x06002A3E RID: 10814 RVA: 0x0005E730 File Offset: 0x0005C930
		[Token(Token = "0x6002A3E")]
		[Address(RVA = "0xF6B550", Offset = "0xF6A550", VA = "0x180F6B550")]
		public TwistRelaxer()
		{
			float z = Vector3.right.z;
			this.twistAxis.z = z;
			float z2 = Vector3.forward.z;
			this.axis.z = z2;
			base..ctor();
		}

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

		// Token: 0x040033D3 RID: 13267
		[FieldOffset(Offset = "0x1C")]
		[Token(Token = "0x40033D3")]
		[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: 0x040033D4 RID: 13268
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x40033D4")]
		private Vector3 twistAxis;

		// Token: 0x040033D5 RID: 13269
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x40033D5")]
		private Vector3 axis;

		// Token: 0x040033D6 RID: 13270
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x40033D6")]
		private Vector3 axisRelativeToParentDefault;

		// Token: 0x040033D7 RID: 13271
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x40033D7")]
		private Vector3 axisRelativeToChildDefault;

		// Token: 0x040033D8 RID: 13272
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x40033D8")]
		private Transform parent;

		// Token: 0x040033D9 RID: 13273
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x40033D9")]
		private Transform child;
	}
}
