using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections;
using Il2CppSystem.Collections.Generic;
using UnityEngine;

namespace MTAssets.UltimateLODSystem
{
	// Token: 0x0200061C RID: 1564
	public class UltimateLevelOfDetailOptimizer : MonoBehaviour
	{
		// Token: 0x0600A03F RID: 41023 RVA: 0x0029055C File Offset: 0x0028E75C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624286, XrefRangeEnd = 624293, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Awake()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_Awake_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A040 RID: 41024 RVA: 0x002905A0 File Offset: 0x0028E7A0
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 624313, RefRangeEnd = 624315, XrefRangeStart = 624293, XrefRangeEnd = 624313, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe bool isThisUlodPresentOnUlodsToBeIgnored(UltimateLevelOfDetail ulod)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(ulod);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_isThisUlodPresentOnUlodsToBeIgnored_Private_Boolean_UltimateLevelOfDetail_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x0600A041 RID: 41025 RVA: 0x00290608 File Offset: 0x0028E808
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624315, XrefRangeEnd = 624320, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IEnumerator UlodOptimizationLoop()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_UlodOptimizationLoop_Private_IEnumerator_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new IEnumerator(intPtr3) : null;
		}

		// Token: 0x0600A042 RID: 41026 RVA: 0x00290660 File Offset: 0x0028E860
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624320, XrefRangeEnd = 624341, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe UltimateLevelOfDetailOptimizer()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A043 RID: 41027 RVA: 0x002906AC File Offset: 0x0028E8AC
		// Note: this type is marked as 'beforefieldinit'.
		static UltimateLevelOfDetailOptimizer()
		{
			Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem", "UltimateLevelOfDetailOptimizer");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr);
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "DELAY_BETWEEN_OPTIMIZATION_UPDATES");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "ADITIONAL_CULLING_DISTANCE_OFFSET");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_runtimeInstancesDetector = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "runtimeInstancesDetector");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_instructionsToMakeOnUlods = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "instructionsToMakeOnUlods");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_enableOptimizationTasks = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "enableOptimizationTasks");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ulodsToBeIgnored = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "ulodsToBeIgnored");
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_Awake_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100675629);
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_isThisUlodPresentOnUlodsToBeIgnored_Private_Boolean_UltimateLevelOfDetail_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100675630);
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_UlodOptimizationLoop_Private_IEnumerator_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100675631);
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100675632);
		}

		// Token: 0x0600A044 RID: 41028 RVA: 0x0000351C File Offset: 0x0000171C
		public UltimateLevelOfDetailOptimizer(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x1700365E RID: 13918
		// (get) Token: 0x0600A045 RID: 41029 RVA: 0x002907B8 File Offset: 0x0028E9B8
		// (set) Token: 0x0600A046 RID: 41030 RVA: 0x002907EC File Offset: 0x0028E9EC
		public unsafe WaitForSecondsRealtime DELAY_BETWEEN_OPTIMIZATION_UPDATES
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new WaitForSecondsRealtime(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x1700365F RID: 13919
		// (get) Token: 0x0600A047 RID: 41031 RVA: 0x00290814 File Offset: 0x0028EA14
		// (set) Token: 0x0600A048 RID: 41032 RVA: 0x00290848 File Offset: 0x0028EA48
		public unsafe WaitForSecondsRealtime DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new WaitForSecondsRealtime(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003660 RID: 13920
		// (get) Token: 0x0600A049 RID: 41033 RVA: 0x00290870 File Offset: 0x0028EA70
		// (set) Token: 0x0600A04A RID: 41034 RVA: 0x00290898 File Offset: 0x0028EA98
		public unsafe float ADITIONAL_CULLING_DISTANCE_OFFSET
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET)) = value;
			}
		}

		// Token: 0x17003661 RID: 13921
		// (get) Token: 0x0600A04B RID: 41035 RVA: 0x002908BC File Offset: 0x0028EABC
		// (set) Token: 0x0600A04C RID: 41036 RVA: 0x002908F0 File Offset: 0x0028EAF0
		public unsafe RuntimeInstancesDetector runtimeInstancesDetector
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_runtimeInstancesDetector);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new RuntimeInstancesDetector(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_runtimeInstancesDetector), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003662 RID: 13922
		// (get) Token: 0x0600A04D RID: 41037 RVA: 0x00290918 File Offset: 0x0028EB18
		// (set) Token: 0x0600A04E RID: 41038 RVA: 0x0029094C File Offset: 0x0028EB4C
		public unsafe Il2CppStructArray<int> instructionsToMakeOnUlods
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_instructionsToMakeOnUlods);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStructArray<int>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_instructionsToMakeOnUlods), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003663 RID: 13923
		// (get) Token: 0x0600A04F RID: 41039 RVA: 0x00290974 File Offset: 0x0028EB74
		// (set) Token: 0x0600A050 RID: 41040 RVA: 0x0029099C File Offset: 0x0028EB9C
		public unsafe bool enableOptimizationTasks
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_enableOptimizationTasks);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_enableOptimizationTasks)) = value;
			}
		}

		// Token: 0x17003664 RID: 13924
		// (get) Token: 0x0600A051 RID: 41041 RVA: 0x002909C0 File Offset: 0x0028EBC0
		// (set) Token: 0x0600A052 RID: 41042 RVA: 0x002909F4 File Offset: 0x0028EBF4
		public unsafe List<UltimateLevelOfDetail> ulodsToBeIgnored
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ulodsToBeIgnored);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<UltimateLevelOfDetail>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ulodsToBeIgnored), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04006B52 RID: 27474
		private static readonly IntPtr NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES;

		// Token: 0x04006B53 RID: 27475
		private static readonly IntPtr NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE;

		// Token: 0x04006B54 RID: 27476
		private static readonly IntPtr NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET;

		// Token: 0x04006B55 RID: 27477
		private static readonly IntPtr NativeFieldInfoPtr_runtimeInstancesDetector;

		// Token: 0x04006B56 RID: 27478
		private static readonly IntPtr NativeFieldInfoPtr_instructionsToMakeOnUlods;

		// Token: 0x04006B57 RID: 27479
		private static readonly IntPtr NativeFieldInfoPtr_enableOptimizationTasks;

		// Token: 0x04006B58 RID: 27480
		private static readonly IntPtr NativeFieldInfoPtr_ulodsToBeIgnored;

		// Token: 0x04006B59 RID: 27481
		private static readonly IntPtr NativeMethodInfoPtr_Awake_Public_Void_0;

		// Token: 0x04006B5A RID: 27482
		private static readonly IntPtr NativeMethodInfoPtr_isThisUlodPresentOnUlodsToBeIgnored_Private_Boolean_UltimateLevelOfDetail_0;

		// Token: 0x04006B5B RID: 27483
		private static readonly IntPtr NativeMethodInfoPtr_UlodOptimizationLoop_Private_IEnumerator_0;

		// Token: 0x04006B5C RID: 27484
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x0200061D RID: 1565
		[ObfuscatedName("MTAssets.UltimateLODSystem.UltimateLevelOfDetailOptimizer/<UlodOptimizationLoop>d__9")]
		public sealed class _UlodOptimizationLoop_d__9 : Il2CppSystem.Object
		{
			// Token: 0x0600A053 RID: 41043 RVA: 0x00290A1C File Offset: 0x0028EC1C
			[CallerCount(323)]
			[CachedScanResults(RefRangeStart = 12254, RefRangeEnd = 12577, XrefRangeStart = 12254, XrefRangeEnd = 12577, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe _UlodOptimizationLoop_d__9(int <>1__state)
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr))
			{
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref <>1__state;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr__ctor_Public_Void_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}

			// Token: 0x0600A054 RID: 41044 RVA: 0x00290A7C File Offset: 0x0028EC7C
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 624184, RefRangeEnd = 624185, XrefRangeStart = 624180, XrefRangeEnd = 624184, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_IDisposable_Dispose()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x0600A055 RID: 41045 RVA: 0x00290AC0 File Offset: 0x0028ECC0
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624185, XrefRangeEnd = 624278, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe bool MoveNext()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}

			// Token: 0x0600A056 RID: 41046 RVA: 0x00290B10 File Offset: 0x0028ED10
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624278, XrefRangeEnd = 624281, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void __m__Finally1()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr___m__Finally1_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x1700366A RID: 13930
			// (get) Token: 0x0600A057 RID: 41047 RVA: 0x00290B54 File Offset: 0x0028ED54
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7233, RefRangeEnd = 7243, XrefRangeStart = 7233, XrefRangeEnd = 7243, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A058 RID: 41048 RVA: 0x00290BAC File Offset: 0x0028EDAC
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624281, XrefRangeEnd = 624286, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_Collections_IEnumerator_Reset()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x1700366B RID: 13931
			// (get) Token: 0x0600A059 RID: 41049 RVA: 0x00290BF0 File Offset: 0x0028EDF0
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7233, RefRangeEnd = 7243, XrefRangeStart = 7233, XrefRangeEnd = 7243, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A05A RID: 41050 RVA: 0x00290C48 File Offset: 0x0028EE48
			// Note: this type is marked as 'beforefieldinit'.
			static _UlodOptimizationLoop_d__9()
			{
				Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "<UlodOptimizationLoop>d__9");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___1__state = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>1__state");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___2__current = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>2__current");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___4__this = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>4__this");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr__i_5__2 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<i>5__2");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___7__wrap2 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>7__wrap2");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr__ctor_Public_Void_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100675633);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100675634);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100675635);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr___m__Finally1_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100675636);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100675637);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100675638);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100675639);
			}

			// Token: 0x0600A05B RID: 41051 RVA: 0x0000A688 File Offset: 0x00008888
			public _UlodOptimizationLoop_d__9(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x17003665 RID: 13925
			// (get) Token: 0x0600A05C RID: 41052 RVA: 0x00290D64 File Offset: 0x0028EF64
			// (set) Token: 0x0600A05D RID: 41053 RVA: 0x00290D8C File Offset: 0x0028EF8C
			public unsafe int __1__state
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___1__state);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___1__state)) = value;
				}
			}

			// Token: 0x17003666 RID: 13926
			// (get) Token: 0x0600A05E RID: 41054 RVA: 0x00290DB0 File Offset: 0x0028EFB0
			// (set) Token: 0x0600A05F RID: 41055 RVA: 0x00290DE4 File Offset: 0x0028EFE4
			public unsafe Il2CppSystem.Object __2__current
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___2__current);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new Il2CppSystem.Object(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___2__current), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17003667 RID: 13927
			// (get) Token: 0x0600A060 RID: 41056 RVA: 0x00290E0C File Offset: 0x0028F00C
			// (set) Token: 0x0600A061 RID: 41057 RVA: 0x00290E40 File Offset: 0x0028F040
			public unsafe UltimateLevelOfDetailOptimizer __4__this
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___4__this);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new UltimateLevelOfDetailOptimizer(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___4__this), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17003668 RID: 13928
			// (get) Token: 0x0600A062 RID: 41058 RVA: 0x00290E68 File Offset: 0x0028F068
			// (set) Token: 0x0600A063 RID: 41059 RVA: 0x00290E90 File Offset: 0x0028F090
			public unsafe int _i_5__2
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr__i_5__2);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr__i_5__2)) = value;
				}
			}

			// Token: 0x17003669 RID: 13929
			// (get) Token: 0x0600A064 RID: 41060 RVA: 0x00290EB4 File Offset: 0x0028F0B4
			// (set) Token: 0x0600A065 RID: 41061 RVA: 0x00290EE6 File Offset: 0x0028F0E6
			public List<UltimateLevelOfDetail>.Enumerator __7__wrap2
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___7__wrap2);
					return new List<UltimateLevelOfDetail>.Enumerator(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<List<UltimateLevelOfDetail>.Enumerator>.NativeClassPtr, intPtr));
				}
				set
				{
					cpblk(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___7__wrap2), IL2CPP.il2cpp_object_unbox(IL2CPP.Il2CppObjectBaseToPtr(value)), IL2CPP.il2cpp_class_value_size(Il2CppClassPointerStore<List<UltimateLevelOfDetail>.Enumerator>.NativeClassPtr, (UIntPtr)0));
				}
			}

			// Token: 0x04006B5D RID: 27485
			private static readonly IntPtr NativeFieldInfoPtr___1__state;

			// Token: 0x04006B5E RID: 27486
			private static readonly IntPtr NativeFieldInfoPtr___2__current;

			// Token: 0x04006B5F RID: 27487
			private static readonly IntPtr NativeFieldInfoPtr___4__this;

			// Token: 0x04006B60 RID: 27488
			private static readonly IntPtr NativeFieldInfoPtr__i_5__2;

			// Token: 0x04006B61 RID: 27489
			private static readonly IntPtr NativeFieldInfoPtr___7__wrap2;

			// Token: 0x04006B62 RID: 27490
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Int32_0;

			// Token: 0x04006B63 RID: 27491
			private static readonly IntPtr NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0;

			// Token: 0x04006B64 RID: 27492
			private static readonly IntPtr NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0;

			// Token: 0x04006B65 RID: 27493
			private static readonly IntPtr NativeMethodInfoPtr___m__Finally1_Private_Void_0;

			// Token: 0x04006B66 RID: 27494
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0;

			// Token: 0x04006B67 RID: 27495
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0;

			// Token: 0x04006B68 RID: 27496
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0;
		}
	}
}
