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

namespace MTAssets.UltimateLODSystem.MeshSimplifier
{
	// Token: 0x02000624 RID: 1572
	public static class MeshCombiner : Il2CppSystem.Object
	{
		// Token: 0x0600A0C3 RID: 41155 RVA: 0x00292DA8 File Offset: 0x00290FA8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624468, XrefRangeEnd = 624508, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh CombineMeshes(Transform rootTransform, Il2CppReferenceArray<MeshRenderer> renderers, out Il2CppReferenceArray<Material> resultMaterials)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(rootTransform);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(renderers);
			ref IntPtr ptr2 = ref ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr = 0;
			ptr2 = &intPtr;
			IntPtr intPtr3;
			IntPtr intPtr2 = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_MeshRenderer_byref_Il2CppReferenceArray_1_Material_0, 0, (void**)ptr, ref intPtr3);
			Il2CppException.RaiseExceptionIfNecessary(intPtr3);
			IntPtr intPtr4 = intPtr;
			resultMaterials = ((intPtr4 == 0) ? null : new Il2CppReferenceArray(intPtr4));
			IntPtr intPtr5 = intPtr2;
			return (intPtr5 != 0) ? new Mesh(intPtr5) : null;
		}

		// Token: 0x0600A0C4 RID: 41156 RVA: 0x00292E50 File Offset: 0x00291050
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624508, XrefRangeEnd = 624548, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh CombineMeshes(Transform rootTransform, Il2CppReferenceArray<SkinnedMeshRenderer> renderers, out Il2CppReferenceArray<Material> resultMaterials, out Il2CppReferenceArray<Transform> resultBones)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(rootTransform);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(renderers);
			ref IntPtr ptr2 = ref ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr = 0;
			ptr2 = &intPtr;
			ref IntPtr ptr3 = ref ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr2 = 0;
			ptr3 = &intPtr2;
			IntPtr intPtr4;
			IntPtr intPtr3 = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_SkinnedMeshRenderer_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0, 0, (void**)ptr, ref intPtr4);
			Il2CppException.RaiseExceptionIfNecessary(intPtr4);
			IntPtr intPtr5 = intPtr;
			resultMaterials = ((intPtr5 == 0) ? null : new Il2CppReferenceArray(intPtr5));
			IntPtr intPtr6 = intPtr2;
			resultBones = ((intPtr6 == 0) ? null : new Il2CppReferenceArray(intPtr6));
			IntPtr intPtr7 = intPtr3;
			return (intPtr7 != 0) ? new Mesh(intPtr7) : null;
		}

		// Token: 0x0600A0C5 RID: 41157 RVA: 0x00292F24 File Offset: 0x00291124
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624548, XrefRangeEnd = 624549, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh CombineMeshes(Il2CppReferenceArray<Mesh> meshes, Il2CppStructArray<Matrix4x4> transforms, Il2CppReferenceArray<Il2CppReferenceArray<Material>> materials, out Il2CppReferenceArray<Material> resultMaterials)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(meshes);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(transforms);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(materials);
			ref IntPtr ptr2 = ref ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr = 0;
			ptr2 = &intPtr;
			IntPtr intPtr3;
			IntPtr intPtr2 = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Il2CppReferenceArray_1_Mesh_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Material_0, 0, (void**)ptr, ref intPtr3);
			Il2CppException.RaiseExceptionIfNecessary(intPtr3);
			IntPtr intPtr4 = intPtr;
			resultMaterials = ((intPtr4 == 0) ? null : new Il2CppReferenceArray(intPtr4));
			IntPtr intPtr5 = intPtr2;
			return (intPtr5 != 0) ? new Mesh(intPtr5) : null;
		}

		// Token: 0x0600A0C6 RID: 41158 RVA: 0x00292FE4 File Offset: 0x002911E4
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 624727, RefRangeEnd = 624730, XrefRangeStart = 624549, XrefRangeEnd = 624727, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh CombineMeshes(Il2CppReferenceArray<Mesh> meshes, Il2CppStructArray<Matrix4x4> transforms, Il2CppReferenceArray<Il2CppReferenceArray<Material>> materials, Il2CppReferenceArray<Il2CppReferenceArray<Transform>> bones, out Il2CppReferenceArray<Material> resultMaterials, out Il2CppReferenceArray<Transform> resultBones)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(meshes);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(transforms);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(materials);
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(bones);
			ref IntPtr ptr2 = ref ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr = 0;
			ptr2 = &intPtr;
			ref IntPtr ptr3 = ref ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr2 = 0;
			ptr3 = &intPtr2;
			IntPtr intPtr4;
			IntPtr intPtr3 = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Il2CppReferenceArray_1_Mesh_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Material_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Transform_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0, 0, (void**)ptr, ref intPtr4);
			Il2CppException.RaiseExceptionIfNecessary(intPtr4);
			IntPtr intPtr5 = intPtr;
			resultMaterials = ((intPtr5 == 0) ? null : new Il2CppReferenceArray(intPtr5));
			IntPtr intPtr6 = intPtr2;
			resultBones = ((intPtr6 == 0) ? null : new Il2CppReferenceArray(intPtr6));
			IntPtr intPtr7 = intPtr3;
			return (intPtr7 != 0) ? new Mesh(intPtr7) : null;
		}

		// Token: 0x0600A0C7 RID: 41159 RVA: 0x002930E8 File Offset: 0x002912E8
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 624735, RefRangeEnd = 624736, XrefRangeStart = 624730, XrefRangeEnd = 624735, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void CopyVertexPositions(ICollection<Vector3> list, Il2CppStructArray<Vector3> arr)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(list);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(arr);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_CopyVertexPositions_Private_Static_Void_ICollection_1_Vector3_Il2CppStructArray_1_Vector3_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A0C8 RID: 41160 RVA: 0x0029314C File Offset: 0x0029134C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 624739, RefRangeEnd = 624740, XrefRangeStart = 624736, XrefRangeEnd = 624739, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void CopyVertexAttributes<T>(ref List<T> dest, IEnumerable<T> src, int previousVertexCount, int meshVertexCount, int totalVertexCount, T defaultValue)
		{
			IntPtr* ptr;
			IntPtr intPtr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)];
				ref IntPtr ptr2 = ref *ptr;
				intPtr = IL2CPP.Il2CppObjectBaseToPtr(dest);
				ptr2 = &intPtr;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(src);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref previousVertexCount;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref meshVertexCount;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref totalVertexCount;
			IntPtr* ptr3 = ptr + checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr);
			T ptr5;
			if (!typeof(T).IsValueType)
			{
				T t = defaultValue;
				if (!(t is string))
				{
					ref T ptr4 = (ptr5 = IL2CPP.Il2CppObjectBaseToPtr(t as Il2CppObjectBase));
					if ((ref ptr4) != null)
					{
						ptr5 = ref ptr4;
						if (IL2CPP.il2cpp_class_is_valuetype(IL2CPP.il2cpp_object_get_class(ref ptr4)))
						{
							ptr5 = IL2CPP.il2cpp_object_unbox(ref ptr4);
						}
					}
				}
				else
				{
					ptr5 = IL2CPP.ManagedStringToIl2Cpp(t as string);
				}
			}
			else
			{
				ptr5 = ref defaultValue;
			}
			*ptr3 = ref ptr5;
			IntPtr intPtr3;
			IntPtr intPtr2 = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.MethodInfoStoreGeneric_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0<T>.Pointer, 0, (void**)ptr, ref intPtr3);
			Il2CppException.RaiseExceptionIfNecessary(intPtr3);
			IntPtr intPtr4 = intPtr;
			dest = ((intPtr4 == 0) ? null : new List(intPtr4));
		}

		// Token: 0x0600A0C9 RID: 41161 RVA: 0x00293274 File Offset: 0x00291474
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 624744, RefRangeEnd = 624745, XrefRangeStart = 624740, XrefRangeEnd = 624744, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Il2CppArrayBase<T> MergeArrays<T>(Il2CppArrayBase<T> arr1, Il2CppArrayBase<T> arr2)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(arr1);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(arr2);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.MethodInfoStoreGeneric_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0<T>.Pointer, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return Il2CppArrayBase<T>.WrapNativeGenericArrayPointer(intPtr);
		}

		// Token: 0x0600A0CA RID: 41162 RVA: 0x002932E0 File Offset: 0x002914E0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 624747, RefRangeEnd = 624748, XrefRangeStart = 624745, XrefRangeEnd = 624747, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void TransformVertices(Il2CppStructArray<Vector3> vertices, ref Matrix4x4 transform)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(vertices);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &transform;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_TransformVertices_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A0CB RID: 41163 RVA: 0x00293340 File Offset: 0x00291540
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 624750, RefRangeEnd = 624751, XrefRangeStart = 624748, XrefRangeEnd = 624750, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void TransformNormals(Il2CppStructArray<Vector3> normals, ref Matrix4x4 transform)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(normals);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &transform;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_TransformNormals_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A0CC RID: 41164 RVA: 0x002933A0 File Offset: 0x002915A0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 624754, RefRangeEnd = 624755, XrefRangeStart = 624751, XrefRangeEnd = 624754, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void TransformTangents(Il2CppStructArray<Vector4> tangents, ref Matrix4x4 transform)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(tangents);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = &transform;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_TransformTangents_Private_Static_Void_Il2CppStructArray_1_Vector4_byref_Matrix4x4_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A0CD RID: 41165 RVA: 0x00293400 File Offset: 0x00291600
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 624768, RefRangeEnd = 624769, XrefRangeStart = 624755, XrefRangeEnd = 624768, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void RemapBones(Il2CppStructArray<BoneWeight> boneWeights, Il2CppStructArray<int> boneIndices)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(boneWeights);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(boneIndices);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MeshCombiner.NativeMethodInfoPtr_RemapBones_Private_Static_Void_Il2CppStructArray_1_BoneWeight_Il2CppStructArray_1_Int32_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A0CE RID: 41166 RVA: 0x00293464 File Offset: 0x00291664
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 624769, XrefRangeEnd = 624771, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static bool CanReadMesh(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(MeshCombiner.NativeMethodInfoPtr_CanReadMesh_Private_Static_Boolean_Mesh_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x0600A0CF RID: 41167 RVA: 0x002934BC File Offset: 0x002916BC
		// Note: this type is marked as 'beforefieldinit'.
		static MeshCombiner()
		{
			Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem.MeshSimplifier", "MeshCombiner");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr);
			MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_MeshRenderer_byref_Il2CppReferenceArray_1_Material_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675690);
			MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_SkinnedMeshRenderer_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675691);
			MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Il2CppReferenceArray_1_Mesh_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Material_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675692);
			MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Il2CppReferenceArray_1_Mesh_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Material_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Transform_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675693);
			MeshCombiner.NativeMethodInfoPtr_CopyVertexPositions_Private_Static_Void_ICollection_1_Vector3_Il2CppStructArray_1_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675694);
			MeshCombiner.NativeMethodInfoPtr_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675695);
			MeshCombiner.NativeMethodInfoPtr_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675696);
			MeshCombiner.NativeMethodInfoPtr_TransformVertices_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675697);
			MeshCombiner.NativeMethodInfoPtr_TransformNormals_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675698);
			MeshCombiner.NativeMethodInfoPtr_TransformTangents_Private_Static_Void_Il2CppStructArray_1_Vector4_byref_Matrix4x4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675699);
			MeshCombiner.NativeMethodInfoPtr_RemapBones_Private_Static_Void_Il2CppStructArray_1_BoneWeight_Il2CppStructArray_1_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675700);
			MeshCombiner.NativeMethodInfoPtr_CanReadMesh_Private_Static_Boolean_Mesh_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100675701);
		}

		// Token: 0x0600A0D0 RID: 41168 RVA: 0x0000A688 File Offset: 0x00008888
		public MeshCombiner(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x04006BC3 RID: 27587
		private static readonly IntPtr NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_MeshRenderer_byref_Il2CppReferenceArray_1_Material_0;

		// Token: 0x04006BC4 RID: 27588
		private static readonly IntPtr NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_SkinnedMeshRenderer_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0;

		// Token: 0x04006BC5 RID: 27589
		private static readonly IntPtr NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Il2CppReferenceArray_1_Mesh_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Material_0;

		// Token: 0x04006BC6 RID: 27590
		private static readonly IntPtr NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Il2CppReferenceArray_1_Mesh_Il2CppStructArray_1_Matrix4x4_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Material_Il2CppReferenceArray_1_Il2CppReferenceArray_1_Transform_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0;

		// Token: 0x04006BC7 RID: 27591
		private static readonly IntPtr NativeMethodInfoPtr_CopyVertexPositions_Private_Static_Void_ICollection_1_Vector3_Il2CppStructArray_1_Vector3_0;

		// Token: 0x04006BC8 RID: 27592
		private static readonly IntPtr NativeMethodInfoPtr_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0;

		// Token: 0x04006BC9 RID: 27593
		private static readonly IntPtr NativeMethodInfoPtr_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0;

		// Token: 0x04006BCA RID: 27594
		private static readonly IntPtr NativeMethodInfoPtr_TransformVertices_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0;

		// Token: 0x04006BCB RID: 27595
		private static readonly IntPtr NativeMethodInfoPtr_TransformNormals_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0;

		// Token: 0x04006BCC RID: 27596
		private static readonly IntPtr NativeMethodInfoPtr_TransformTangents_Private_Static_Void_Il2CppStructArray_1_Vector4_byref_Matrix4x4_0;

		// Token: 0x04006BCD RID: 27597
		private static readonly IntPtr NativeMethodInfoPtr_RemapBones_Private_Static_Void_Il2CppStructArray_1_BoneWeight_Il2CppStructArray_1_Int32_0;

		// Token: 0x04006BCE RID: 27598
		private static readonly IntPtr NativeMethodInfoPtr_CanReadMesh_Private_Static_Boolean_Mesh_0;

		// Token: 0x02000625 RID: 1573
		private sealed class MethodInfoStoreGeneric_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0<T>
		{
			// Token: 0x04006BCF RID: 27599
			internal static IntPtr Pointer = IL2CPP.il2cpp_method_get_from_reflection(IL2CPP.Il2CppObjectBaseToPtrNotNull(new MethodInfo(IL2CPP.il2cpp_method_get_object(MeshCombiner.NativeMethodInfoPtr_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0, Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr)).MakeGenericMethod(new Il2CppReferenceArray<Type>(new Type[] { Type.internal_from_handle(IL2CPP.il2cpp_class_get_type(Il2CppClassPointerStore<T>.NativeClassPtr)) }))));
		}

		// Token: 0x02000626 RID: 1574
		private sealed class MethodInfoStoreGeneric_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0<T>
		{
			// Token: 0x04006BD0 RID: 27600
			internal static IntPtr Pointer = IL2CPP.il2cpp_method_get_from_reflection(IL2CPP.Il2CppObjectBaseToPtrNotNull(new MethodInfo(IL2CPP.il2cpp_method_get_object(MeshCombiner.NativeMethodInfoPtr_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0, Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr)).MakeGenericMethod(new Il2CppReferenceArray<Type>(new Type[] { Type.internal_from_handle(IL2CPP.il2cpp_class_get_type(Il2CppClassPointerStore<T>.NativeClassPtr)) }))));
		}
	}
}
