using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;

namespace UnityEngine.PostProcessing
{
	// Token: 0x020005E6 RID: 1510
	[Serializable]
	public sealed class ColorGradingCurve : Object
	{
		// Token: 0x06009FF9 RID: 40953 RVA: 0x00291BF8 File Offset: 0x0028FDF8
		[CallerCount(8)]
		[CachedScanResults(RefRangeStart = 649586, RefRangeEnd = 649594, XrefRangeStart = 649583, XrefRangeEnd = 649586, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ColorGradingCurve(AnimationCurve curve, float zeroValue, bool loop, Vector2 bounds)
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr))
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(curve);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref zeroValue;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref loop;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bounds;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ColorGradingCurve.NativeMethodInfoPtr__ctor_Public_Void_AnimationCurve_Single_Boolean_Vector2_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009FFA RID: 40954 RVA: 0x00291C94 File Offset: 0x0028FE94
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 649610, RefRangeEnd = 649612, XrefRangeStart = 649594, XrefRangeEnd = 649610, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Cache()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ColorGradingCurve.NativeMethodInfoPtr_Cache_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009FFB RID: 40955 RVA: 0x00291CD8 File Offset: 0x0028FED8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 649612, XrefRangeEnd = 649616, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe float Evaluate(float t)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref t;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ColorGradingCurve.NativeMethodInfoPtr_Evaluate_Public_Single_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06009FFC RID: 40956 RVA: 0x00291D3C File Offset: 0x0028FF3C
		// Note: this type is marked as 'beforefieldinit'.
		static ColorGradingCurve()
		{
			Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityEngine.PostProcessing", "ColorGradingCurve");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr);
			ColorGradingCurve.NativeFieldInfoPtr_curve = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "curve");
			ColorGradingCurve.NativeFieldInfoPtr_m_Loop = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_Loop");
			ColorGradingCurve.NativeFieldInfoPtr_m_ZeroValue = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_ZeroValue");
			ColorGradingCurve.NativeFieldInfoPtr_m_Range = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_Range");
			ColorGradingCurve.NativeFieldInfoPtr_m_InternalLoopingCurve = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_InternalLoopingCurve");
			ColorGradingCurve.NativeMethodInfoPtr__ctor_Public_Void_AnimationCurve_Single_Boolean_Vector2_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, 100675805);
			ColorGradingCurve.NativeMethodInfoPtr_Cache_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, 100675806);
			ColorGradingCurve.NativeMethodInfoPtr_Evaluate_Public_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, 100675807);
		}

		// Token: 0x06009FFD RID: 40957 RVA: 0x0000A74C File Offset: 0x0000894C
		public ColorGradingCurve(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170035F2 RID: 13810
		// (get) Token: 0x06009FFE RID: 40958 RVA: 0x00291E0C File Offset: 0x0029000C
		// (set) Token: 0x06009FFF RID: 40959 RVA: 0x00291E40 File Offset: 0x00290040
		public unsafe AnimationCurve curve
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_curve);
				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(ColorGradingCurve.NativeFieldInfoPtr_curve), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170035F3 RID: 13811
		// (get) Token: 0x0600A000 RID: 40960 RVA: 0x00291E68 File Offset: 0x00290068
		// (set) Token: 0x0600A001 RID: 40961 RVA: 0x00291E90 File Offset: 0x00290090
		public unsafe bool m_Loop
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Loop);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Loop)) = value;
			}
		}

		// Token: 0x170035F4 RID: 13812
		// (get) Token: 0x0600A002 RID: 40962 RVA: 0x00291EB4 File Offset: 0x002900B4
		// (set) Token: 0x0600A003 RID: 40963 RVA: 0x00291EDC File Offset: 0x002900DC
		public unsafe float m_ZeroValue
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_ZeroValue);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_ZeroValue)) = value;
			}
		}

		// Token: 0x170035F5 RID: 13813
		// (get) Token: 0x0600A004 RID: 40964 RVA: 0x00291F00 File Offset: 0x00290100
		// (set) Token: 0x0600A005 RID: 40965 RVA: 0x00291F28 File Offset: 0x00290128
		public unsafe float m_Range
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Range);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Range)) = value;
			}
		}

		// Token: 0x170035F6 RID: 13814
		// (get) Token: 0x0600A006 RID: 40966 RVA: 0x00291F4C File Offset: 0x0029014C
		// (set) Token: 0x0600A007 RID: 40967 RVA: 0x00291F80 File Offset: 0x00290180
		public unsafe AnimationCurve m_InternalLoopingCurve
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_InternalLoopingCurve);
				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(ColorGradingCurve.NativeFieldInfoPtr_m_InternalLoopingCurve), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04006B6E RID: 27502
		private static readonly IntPtr NativeFieldInfoPtr_curve;

		// Token: 0x04006B6F RID: 27503
		private static readonly IntPtr NativeFieldInfoPtr_m_Loop;

		// Token: 0x04006B70 RID: 27504
		private static readonly IntPtr NativeFieldInfoPtr_m_ZeroValue;

		// Token: 0x04006B71 RID: 27505
		private static readonly IntPtr NativeFieldInfoPtr_m_Range;

		// Token: 0x04006B72 RID: 27506
		private static readonly IntPtr NativeFieldInfoPtr_m_InternalLoopingCurve;

		// Token: 0x04006B73 RID: 27507
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_AnimationCurve_Single_Boolean_Vector2_0;

		// Token: 0x04006B74 RID: 27508
		private static readonly IntPtr NativeMethodInfoPtr_Cache_Public_Void_0;

		// Token: 0x04006B75 RID: 27509
		private static readonly IntPtr NativeMethodInfoPtr_Evaluate_Public_Single_Single_0;
	}
}
