using System;
using System.Runtime.InteropServices;
using Il2CppInterop.Runtime;
using Il2CppSystem;

namespace MTAssets.UltimateLODSystem.MeshSimplifier
{
	// Token: 0x02000629 RID: 1577
	[Serializable]
	[StructLayout(LayoutKind.Explicit)]
	public struct SimplificationOptions
	{
		// Token: 0x0600A166 RID: 41318 RVA: 0x00296BBC File Offset: 0x00294DBC
		// Note: this type is marked as 'beforefieldinit'.
		static SimplificationOptions()
		{
			Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem.MeshSimplifier", "SimplificationOptions");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr);
			SimplificationOptions.NativeFieldInfoPtr_Default = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "Default");
			SimplificationOptions.NativeFieldInfoPtr_PreserveBorderEdges = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "PreserveBorderEdges");
			SimplificationOptions.NativeFieldInfoPtr_PreserveUVSeamEdges = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "PreserveUVSeamEdges");
			SimplificationOptions.NativeFieldInfoPtr_PreserveUVFoldoverEdges = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "PreserveUVFoldoverEdges");
			SimplificationOptions.NativeFieldInfoPtr_PreserveSurfaceCurvature = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "PreserveSurfaceCurvature");
			SimplificationOptions.NativeFieldInfoPtr_EnableSmartLink = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "EnableSmartLink");
			SimplificationOptions.NativeFieldInfoPtr_VertexLinkDistance = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "VertexLinkDistance");
			SimplificationOptions.NativeFieldInfoPtr_MaxIterationCount = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "MaxIterationCount");
			SimplificationOptions.NativeFieldInfoPtr_Agressiveness = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "Agressiveness");
			SimplificationOptions.NativeFieldInfoPtr_ManualUVComponentCount = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "ManualUVComponentCount");
			SimplificationOptions.NativeFieldInfoPtr_UVComponentCount = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, "UVComponentCount");
		}

		// Token: 0x0600A167 RID: 41319 RVA: 0x00296CC8 File Offset: 0x00294EC8
		public Object BoxIl2CppObject()
		{
			return new Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<SimplificationOptions>.NativeClassPtr, ref this));
		}

		// Token: 0x170036B3 RID: 14003
		// (get) Token: 0x0600A168 RID: 41320 RVA: 0x00296CDC File Offset: 0x00294EDC
		// (set) Token: 0x0600A169 RID: 41321 RVA: 0x00296CFA File Offset: 0x00294EFA
		public unsafe static SimplificationOptions Default
		{
			get
			{
				SimplificationOptions simplificationOptions;
				IL2CPP.il2cpp_field_static_get_value(SimplificationOptions.NativeFieldInfoPtr_Default, (void*)(&simplificationOptions));
				return simplificationOptions;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(SimplificationOptions.NativeFieldInfoPtr_Default, (void*)(&value));
			}
		}

		// Token: 0x04006C49 RID: 27721
		private static readonly IntPtr NativeFieldInfoPtr_Default;

		// Token: 0x04006C4A RID: 27722
		private static readonly IntPtr NativeFieldInfoPtr_PreserveBorderEdges;

		// Token: 0x04006C4B RID: 27723
		private static readonly IntPtr NativeFieldInfoPtr_PreserveUVSeamEdges;

		// Token: 0x04006C4C RID: 27724
		private static readonly IntPtr NativeFieldInfoPtr_PreserveUVFoldoverEdges;

		// Token: 0x04006C4D RID: 27725
		private static readonly IntPtr NativeFieldInfoPtr_PreserveSurfaceCurvature;

		// Token: 0x04006C4E RID: 27726
		private static readonly IntPtr NativeFieldInfoPtr_EnableSmartLink;

		// Token: 0x04006C4F RID: 27727
		private static readonly IntPtr NativeFieldInfoPtr_VertexLinkDistance;

		// Token: 0x04006C50 RID: 27728
		private static readonly IntPtr NativeFieldInfoPtr_MaxIterationCount;

		// Token: 0x04006C51 RID: 27729
		private static readonly IntPtr NativeFieldInfoPtr_Agressiveness;

		// Token: 0x04006C52 RID: 27730
		private static readonly IntPtr NativeFieldInfoPtr_ManualUVComponentCount;

		// Token: 0x04006C53 RID: 27731
		private static readonly IntPtr NativeFieldInfoPtr_UVComponentCount;

		// Token: 0x04006C54 RID: 27732
		[FieldOffset(0)]
		[MarshalAs(UnmanagedType.U1)]
		public bool PreserveBorderEdges;

		// Token: 0x04006C55 RID: 27733
		[FieldOffset(1)]
		[MarshalAs(UnmanagedType.U1)]
		public bool PreserveUVSeamEdges;

		// Token: 0x04006C56 RID: 27734
		[FieldOffset(2)]
		[MarshalAs(UnmanagedType.U1)]
		public bool PreserveUVFoldoverEdges;

		// Token: 0x04006C57 RID: 27735
		[FieldOffset(3)]
		[MarshalAs(UnmanagedType.U1)]
		public bool PreserveSurfaceCurvature;

		// Token: 0x04006C58 RID: 27736
		[FieldOffset(4)]
		[MarshalAs(UnmanagedType.U1)]
		public bool EnableSmartLink;

		// Token: 0x04006C59 RID: 27737
		[FieldOffset(8)]
		public double VertexLinkDistance;

		// Token: 0x04006C5A RID: 27738
		[FieldOffset(16)]
		public int MaxIterationCount;

		// Token: 0x04006C5B RID: 27739
		[FieldOffset(24)]
		public double Agressiveness;

		// Token: 0x04006C5C RID: 27740
		[FieldOffset(32)]
		[MarshalAs(UnmanagedType.U1)]
		public bool ManualUVComponentCount;

		// Token: 0x04006C5D RID: 27741
		[FieldOffset(36)]
		public int UVComponentCount;
	}
}
