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: 0x0200062B RID: 1579
	public static class MeshUtils : Il2CppSystem.Object
	{
		// Token: 0x0600A16E RID: 41326 RVA: 0x00296E0C File Offset: 0x0029500C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 625955, XrefRangeEnd = 625959, 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: 0x0600A16F RID: 41327 RVA: 0x00296F2C File Offset: 0x0029512C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 625963, RefRangeEnd = 625964, XrefRangeStart = 625959, XrefRangeEnd = 625963, 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: 0x0600A170 RID: 41328 RVA: 0x0029704C File Offset: 0x0029524C
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 626002, RefRangeEnd = 626005, XrefRangeStart = 625964, XrefRangeEnd = 626002, 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: 0x0600A171 RID: 41329 RVA: 0x002971A0 File Offset: 0x002953A0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 626032, RefRangeEnd = 626033, XrefRangeStart = 626005, XrefRangeEnd = 626032, 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: 0x0600A172 RID: 41330 RVA: 0x00297200 File Offset: 0x00295400
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 626033, XrefRangeEnd = 626041, 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: 0x0600A173 RID: 41331 RVA: 0x00297264 File Offset: 0x00295464
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 626060, RefRangeEnd = 626061, XrefRangeStart = 626041, XrefRangeEnd = 626060, 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: 0x0600A174 RID: 41332 RVA: 0x002972C4 File Offset: 0x002954C4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 626077, RefRangeEnd = 626078, XrefRangeStart = 626061, XrefRangeEnd = 626077, 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: 0x0600A175 RID: 41333 RVA: 0x00297338 File Offset: 0x00295538
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 626094, RefRangeEnd = 626095, XrefRangeStart = 626078, XrefRangeEnd = 626094, 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: 0x0600A176 RID: 41334 RVA: 0x002973AC File Offset: 0x002955AC
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 626111, RefRangeEnd = 626114, XrefRangeStart = 626095, XrefRangeEnd = 626111, 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: 0x0600A177 RID: 41335 RVA: 0x00297420 File Offset: 0x00295620
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 626136, RefRangeEnd = 626137, XrefRangeStart = 626114, XrefRangeEnd = 626136, 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: 0x0600A178 RID: 41336 RVA: 0x00297478 File Offset: 0x00295678
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 626137, XrefRangeEnd = 626148, 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: 0x0600A179 RID: 41337 RVA: 0x002974D8 File Offset: 0x002956D8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 626148, XrefRangeEnd = 626159, 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: 0x0600A17A RID: 41338 RVA: 0x00297538 File Offset: 0x00295738
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 626167, RefRangeEnd = 626168, XrefRangeStart = 626159, XrefRangeEnd = 626167, 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: 0x0600A17B RID: 41339 RVA: 0x002975AC File Offset: 0x002957AC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 626168, XrefRangeEnd = 626169, 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: 0x0600A17C RID: 41340 RVA: 0x00297620 File Offset: 0x00295820
		// 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, 100675800);
			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, 100675801);
			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, 100675802);
			MeshUtils.NativeMethodInfoPtr_GetMeshBlendShapes_Public_Static_Il2CppReferenceArray_1_BlendShape_Mesh_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675803);
			MeshUtils.NativeMethodInfoPtr_ApplyMeshBlendShapes_Public_Static_Void_Mesh_Il2CppReferenceArray_1_BlendShape_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675804);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs_Public_Static_Il2CppReferenceArray_1_IList_1_Vector4_Mesh_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675805);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs2D_Public_Static_IList_1_Vector2_Mesh_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675806);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs3D_Public_Static_IList_1_Vector3_Mesh_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675807);
			MeshUtils.NativeMethodInfoPtr_GetMeshUVs_Public_Static_IList_1_Vector4_Mesh_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675808);
			MeshUtils.NativeMethodInfoPtr_GetUsedUVComponents_Public_Static_Int32_IList_1_Vector4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675809);
			MeshUtils.NativeMethodInfoPtr_ConvertUVsTo2D_Public_Static_Il2CppStructArray_1_Vector2_IList_1_Vector4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675810);
			MeshUtils.NativeMethodInfoPtr_ConvertUVsTo3D_Public_Static_Il2CppStructArray_1_Vector3_IList_1_Vector4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675811);
			MeshUtils.NativeMethodInfoPtr_GetSubMeshIndexMinMax_Public_Static_Il2CppStructArray_1_Vector2Int_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_byref_IndexFormat_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675812);
			MeshUtils.NativeMethodInfoPtr_GetIndexMinMax_Private_Static_Void_Il2CppStructArray_1_Int32_byref_Int32_byref_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshUtils>.NativeClassPtr, 100675813);
		}

		// Token: 0x0600A17D RID: 41341 RVA: 0x0000A688 File Offset: 0x00008888
		public MeshUtils(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170036B4 RID: 14004
		// (get) Token: 0x0600A17E RID: 41342 RVA: 0x0029777C File Offset: 0x0029597C
		// (set) Token: 0x0600A17F RID: 41343 RVA: 0x0029779A File Offset: 0x0029599A
		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: 0x04006C60 RID: 27744
		private static readonly IntPtr NativeFieldInfoPtr_UVChannelCount;

		// Token: 0x04006C61 RID: 27745
		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: 0x04006C62 RID: 27746
		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: 0x04006C63 RID: 27747
		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: 0x04006C64 RID: 27748
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshBlendShapes_Public_Static_Il2CppReferenceArray_1_BlendShape_Mesh_0;

		// Token: 0x04006C65 RID: 27749
		private static readonly IntPtr NativeMethodInfoPtr_ApplyMeshBlendShapes_Public_Static_Void_Mesh_Il2CppReferenceArray_1_BlendShape_0;

		// Token: 0x04006C66 RID: 27750
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs_Public_Static_Il2CppReferenceArray_1_IList_1_Vector4_Mesh_0;

		// Token: 0x04006C67 RID: 27751
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs2D_Public_Static_IList_1_Vector2_Mesh_Int32_0;

		// Token: 0x04006C68 RID: 27752
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs3D_Public_Static_IList_1_Vector3_Mesh_Int32_0;

		// Token: 0x04006C69 RID: 27753
		private static readonly IntPtr NativeMethodInfoPtr_GetMeshUVs_Public_Static_IList_1_Vector4_Mesh_Int32_0;

		// Token: 0x04006C6A RID: 27754
		private static readonly IntPtr NativeMethodInfoPtr_GetUsedUVComponents_Public_Static_Int32_IList_1_Vector4_0;

		// Token: 0x04006C6B RID: 27755
		private static readonly IntPtr NativeMethodInfoPtr_ConvertUVsTo2D_Public_Static_Il2CppStructArray_1_Vector2_IList_1_Vector4_0;

		// Token: 0x04006C6C RID: 27756
		private static readonly IntPtr NativeMethodInfoPtr_ConvertUVsTo3D_Public_Static_Il2CppStructArray_1_Vector3_IList_1_Vector4_0;

		// Token: 0x04006C6D RID: 27757
		private static readonly IntPtr NativeMethodInfoPtr_GetSubMeshIndexMinMax_Public_Static_Il2CppStructArray_1_Vector2Int_Il2CppReferenceArray_1_Il2CppStructArray_1_Int32_byref_IndexFormat_0;

		// Token: 0x04006C6E RID: 27758
		private static readonly IntPtr NativeMethodInfoPtr_GetIndexMinMax_Private_Static_Void_Il2CppStructArray_1_Int32_byref_Int32_byref_Int32_0;
	}
}
