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

namespace MTAssets.UltimateLODSystem
{
	// Token: 0x0200061A RID: 1562
	public class UltimateLevelOfDetailGlobal : MonoBehaviour
	{
		// Token: 0x0600A023 RID: 40995 RVA: 0x0028FD28 File Offset: 0x0028DF28
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624116, XrefRangeEnd = 624120, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static bool isGlobalULodSystemEnabled()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_isGlobalULodSystemEnabled_Public_Static_Boolean_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A024 RID: 40996 RVA: 0x0028FD6C File Offset: 0x0028DF6C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624120, XrefRangeEnd = 624124, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void EnableGlobalULodSystem(bool enable)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref enable;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_EnableGlobalULodSystem_Public_Static_Void_Boolean_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x0600A025 RID: 40997 RVA: 0x0028FDB4 File Offset: 0x0028DFB4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624124, XrefRangeEnd = 624128, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void SetGlobalLodDistanceMultiplier(float multiplier)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref multiplier;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_SetGlobalLodDistanceMultiplier_Public_Static_Void_Single_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x0600A026 RID: 40998 RVA: 0x0028FDFC File Offset: 0x0028DFFC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624128, XrefRangeEnd = 624132, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static float GetGlobalLodDistanceMultiplier()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetGlobalLodDistanceMultiplier_Public_Static_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A027 RID: 40999 RVA: 0x0028FE40 File Offset: 0x0028E040
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624132, XrefRangeEnd = 624142, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh GetSimplifiedVersionOfThisMesh(Mesh meshToSimplify, bool isSkinnedMesh, bool skinnedAnimsCompatibilityMode, bool simplificationDestroyerMode, bool preventArtifacts, float percentOfVerticesOfSimplifyiedVersion)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(meshToSimplify);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref isSkinnedMesh;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref skinnedAnimsCompatibilityMode;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref simplificationDestroyerMode;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref preventArtifacts;
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref percentOfVerticesOfSimplifyiedVersion;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetSimplifiedVersionOfThisMesh_Public_Static_Mesh_Mesh_Boolean_Boolean_Boolean_Boolean_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new Mesh(intPtr3) : null;
		}

		// Token: 0x0600A028 RID: 41000 RVA: 0x0028FF00 File Offset: 0x0028E100
		[CallerCount(63)]
		[CachedScanResults(RefRangeStart = 222154, RefRangeEnd = 222217, XrefRangeStart = 222154, XrefRangeEnd = 222217, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe UltimateLevelOfDetailGlobal()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A029 RID: 41001 RVA: 0x0028FF4C File Offset: 0x0028E14C
		// Note: this type is marked as 'beforefieldinit'.
		static UltimateLevelOfDetailGlobal()
		{
			Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem", "UltimateLevelOfDetailGlobal");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr);
			UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_enableGlobalUlodSystem = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, "enableGlobalUlodSystem");
			UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_lodDistanceMultiplier = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, "lodDistanceMultiplier");
			UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, "currentCameraThatIsOnTopOfScreenInThisScene");
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_isGlobalULodSystemEnabled_Public_Static_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100675614);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_EnableGlobalULodSystem_Public_Static_Void_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100675615);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_SetGlobalLodDistanceMultiplier_Public_Static_Void_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100675616);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetGlobalLodDistanceMultiplier_Public_Static_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100675617);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetSimplifiedVersionOfThisMesh_Public_Static_Mesh_Mesh_Boolean_Boolean_Boolean_Boolean_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100675618);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100675619);
		}

		// Token: 0x0600A02A RID: 41002 RVA: 0x0000351C File Offset: 0x0000171C
		public UltimateLevelOfDetailGlobal(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003659 RID: 13913
		// (get) Token: 0x0600A02B RID: 41003 RVA: 0x00290030 File Offset: 0x0028E230
		// (set) Token: 0x0600A02C RID: 41004 RVA: 0x0029004E File Offset: 0x0028E24E
		public unsafe static bool enableGlobalUlodSystem
		{
			get
			{
				bool flag;
				IL2CPP.il2cpp_field_static_get_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_enableGlobalUlodSystem, (void*)(&flag));
				return flag;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_enableGlobalUlodSystem, (void*)(&value));
			}
		}

		// Token: 0x1700365A RID: 13914
		// (get) Token: 0x0600A02D RID: 41005 RVA: 0x00290060 File Offset: 0x0028E260
		// (set) Token: 0x0600A02E RID: 41006 RVA: 0x0029007E File Offset: 0x0028E27E
		public unsafe static float lodDistanceMultiplier
		{
			get
			{
				float num;
				IL2CPP.il2cpp_field_static_get_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_lodDistanceMultiplier, (void*)(&num));
				return num;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_lodDistanceMultiplier, (void*)(&value));
			}
		}

		// Token: 0x1700365B RID: 13915
		// (get) Token: 0x0600A02F RID: 41007 RVA: 0x00290090 File Offset: 0x0028E290
		// (set) Token: 0x0600A030 RID: 41008 RVA: 0x002900BB File Offset: 0x0028E2BB
		public unsafe static Camera currentCameraThatIsOnTopOfScreenInThisScene
		{
			get
			{
				IntPtr intPtr;
				IL2CPP.il2cpp_field_static_get_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene, (void*)(&intPtr));
				IntPtr intPtr2 = intPtr;
				return (intPtr2 != 0) ? new Camera(intPtr2) : null;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene, IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04006B3F RID: 27455
		private static readonly IntPtr NativeFieldInfoPtr_enableGlobalUlodSystem;

		// Token: 0x04006B40 RID: 27456
		private static readonly IntPtr NativeFieldInfoPtr_lodDistanceMultiplier;

		// Token: 0x04006B41 RID: 27457
		private static readonly IntPtr NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene;

		// Token: 0x04006B42 RID: 27458
		private static readonly IntPtr NativeMethodInfoPtr_isGlobalULodSystemEnabled_Public_Static_Boolean_0;

		// Token: 0x04006B43 RID: 27459
		private static readonly IntPtr NativeMethodInfoPtr_EnableGlobalULodSystem_Public_Static_Void_Boolean_0;

		// Token: 0x04006B44 RID: 27460
		private static readonly IntPtr NativeMethodInfoPtr_SetGlobalLodDistanceMultiplier_Public_Static_Void_Single_0;

		// Token: 0x04006B45 RID: 27461
		private static readonly IntPtr NativeMethodInfoPtr_GetGlobalLodDistanceMultiplier_Public_Static_Single_0;

		// Token: 0x04006B46 RID: 27462
		private static readonly IntPtr NativeMethodInfoPtr_GetSimplifiedVersionOfThisMesh_Public_Static_Mesh_Mesh_Boolean_Boolean_Boolean_Boolean_Single_0;

		// Token: 0x04006B47 RID: 27463
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
