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

namespace RootMotion.Demos
{
	// Token: 0x02000424 RID: 1060
	[Token(Token = "0x2000424")]
	[RequireComponent(typeof(FullBodyBipedIK))]
	public class PendulumExample : MonoBehaviour
	{
		// Token: 0x0600264C RID: 9804 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600264C")]
		[Address(RVA = "0x331AD0", Offset = "0x330AD0", VA = "0x180331AD0")]
		private void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600264D RID: 9805 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600264D")]
		[Address(RVA = "0x331180", Offset = "0x330180", VA = "0x180331180")]
		private void LateUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600264E RID: 9806 RVA: 0x0005868C File Offset: 0x0005688C
		[Token(Token = "0x600264E")]
		[Address(RVA = "0x331E80", Offset = "0x330E80", VA = "0x180331E80")]
		public PendulumExample()
		{
			float z = Vector3.right.z;
			this.pelvisDownAxis.z = z;
			base..ctor();
		}

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

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

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

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

		// Token: 0x04002FF8 RID: 12280
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002FF8")]
		[SerializeField]
		private Transform target;

		// Token: 0x04002FF9 RID: 12281
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002FF9")]
		[SerializeField]
		private Transform leftHandTarget;

		// Token: 0x04002FFA RID: 12282
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002FFA")]
		[SerializeField]
		private Transform rightHandTarget;

		// Token: 0x04002FFB RID: 12283
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4002FFB")]
		[SerializeField]
		private Transform leftFootTarget;

		// Token: 0x04002FFC RID: 12284
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002FFC")]
		[SerializeField]
		private Transform rightFootTarget;

		// Token: 0x04002FFD RID: 12285
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4002FFD")]
		[SerializeField]
		private Transform pelvisTarget;

		// Token: 0x04002FFE RID: 12286
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002FFE")]
		[SerializeField]
		private Transform bodyTarget;

		// Token: 0x04002FFF RID: 12287
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4002FFF")]
		[SerializeField]
		private Transform headTarget;

		// Token: 0x04003000 RID: 12288
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4003000")]
		[SerializeField]
		private Vector3 pelvisDownAxis;

		// Token: 0x04003001 RID: 12289
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4003001")]
		private FullBodyBipedIK ik;

		// Token: 0x04003002 RID: 12290
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4003002")]
		private Quaternion rootRelativeToPelvis;

		// Token: 0x04003003 RID: 12291
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x4003003")]
		private Vector3 pelvisToRoot;

		// Token: 0x04003004 RID: 12292
		[FieldOffset(Offset = "0xB4")]
		[Token(Token = "0x4003004")]
		private float lastWeight;
	}
}
