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: 0x0200067C RID: 1660
	public static class MeshCombiner : Il2CppSystem.Object
	{
		// Token: 0x0600A916 RID: 43286 RVA: 0x002B5AE4 File Offset: 0x002B3CE4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656766, XrefRangeEnd = 656806, 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: 0x0600A917 RID: 43287 RVA: 0x002B5B8C File Offset: 0x002B3D8C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656806, XrefRangeEnd = 656846, 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: 0x0600A918 RID: 43288 RVA: 0x002B5C60 File Offset: 0x002B3E60
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656846, XrefRangeEnd = 656847, 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: 0x0600A919 RID: 43289 RVA: 0x002B5D20 File Offset: 0x002B3F20
		[CallerCount(3)]
		[CachedScanResults(RefRangeStart = 657025, RefRangeEnd = 657028, XrefRangeStart = 656847, XrefRangeEnd = 657025, 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: 0x0600A91A RID: 43290 RVA: 0x002B5E24 File Offset: 0x002B4024
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 657033, RefRangeEnd = 657034, XrefRangeStart = 657028, XrefRangeEnd = 657033, 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: 0x0600A91B RID: 43291 RVA: 0x002B5E88 File Offset: 0x002B4088
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 657037, RefRangeEnd = 657038, XrefRangeStart = 657034, XrefRangeEnd = 657037, 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: 0x0600A91C RID: 43292 RVA: 0x002B5FB0 File Offset: 0x002B41B0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 657042, RefRangeEnd = 657043, XrefRangeStart = 657038, XrefRangeEnd = 657042, 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: 0x0600A91D RID: 43293 RVA: 0x002B601C File Offset: 0x002B421C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 657045, RefRangeEnd = 657046, XrefRangeStart = 657043, XrefRangeEnd = 657045, 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: 0x0600A91E RID: 43294 RVA: 0x002B607C File Offset: 0x002B427C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 657048, RefRangeEnd = 657049, XrefRangeStart = 657046, XrefRangeEnd = 657048, 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: 0x0600A91F RID: 43295 RVA: 0x002B60DC File Offset: 0x002B42DC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 657052, RefRangeEnd = 657053, XrefRangeStart = 657049, XrefRangeEnd = 657052, 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: 0x0600A920 RID: 43296 RVA: 0x002B613C File Offset: 0x002B433C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 657066, RefRangeEnd = 657067, XrefRangeStart = 657053, XrefRangeEnd = 657066, 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: 0x0600A921 RID: 43297 RVA: 0x002B61A0 File Offset: 0x002B43A0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 657067, XrefRangeEnd = 657069, 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: 0x0600A922 RID: 43298 RVA: 0x002B61F8 File Offset: 0x002B43F8
		// 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, 100676403);
			MeshCombiner.NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_SkinnedMeshRenderer_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676404);
			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, 100676405);
			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, 100676406);
			MeshCombiner.NativeMethodInfoPtr_CopyVertexPositions_Private_Static_Void_ICollection_1_Vector3_Il2CppStructArray_1_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676407);
			MeshCombiner.NativeMethodInfoPtr_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676408);
			MeshCombiner.NativeMethodInfoPtr_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676409);
			MeshCombiner.NativeMethodInfoPtr_TransformVertices_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676410);
			MeshCombiner.NativeMethodInfoPtr_TransformNormals_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676411);
			MeshCombiner.NativeMethodInfoPtr_TransformTangents_Private_Static_Void_Il2CppStructArray_1_Vector4_byref_Matrix4x4_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676412);
			MeshCombiner.NativeMethodInfoPtr_RemapBones_Private_Static_Void_Il2CppStructArray_1_BoneWeight_Il2CppStructArray_1_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676413);
			MeshCombiner.NativeMethodInfoPtr_CanReadMesh_Private_Static_Boolean_Mesh_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MeshCombiner>.NativeClassPtr, 100676414);
		}

		// Token: 0x0600A923 RID: 43299 RVA: 0x0000A74C File Offset: 0x0000894C
		public MeshCombiner(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x0400716C RID: 29036
		private static readonly IntPtr NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_MeshRenderer_byref_Il2CppReferenceArray_1_Material_0;

		// Token: 0x0400716D RID: 29037
		private static readonly IntPtr NativeMethodInfoPtr_CombineMeshes_Public_Static_Mesh_Transform_Il2CppReferenceArray_1_SkinnedMeshRenderer_byref_Il2CppReferenceArray_1_Material_byref_Il2CppReferenceArray_1_Transform_0;

		// Token: 0x0400716E RID: 29038
		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: 0x0400716F RID: 29039
		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: 0x04007170 RID: 29040
		private static readonly IntPtr NativeMethodInfoPtr_CopyVertexPositions_Private_Static_Void_ICollection_1_Vector3_Il2CppStructArray_1_Vector3_0;

		// Token: 0x04007171 RID: 29041
		private static readonly IntPtr NativeMethodInfoPtr_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0;

		// Token: 0x04007172 RID: 29042
		private static readonly IntPtr NativeMethodInfoPtr_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0;

		// Token: 0x04007173 RID: 29043
		private static readonly IntPtr NativeMethodInfoPtr_TransformVertices_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0;

		// Token: 0x04007174 RID: 29044
		private static readonly IntPtr NativeMethodInfoPtr_TransformNormals_Private_Static_Void_Il2CppStructArray_1_Vector3_byref_Matrix4x4_0;

		// Token: 0x04007175 RID: 29045
		private static readonly IntPtr NativeMethodInfoPtr_TransformTangents_Private_Static_Void_Il2CppStructArray_1_Vector4_byref_Matrix4x4_0;

		// Token: 0x04007176 RID: 29046
		private static readonly IntPtr NativeMethodInfoPtr_RemapBones_Private_Static_Void_Il2CppStructArray_1_BoneWeight_Il2CppStructArray_1_Int32_0;

		// Token: 0x04007177 RID: 29047
		private static readonly IntPtr NativeMethodInfoPtr_CanReadMesh_Private_Static_Boolean_Mesh_0;

		// Token: 0x0200067D RID: 1661
		private sealed class MethodInfoStoreGeneric_CopyVertexAttributes_Private_Static_Void_byref_List_1_T_IEnumerable_1_T_Int32_Int32_Int32_T_0<T>
		{
			// Token: 0x04007178 RID: 29048
			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: 0x0200067E RID: 1662
		private sealed class MethodInfoStoreGeneric_MergeArrays_Private_Static_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_Il2CppArrayBase_1_T_0<T>
		{
			// Token: 0x04007179 RID: 29049
			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)) }))));
		}
	}
}
