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: 0x020003BE RID: 958
	public class AnimationWarping : OffsetModifier
	{
		// Token: 0x060076DD RID: 30429 RVA: 0x001E5A08 File Offset: 0x001E3C08
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591658, XrefRangeEnd = 591659, 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: 0x060076DE RID: 30430 RVA: 0x001E5A58 File Offset: 0x001E3C58
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 591676, RefRangeEnd = 591677, XrefRangeStart = 591659, XrefRangeEnd = 591676, 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: 0x060076DF RID: 30431 RVA: 0x001E5ABC File Offset: 0x001E3CBC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591677, XrefRangeEnd = 591689, 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: 0x060076E0 RID: 30432 RVA: 0x001E5B0C File Offset: 0x001E3D0C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591689, XrefRangeEnd = 591691, 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: 0x060076E1 RID: 30433 RVA: 0x001E5B50 File Offset: 0x001E3D50
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 591691, XrefRangeEnd = 591692, 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: 0x060076E2 RID: 30434 RVA: 0x001E5B9C File Offset: 0x001E3D9C
		// 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, 100672284);
			AnimationWarping.NativeMethodInfoPtr_GetWarpWeight_Public_Single_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100672285);
			AnimationWarping.NativeMethodInfoPtr_OnModifyOffset_Protected_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100672286);
			AnimationWarping.NativeMethodInfoPtr_OnDisable_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100672287);
			AnimationWarping.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AnimationWarping>.NativeClassPtr, 100672288);
		}

		// Token: 0x060076E3 RID: 30435 RVA: 0x001E5C80 File Offset: 0x001E3E80
		public AnimationWarping(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x1700289A RID: 10394
		// (get) Token: 0x060076E4 RID: 30436 RVA: 0x001E5C8C File Offset: 0x001E3E8C
		// (set) Token: 0x060076E5 RID: 30437 RVA: 0x001E5CC0 File Offset: 0x001E3EC0
		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: 0x1700289B RID: 10395
		// (get) Token: 0x060076E6 RID: 30438 RVA: 0x001E5CE8 File Offset: 0x001E3EE8
		// (set) Token: 0x060076E7 RID: 30439 RVA: 0x001E5D10 File Offset: 0x001E3F10
		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: 0x1700289C RID: 10396
		// (get) Token: 0x060076E8 RID: 30440 RVA: 0x001E5D34 File Offset: 0x001E3F34
		// (set) Token: 0x060076E9 RID: 30441 RVA: 0x001E5D68 File Offset: 0x001E3F68
		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: 0x1700289D RID: 10397
		// (get) Token: 0x060076EA RID: 30442 RVA: 0x001E5D90 File Offset: 0x001E3F90
		// (set) Token: 0x060076EB RID: 30443 RVA: 0x001E5DB8 File Offset: 0x001E3FB8
		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: 0x04004FCF RID: 20431
		private static readonly IntPtr NativeFieldInfoPtr_animator;

		// Token: 0x04004FD0 RID: 20432
		private static readonly IntPtr NativeFieldInfoPtr_effectorMode;

		// Token: 0x04004FD1 RID: 20433
		private static readonly IntPtr NativeFieldInfoPtr_warps;

		// Token: 0x04004FD2 RID: 20434
		private static readonly IntPtr NativeFieldInfoPtr_lastMode;

		// Token: 0x04004FD3 RID: 20435
		private static readonly IntPtr NativeMethodInfoPtr_Start_Protected_Virtual_Void_0;

		// Token: 0x04004FD4 RID: 20436
		private static readonly IntPtr NativeMethodInfoPtr_GetWarpWeight_Public_Single_Int32_0;

		// Token: 0x04004FD5 RID: 20437
		private static readonly IntPtr NativeMethodInfoPtr_OnModifyOffset_Protected_Virtual_Void_0;

		// Token: 0x04004FD6 RID: 20438
		private static readonly IntPtr NativeMethodInfoPtr_OnDisable_Private_Void_0;

		// Token: 0x04004FD7 RID: 20439
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020003BF RID: 959
		[Serializable]
		public sealed class Warp : ValueType
		{
			// Token: 0x060076EC RID: 30444 RVA: 0x001E5DDC File Offset: 0x001E3FDC
			// 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: 0x060076ED RID: 30445 RVA: 0x0011646F File Offset: 0x0011466F
			public Warp(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x060076EE RID: 30446 RVA: 0x001E5E80 File Offset: 0x001E4080
			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: 0x1700289E RID: 10398
			// (get) Token: 0x060076EF RID: 30447 RVA: 0x001E5EB0 File Offset: 0x001E40B0
			// (set) Token: 0x060076F0 RID: 30448 RVA: 0x001E5ED8 File Offset: 0x001E40D8
			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: 0x1700289F RID: 10399
			// (get) Token: 0x060076F1 RID: 30449 RVA: 0x001E5EFC File Offset: 0x001E40FC
			// (set) Token: 0x060076F2 RID: 30450 RVA: 0x001E5F25 File Offset: 0x001E4125
			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: 0x170028A0 RID: 10400
			// (get) Token: 0x060076F3 RID: 30451 RVA: 0x001E5F4C File Offset: 0x001E414C
			// (set) Token: 0x060076F4 RID: 30452 RVA: 0x001E5F80 File Offset: 0x001E4180
			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: 0x170028A1 RID: 10401
			// (get) Token: 0x060076F5 RID: 30453 RVA: 0x001E5FA8 File Offset: 0x001E41A8
			// (set) Token: 0x060076F6 RID: 30454 RVA: 0x001E5FDC File Offset: 0x001E41DC
			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: 0x170028A2 RID: 10402
			// (get) Token: 0x060076F7 RID: 30455 RVA: 0x001E6004 File Offset: 0x001E4204
			// (set) Token: 0x060076F8 RID: 30456 RVA: 0x001E6038 File Offset: 0x001E4238
			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: 0x170028A3 RID: 10403
			// (get) Token: 0x060076F9 RID: 30457 RVA: 0x001E6060 File Offset: 0x001E4260
			// (set) Token: 0x060076FA RID: 30458 RVA: 0x001E6088 File Offset: 0x001E4288
			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: 0x04004FD8 RID: 20440
			private static readonly IntPtr NativeFieldInfoPtr_animationLayer;

			// Token: 0x04004FD9 RID: 20441
			private static readonly IntPtr NativeFieldInfoPtr_animationState;

			// Token: 0x04004FDA RID: 20442
			private static readonly IntPtr NativeFieldInfoPtr_weightCurve;

			// Token: 0x04004FDB RID: 20443
			private static readonly IntPtr NativeFieldInfoPtr_warpFrom;

			// Token: 0x04004FDC RID: 20444
			private static readonly IntPtr NativeFieldInfoPtr_warpTo;

			// Token: 0x04004FDD RID: 20445
			private static readonly IntPtr NativeFieldInfoPtr_effector;
		}

		// Token: 0x020003C0 RID: 960
		[Serializable]
		public enum EffectorMode
		{
			// Token: 0x04004FDF RID: 20447
			PositionOffset,
			// Token: 0x04004FE0 RID: 20448
			Position
		}
	}
}
