using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using RootMotion.FinalIK;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x02000416 RID: 1046
	public class AnimationWarping : OffsetModifier
	{
		// Token: 0x06007F30 RID: 32560 RVA: 0x00208744 File Offset: 0x00206944
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623963, XrefRangeEnd = 623964, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void Start()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), AnimationWarping.NativeMethodInfoPtr_Start_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06007F31 RID: 32561 RVA: 0x00208794 File Offset: 0x00206994
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 623981, RefRangeEnd = 623982, XrefRangeStart = 623964, XrefRangeEnd = 623981, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe float GetWarpWeight(int warpIndex)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref warpIndex;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AnimationWarping.NativeMethodInfoPtr_GetWarpWeight_Public_Single_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06007F32 RID: 32562 RVA: 0x002087F8 File Offset: 0x002069F8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623982, XrefRangeEnd = 623994, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void OnModifyOffset()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), AnimationWarping.NativeMethodInfoPtr_OnModifyOffset_Protected_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06007F33 RID: 32563 RVA: 0x00208848 File Offset: 0x00206A48
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623994, XrefRangeEnd = 623996, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDisable()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AnimationWarping.NativeMethodInfoPtr_OnDisable_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06007F34 RID: 32564 RVA: 0x0020888C File Offset: 0x00206A8C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 623996, XrefRangeEnd = 623997, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe AnimationWarping()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AnimationWarping.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06007F35 RID: 32565 RVA: 0x002088D8 File Offset: 0x00206AD8
		// Note: this type is marked as 'beforefieldinit'.
		static AnimationWarping()
		{
			Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.Demos", "AnimationWarping");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr);
			AnimationWarping.NativeFieldInfoPtr_animator = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, "animator");
			AnimationWarping.NativeFieldInfoPtr_effectorMode = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, "effectorMode");
			AnimationWarping.NativeFieldInfoPtr_warps = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, "warps");
			AnimationWarping.NativeFieldInfoPtr_lastMode = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, "lastMode");
			AnimationWarping.NativeMethodInfoPtr_Start_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100672997);
			AnimationWarping.NativeMethodInfoPtr_GetWarpWeight_Public_Single_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100672998);
			AnimationWarping.NativeMethodInfoPtr_OnModifyOffset_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100672999);
			AnimationWarping.NativeMethodInfoPtr_OnDisable_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100673000);
			AnimationWarping.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100673001);
		}

		// Token: 0x06007F36 RID: 32566 RVA: 0x002089BC File Offset: 0x00206BBC
		public AnimationWarping(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002B35 RID: 11061
		// (get) Token: 0x06007F37 RID: 32567 RVA: 0x002089C8 File Offset: 0x00206BC8
		// (set) Token: 0x06007F38 RID: 32568 RVA: 0x002089FC File Offset: 0x00206BFC
		public unsafe Animator animator
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_animator);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Animator(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_animator), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002B36 RID: 11062
		// (get) Token: 0x06007F39 RID: 32569 RVA: 0x00208A24 File Offset: 0x00206C24
		// (set) Token: 0x06007F3A RID: 32570 RVA: 0x00208A4C File Offset: 0x00206C4C
		public unsafe AnimationWarping.EffectorMode effectorMode
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_effectorMode);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_effectorMode)) = value;
			}
		}

		// Token: 0x17002B37 RID: 11063
		// (get) Token: 0x06007F3B RID: 32571 RVA: 0x00208A70 File Offset: 0x00206C70
		// (set) Token: 0x06007F3C RID: 32572 RVA: 0x00208AA4 File Offset: 0x00206CA4
		public unsafe Il2CppReferenceArray<AnimationWarping.Warp> warps
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_warps);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppReferenceArray<AnimationWarping.Warp>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_warps), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002B38 RID: 11064
		// (get) Token: 0x06007F3D RID: 32573 RVA: 0x00208ACC File Offset: 0x00206CCC
		// (set) Token: 0x06007F3E RID: 32574 RVA: 0x00208AF4 File Offset: 0x00206CF4
		public unsafe AnimationWarping.EffectorMode lastMode
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_lastMode);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.NativeFieldInfoPtr_lastMode)) = value;
			}
		}

		// Token: 0x04005578 RID: 21880
		private static readonly IntPtr NativeFieldInfoPtr_animator;

		// Token: 0x04005579 RID: 21881
		private static readonly IntPtr NativeFieldInfoPtr_effectorMode;

		// Token: 0x0400557A RID: 21882
		private static readonly IntPtr NativeFieldInfoPtr_warps;

		// Token: 0x0400557B RID: 21883
		private static readonly IntPtr NativeFieldInfoPtr_lastMode;

		// Token: 0x0400557C RID: 21884
		private static readonly IntPtr NativeMethodInfoPtr_Start_Protected_Virtual_Void_0;

		// Token: 0x0400557D RID: 21885
		private static readonly IntPtr NativeMethodInfoPtr_GetWarpWeight_Public_Single_Int32_0;

		// Token: 0x0400557E RID: 21886
		private static readonly IntPtr NativeMethodInfoPtr_OnModifyOffset_Protected_Virtual_Void_0;

		// Token: 0x0400557F RID: 21887
		private static readonly IntPtr NativeMethodInfoPtr_OnDisable_Private_Void_0;

		// Token: 0x04005580 RID: 21888
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000417 RID: 1047
		[Serializable]
		public sealed class Warp : ValueType
		{
			// Token: 0x06007F3F RID: 32575 RVA: 0x00208B18 File Offset: 0x00206D18
			// Note: this type is marked as 'beforefieldinit'.
			static Warp()
			{
				Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, "Warp");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr);
				AnimationWarping.Warp.NativeFieldInfoPtr_animationLayer = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, "animationLayer");
				AnimationWarping.Warp.NativeFieldInfoPtr_animationState = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, "animationState");
				AnimationWarping.Warp.NativeFieldInfoPtr_weightCurve = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, "weightCurve");
				AnimationWarping.Warp.NativeFieldInfoPtr_warpFrom = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, "warpFrom");
				AnimationWarping.Warp.NativeFieldInfoPtr_warpTo = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, "warpTo");
				AnimationWarping.Warp.NativeFieldInfoPtr_effector = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, "effector");
			}

			// Token: 0x06007F40 RID: 32576 RVA: 0x001295E7 File Offset: 0x001277E7
			public Warp(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x06007F41 RID: 32577 RVA: 0x00208BBC File Offset: 0x00206DBC
			public unsafe Warp()
			{
				IntPtr intPtr = stackalloc byte[(UIntPtr)IL2CPP.il2cpp_class_value_size(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, (UIntPtr)0)];
				base..ctor(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<AnimationWarping.Warp>.NativeClassPtr, intPtr));
			}

			// Token: 0x17002B39 RID: 11065
			// (get) Token: 0x06007F42 RID: 32578 RVA: 0x00208BEC File Offset: 0x00206DEC
			// (set) Token: 0x06007F43 RID: 32579 RVA: 0x00208C14 File Offset: 0x00206E14
			public unsafe int animationLayer
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_animationLayer);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_animationLayer)) = value;
				}
			}

			// Token: 0x17002B3A RID: 11066
			// (get) Token: 0x06007F44 RID: 32580 RVA: 0x00208C38 File Offset: 0x00206E38
			// (set) Token: 0x06007F45 RID: 32581 RVA: 0x00208C61 File Offset: 0x00206E61
			public unsafe string animationState
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_animationState);
					return IL2CPP.Il2CppStringToManaged(*intPtr);
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_animationState), IL2CPP.ManagedStringToIl2Cpp(value));
				}
			}

			// Token: 0x17002B3B RID: 11067
			// (get) Token: 0x06007F46 RID: 32582 RVA: 0x00208C88 File Offset: 0x00206E88
			// (set) Token: 0x06007F47 RID: 32583 RVA: 0x00208CBC File Offset: 0x00206EBC
			public unsafe AnimationCurve weightCurve
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_weightCurve);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new AnimationCurve(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_weightCurve), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17002B3C RID: 11068
			// (get) Token: 0x06007F48 RID: 32584 RVA: 0x00208CE4 File Offset: 0x00206EE4
			// (set) Token: 0x06007F49 RID: 32585 RVA: 0x00208D18 File Offset: 0x00206F18
			public unsafe Transform warpFrom
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_warpFrom);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new Transform(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_warpFrom), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17002B3D RID: 11069
			// (get) Token: 0x06007F4A RID: 32586 RVA: 0x00208D40 File Offset: 0x00206F40
			// (set) Token: 0x06007F4B RID: 32587 RVA: 0x00208D74 File Offset: 0x00206F74
			public unsafe Transform warpTo
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_warpTo);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new Transform(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_warpTo), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17002B3E RID: 11070
			// (get) Token: 0x06007F4C RID: 32588 RVA: 0x00208D9C File Offset: 0x00206F9C
			// (set) Token: 0x06007F4D RID: 32589 RVA: 0x00208DC4 File Offset: 0x00206FC4
			public unsafe FullBodyBipedEffector effector
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_effector);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AnimationWarping.Warp.NativeFieldInfoPtr_effector)) = value;
				}
			}

			// Token: 0x04005581 RID: 21889
			private static readonly IntPtr NativeFieldInfoPtr_animationLayer;

			// Token: 0x04005582 RID: 21890
			private static readonly IntPtr NativeFieldInfoPtr_animationState;

			// Token: 0x04005583 RID: 21891
			private static readonly IntPtr NativeFieldInfoPtr_weightCurve;

			// Token: 0x04005584 RID: 21892
			private static readonly IntPtr NativeFieldInfoPtr_warpFrom;

			// Token: 0x04005585 RID: 21893
			private static readonly IntPtr NativeFieldInfoPtr_warpTo;

			// Token: 0x04005586 RID: 21894
			private static readonly IntPtr NativeFieldInfoPtr_effector;
		}

		// Token: 0x02000418 RID: 1048
		[Serializable]
		public enum EffectorMode
		{
			// Token: 0x04005588 RID: 21896
			PositionOffset,
			// Token: 0x04005589 RID: 21897
			Position
		}
	}
}
