using System;
using Cpp2IlInjected;
using RootMotion.FinalIK;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x020003CC RID: 972
	[Token(Token = "0x20003CC")]
	[RequireComponent(typeof(FullBodyBipedIK))]
	public class PendulumExample : MonoBehaviour
	{
		// Token: 0x06002383 RID: 9091 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002383")]
		[Address(RVA = "0x311150", Offset = "0x30FF50", VA = "0x180311150")]
		private void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002384 RID: 9092 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002384")]
		[Address(RVA = "0x310800", Offset = "0x30F600", VA = "0x180310800")]
		private void LateUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002385 RID: 9093 RVA: 0x00051434 File Offset: 0x0004F634
		[Token(Token = "0x6002385")]
		[Address(RVA = "0x311500", Offset = "0x310300", VA = "0x180311500")]
		public PendulumExample()
		{
			float z = Vector3.right.z;
			this.pelvisDownAxis.z = z;
			base..ctor();
		}

		// Token: 0x04002D0A RID: 11530
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002D0A")]
		[Tooltip("The master weight of this script.")]
		[Range(0f, 1f)]
		public float weight = 1f;

		// Token: 0x04002D0B RID: 11531
		[FieldOffset(Offset = "0x1C")]
		[Token(Token = "0x4002D0B")]
		[Tooltip("Multiplier for the distance of the root to the target.")]
		public float hangingDistanceMlp = 1.3f;

		// Token: 0x04002D0C RID: 11532
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002D0C")]
		[HideInInspector]
		[Tooltip("Where does the root of the character land when weight is blended out?")]
		public Vector3 rootTargetPosition;

		// Token: 0x04002D0D RID: 11533
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x4002D0D")]
		[HideInInspector]
		[Tooltip("How is the root of the character rotated when weight is blended out?")]
		public Quaternion rootTargetRotation;

		// Token: 0x04002D0E RID: 11534
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002D0E")]
		[SerializeField]
		private Transform target;

		// Token: 0x04002D0F RID: 11535
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002D0F")]
		[SerializeField]
		private Transform leftHandTarget;

		// Token: 0x04002D10 RID: 11536
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002D10")]
		[SerializeField]
		private Transform rightHandTarget;

		// Token: 0x04002D11 RID: 11537
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4002D11")]
		[SerializeField]
		private Transform leftFootTarget;

		// Token: 0x04002D12 RID: 11538
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002D12")]
		[SerializeField]
		private Transform rightFootTarget;

		// Token: 0x04002D13 RID: 11539
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4002D13")]
		[SerializeField]
		private Transform pelvisTarget;

		// Token: 0x04002D14 RID: 11540
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002D14")]
		[SerializeField]
		private Transform bodyTarget;

		// Token: 0x04002D15 RID: 11541
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4002D15")]
		[SerializeField]
		private Transform headTarget;

		// Token: 0x04002D16 RID: 11542
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4002D16")]
		[SerializeField]
		private Vector3 pelvisDownAxis;

		// Token: 0x04002D17 RID: 11543
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4002D17")]
		private FullBodyBipedIK ik;

		// Token: 0x04002D18 RID: 11544
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4002D18")]
		private Quaternion rootRelativeToPelvis;

		// Token: 0x04002D19 RID: 11545
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x4002D19")]
		private Vector3 pelvisToRoot;

		// Token: 0x04002D1A RID: 11546
		[FieldOffset(Offset = "0xB4")]
		[Token(Token = "0x4002D1A")]
		private float lastWeight;
	}
}
