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

namespace MTAssets.UltimateLODSystem.MeshSimplifier
{
	// Token: 0x02000683 RID: 1667
	public static class MeshUtils : Il2CppSystem.Object
	{
		// Token: 0x0600A9C1 RID: 43457 RVA: 0x002B9B48 File Offset: 0x002B7D48
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 658253, XrefRangeEnd = 658257, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh CreateMesh(Il2CppStructArray<Vector3> vertices, Il2CppReferenceArray<Il2CppStructArray<int>> indices, Il2CppStructArray<Vector3> normals, Il2CppStructArray<Vector4> tangents, Il2CppStructArray<Color> colors, Il2CppStructArray<BoneWeight> boneWeights, Il2CppReferenceArray<List<Vector2>> uvs, Il2CppStructArray<Matrix4x4> bindposes, Il2CppReferenceArray<BlendShape> blendShapes)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)9) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(vertices);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(indices);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(normals);
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(tangents);
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(colors);
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(boneWeights);
			ptr[checked(unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(uvs);
			ptr[checked(unchecked((UIntPtr)7) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bindposes);
			ptr[checked(unchecked((UIntPtr)8) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(blendShapes);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector2_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new Mesh(intPtr3) : null;
		}

		// Token: 0x0600A9C2 RID: 43458 RVA: 0x002B9C68 File Offset: 0x002B7E68
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 658261, RefRangeEnd = 658262, XrefRangeStart = 658257, XrefRangeEnd = 658261, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh CreateMesh(Il2CppStructArray<Vector3> vertices, Il2CppReferenceArray<Il2CppStructArray<int>> indices, Il2CppStructArray<Vector3> normals, Il2CppStructArray<Vector4> tangents, Il2CppStructArray<Color> colors, Il2CppStructArray<BoneWeight> boneWeights, Il2CppReferenceArray<List<Vector4>> uvs, Il2CppStructArray<Matrix4x4> bindposes, Il2CppReferenceArray<BlendShape> blendShapes)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)9) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(vertices);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(indices);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(normals);
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(tangents);
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(colors);
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(boneWeights);
			ptr[checked(unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(uvs);
			ptr[checked(unchecked((UIntPtr)7) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bindposes);
			ptr[checked(unchecked((UIntPtr)8) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(blendShapes);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector4_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new Mesh(intPtr3) : null;
		}

		// Token: 0x0600A9C3 RID: 43459 RVA: 0x002B9D88 File Offset: 0x002B7F88
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 658300, RefRangeEnd = 658303, XrefRangeStart = 658262, XrefRangeEnd = 658300, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh CreateMesh(Il2CppStructArray<Vector3> vertices, Il2CppReferenceArray<Il2CppStructArray<int>> indices, Il2CppStructArray<Vector3> normals, Il2CppStructArray<Vector4> tangents, Il2CppStructArray<Color> colors, Il2CppStructArray<BoneWeight> boneWeights, Il2CppReferenceArray<List<Vector2>> uvs2D, Il2CppReferenceArray<List<Vector3>> uvs3D, Il2CppReferenceArray<List<Vector4>> uvs4D, Il2CppStructArray<Matrix4x4> bindposes, Il2CppReferenceArray<BlendShape> blendShapes)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)11) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(vertices);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(indices);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(normals);
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(tangents);
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(colors);
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(boneWeights);
			ptr[checked(unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(uvs2D);
			ptr[checked(unchecked((UIntPtr)7) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(uvs3D);
			ptr[checked(unchecked((UIntPtr)8) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(uvs4D);
			ptr[checked(unchecked((UIntPtr)9) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bindposes);
			ptr[checked(unchecked((UIntPtr)10) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(blendShapes);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector2_Il2CppReferenceArray_1_List_1_Vector3_Il2CppReferenceArray_1_List_1_Vector4_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new Mesh(intPtr3) : null;
		}

		// Token: 0x0600A9C4 RID: 43460 RVA: 0x002B9EDC File Offset: 0x002B80DC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 658330, RefRangeEnd = 658331, XrefRangeStart = 658303, XrefRangeEnd = 658330, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Il2CppReferenceArray<BlendShape> GetMeshBlendShapes(Mesh mesh)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(mesh);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetMeshBlendShapes_Public_Static_Il2CppReferenceArray_1_BlendShape_Mesh_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new Il2CppReferenceArray<BlendShape>(intPtr3) : null;
			}
		}

		// Token: 0x0600A9C5 RID: 43461 RVA: 0x002B9F3C File Offset: 0x002B813C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 658331, XrefRangeEnd = 658339, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void ApplyMeshBlendShapes(Mesh mesh, Il2CppReferenceArray<BlendShape> blendShapes)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(mesh);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(blendShapes);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_ApplyMeshBlendShapes_Public_Static_Void_Mesh_Il2CppReferenceArray_1_BlendShape_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A9C6 RID: 43462 RVA: 0x002B9FA0 File Offset: 0x002B81A0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 658358, RefRangeEnd = 658359, XrefRangeStart = 658339, XrefRangeEnd = 658358, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Il2CppReferenceArray<IList<Vector4>> GetMeshUVs(Mesh mesh)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(mesh);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetMeshUVs_Public_Static_Il2CppReferenceArray_1_IList_1_Vector4_Mesh_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new Il2CppReferenceArray<IList<Vector4>>(intPtr3) : null;
			}
		}

		// Token: 0x0600A9C7 RID: 43463 RVA: 0x002BA000 File Offset: 0x002B8200
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 658375, RefRangeEnd = 658376, XrefRangeStart = 658359, XrefRangeEnd = 658375, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static IList<Vector2> GetMeshUVs2D(Mesh mesh, int channel)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(mesh);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref channel;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetMeshUVs2D_Public_Static_IList_1_Vector2_Mesh_Int32_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new IList<Vector2>(intPtr3) : null;
		}

		// Token: 0x0600A9C8 RID: 43464 RVA: 0x002BA074 File Offset: 0x002B8274
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 658392, RefRangeEnd = 658393, XrefRangeStart = 658376, XrefRangeEnd = 658392, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static IList<Vector3> GetMeshUVs3D(Mesh mesh, int channel)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(mesh);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref channel;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetMeshUVs3D_Public_Static_IList_1_Vector3_Mesh_Int32_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new IList<Vector3>(intPtr3) : null;
		}

		// Token: 0x0600A9C9 RID: 43465 RVA: 0x002BA0E8 File Offset: 0x002B82E8
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 658409, RefRangeEnd = 658412, XrefRangeStart = 658393, XrefRangeEnd = 658409, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static IList<Vector4> GetMeshUVs(Mesh mesh, int channel)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(mesh);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref channel;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetMeshUVs_Public_Static_IList_1_Vector4_Mesh_Int32_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new IList<Vector4>(intPtr3) : null;
		}

		// Token: 0x0600A9CA RID: 43466 RVA: 0x002BA15C File Offset: 0x002B835C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 658434, RefRangeEnd = 658435, XrefRangeStart = 658412, XrefRangeEnd = 658434, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static int GetUsedUVComponents(IList<Vector4> uvs)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(uvs);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetUsedUVComponents_Public_Static_Int32_IList_1_Vector4_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x0600A9CB RID: 43467 RVA: 0x002BA1B4 File Offset: 0x002B83B4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 658435, XrefRangeEnd = 658446, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Il2CppStructArray<Vector2> ConvertUVsTo2D(IList<Vector4> uvs)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(uvs);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_ConvertUVsTo2D_Public_Static_Il2CppStructArray_1_Vector2_IList_1_Vector4_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new Il2CppStructArray<Vector2>(intPtr3) : null;
			}
		}

		// Token: 0x0600A9CC RID: 43468 RVA: 0x002BA214 File Offset: 0x002B8414
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 658446, XrefRangeEnd = 658457, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Il2CppStructArray<Vector3> ConvertUVsTo3D(IList<Vector4> uvs)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(uvs);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_ConvertUVsTo3D_Public_Static_Il2CppStructArray_1_Vector3_IList_1_Vector4_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new Il2CppStructArray<Vector3>(intPtr3) : null;
			}
		}

		// Token: 0x0600A9CD RID: 43469 RVA: 0x002BA274 File Offset: 0x002B8474
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 658465, RefRangeEnd = 658466, XrefRangeStart = 658457, XrefRangeEnd = 658465, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Il2CppStructArray<Vector2Int> GetSubMeshIndexMinMax(Il2CppReferenceArray<Il2CppStructArray<int>> indices, out IndexFormat indexFormat)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(indices);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &indexFormat;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetSubMeshIndexMinMax_Public_Static_Il2CppStructArray_1_Vector2Int_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_byref_IndexFormat_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new Il2CppStructArray<Vector2Int>(intPtr3) : null;
		}

		// Token: 0x0600A9CE RID: 43470 RVA: 0x002BA2E8 File Offset: 0x002B84E8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 658466, XrefRangeEnd = 658467, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void GetIndexMinMax(Il2CppStructArray<int> indices, out int minIndex, out int maxIndex)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(indices);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &minIndex;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &maxIndex;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshUtils.NativeMethodInfoPtr_GetIndexMinMax_Private_Static_Void_Il2CppStructArray_1_Int32_byref_Int32_byref_Int32_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A9CF RID: 43471 RVA: 0x002BA35C File Offset: 0x002B855C
		// Note: this type is marked as 'beforefieldinit'.
		static MeshUtils()
		{
			Il2CppClassPointerStore<MeshUtils>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem.MeshSimplifier", "MeshUtils");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr);
			MeshUtils.NativeFieldInfoPtr_UVChannelCount = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, "UVChannelCount");
			MeshUtils.NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector2_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676513);
			MeshUtils.NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector4_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676514);
			MeshUtils.NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector2_Il2CppReferenceArray_1_List_1_Vector3_Il2CppReferenceArray_1_List_1_Vector4_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676515);
			MeshUtils.NativeMethodInfoPtr_GetMeshBlendShapes_Public_Static_Il2CppReferenceArray_1_BlendShape_Mesh_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676516);
			MeshUtils.NativeMethodInfoPtr_ApplyMeshBlendShapes_Public_Static_Void_Mesh_Il2CppReferenceArray_1_BlendShape_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676517);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs_Public_Static_Il2CppReferenceArray_1_IList_1_Vector4_Mesh_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676518);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs2D_Public_Static_IList_1_Vector2_Mesh_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676519);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs3D_Public_Static_IList_1_Vector3_Mesh_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676520);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs_Public_Static_IList_1_Vector4_Mesh_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676521);
			MeshUtils.NativeMethodInfoPtr_GetUsedUVComponents_Public_Static_Int32_IList_1_Vector4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676522);
			MeshUtils.NativeMethodInfoPtr_ConvertUVsTo2D_Public_Static_Il2CppStructArray_1_Vector2_IList_1_Vector4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676523);
			MeshUtils.NativeMethodInfoPtr_ConvertUVsTo3D_Public_Static_Il2CppStructArray_1_Vector3_IList_1_Vector4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676524);
			MeshUtils.NativeMethodInfoPtr_GetSubMeshIndexMinMax_Public_Static_Il2CppStructArray_1_Vector2Int_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_byref_IndexFormat_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676525);
			MeshUtils.NativeMethodInfoPtr_GetIndexMinMax_Private_Static_Void_Il2CppStructArray_1_Int32_byref_Int32_byref_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100676526);
		}

		// Token: 0x0600A9D0 RID: 43472 RVA: 0x0000A74C File Offset: 0x0000894C
		public MeshUtils(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x1700394F RID: 14671
		// (get) Token: 0x0600A9D1 RID: 43473 RVA: 0x002BA4B8 File Offset: 0x002B86B8
		// (set) Token: 0x0600A9D2 RID: 43474 RVA: 0x002BA4D6 File Offset: 0x002B86D6
		public unsafe static int UVChannelCount
		{
			get
			{
				int num;
				IL2CPP.il2cpp_field_static_get_value(MeshUtils.NativeFieldInfoPtr_UVChannelCount, (void*)(&num));
				return num;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(MeshUtils.NativeFieldInfoPtr_UVChannelCount, (void*)(&value));
			}
		}

		// Token: 0x04007209 RID: 29193
		private static readonly IntPtr NativeFieldInfoPtr_UVChannelCount;

		// Token: 0x0400720A RID: 29194
		private static readonly IntPtr NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector2_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0;

		// Token: 0x0400720B RID: 29195
		private static readonly IntPtr NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector4_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0;

		// Token: 0x0400720C RID: 29196
		private static readonly IntPtr NativeMethodInfoPtr_CreateMesh_Public_Static_Mesh_Il2CppStructArray_1_Vector3_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_Il2CppStructArray_1_Vector3_Il2CppStructArray_1_Vector4_Il2CppStructArray_1_Color_Il2CppStructArray_1_BoneWeight_Il2CppReferenceArray_1_List_1_Vector2_Il2CppReferenceArray_1_List_1_Vector3_Il2CppReferenceArray_1_List_1_Vector4_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_BlendShape_0;

		// Token: 0x0400720D RID: 29197
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshBlendShapes_Public_Static_Il2CppReferenceArray_1_BlendShape_Mesh_0;

		// Token: 0x0400720E RID: 29198
		private static readonly IntPtr NativeMethodInfoPtr_ApplyMeshBlendShapes_Public_Static_Void_Mesh_Il2CppReferenceArray_1_BlendShape_0;

		// Token: 0x0400720F RID: 29199
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs_Public_Static_Il2CppReferenceArray_1_IList_1_Vector4_Mesh_0;

		// Token: 0x04007210 RID: 29200
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs2D_Public_Static_IList_1_Vector2_Mesh_Int32_0;

		// Token: 0x04007211 RID: 29201
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs3D_Public_Static_IList_1_Vector3_Mesh_Int32_0;

		// Token: 0x04007212 RID: 29202
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs_Public_Static_IList_1_Vector4_Mesh_Int32_0;

		// Token: 0x04007213 RID: 29203
		private static readonly IntPtr NativeMethodInfoPtr_GetUsedUVComponents_Public_Static_Int32_IList_1_Vector4_0;

		// Token: 0x04007214 RID: 29204
		private static readonly IntPtr NativeMethodInfoPtr_ConvertUVsTo2D_Public_Static_Il2CppStructArray_1_Vector2_IList_1_Vector4_0;

		// Token: 0x04007215 RID: 29205
		private static readonly IntPtr NativeMethodInfoPtr_ConvertUVsTo3D_Public_Static_Il2CppStructArray_1_Vector3_IList_1_Vector4_0;

		// Token: 0x04007216 RID: 29206
		private static readonly IntPtr NativeMethodInfoPtr_GetSubMeshIndexMinMax_Public_Static_Il2CppStructArray_1_Vector2Int_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_byref_IndexFormat_0;

		// Token: 0x04007217 RID: 29207
		private static readonly IntPtr NativeMethodInfoPtr_GetIndexMinMax_Private_Static_Void_Il2CppStructArray_1_Int32_byref_Int32_byref_Int32_0;
	}
}
