using System;
using Cpp2IlInjected;
using UnityEngine;

namespace MTAssets.UltimateLODSystem.MeshSimplifier
{
	// Token: 0x02000660 RID: 1632
	[Token(Token = "0x2000660")]
	public struct Vector3d : IEquatable<Vector3d>
	{
		// Token: 0x170003C1 RID: 961
		// (get) Token: 0x06003311 RID: 13073 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170003C1")]
		public double Magnitude
		{
			[Token(Token = "0x6003311")]
			[Address(RVA = "0x4AF4B0", Offset = "0x4AE4B0", VA = "0x1804AF4B0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x170003C2 RID: 962
		// (get) Token: 0x06003312 RID: 13074 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170003C2")]
		public double MagnitudeSqr
		{
			[Token(Token = "0x6003312")]
			[Address(RVA = "0x4AF480", Offset = "0x4AE480", VA = "0x1804AF480")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x170003C3 RID: 963
		// (get) Token: 0x06003313 RID: 13075 RVA: 0x0006D6D8 File Offset: 0x0006B8D8
		[Token(Token = "0x170003C3")]
		public Vector3d Normalized
		{
			[Token(Token = "0x6003313")]
			[Address(RVA = "0x4AF560", Offset = "0x4AE560", VA = "0x1804AF560")]
			get
			{
				int num = 0;
				int num2 = 0;
				this.x = (double)num2;
				this.z = (double)num;
				return ref this;
			}
		}

		// Token: 0x170003C4 RID: 964
		[Token(Token = "0x170003C4")]
		public double this[int index]
		{
			[Token(Token = "0x6003314")]
			[Address(RVA = "0x4AF3E0", Offset = "0x4AE3E0", VA = "0x1804AF3E0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
			[Token(Token = "0x6003315")]
			[Address(RVA = "0x4AF8E0", Offset = "0x4AE8E0", VA = "0x1804AF8E0")]
			set
			{
				/*
An exception occurred when decompiling this method (06003315)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void MTAssets.UltimateLODSystem.MeshSimplifier.Vector3d::set_Item(System.Int32,System.Double)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	IL_0F:; 	stloc:ArgumentOutOfRangeException(var_0_1E, newobj:ArgumentOutOfRangeException(ArgumentOutOfRangeException::.ctor, ldstr:string("index"), ldstr:string("Invalid Vector3d index!"))); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1804
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1804
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1836
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1804
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
			}
		}

		// Token: 0x06003316 RID: 13078 RVA: 0x0006D724 File Offset: 0x0006B924
		[Token(Token = "0x6003316")]
		[Address(RVA = "0x4AF3D0", Offset = "0x4AE3D0", VA = "0x1804AF3D0")]
		public Vector3d(double value)
		{
			this.x = value;
		}

		// Token: 0x06003317 RID: 13079 RVA: 0x0006D738 File Offset: 0x0006B938
		[Token(Token = "0x6003317")]
		[Address(RVA = "0x4AF1D0", Offset = "0x4AE1D0", VA = "0x1804AF1D0")]
		public Vector3d(double x, double y, double z)
		{
		}

		// Token: 0x06003318 RID: 13080 RVA: 0x0006D748 File Offset: 0x0006B948
		[Token(Token = "0x6003318")]
		[Address(RVA = "0x4AF390", Offset = "0x4AE390", VA = "0x1804AF390")]
		public Vector3d(Vector3 vector)
		{
			float num = vector.z;
		}

		// Token: 0x06003319 RID: 13081 RVA: 0x0006D75C File Offset: 0x0006B95C
		[Token(Token = "0x6003319")]
		[Address(RVA = "0x4AF5E0", Offset = "0x4AE5E0", VA = "0x1804AF5E0")]
		public static Vector3d operator +(Vector3d a, Vector3d b)
		{
			return a;
		}

		// Token: 0x0600331A RID: 13082 RVA: 0x0006D76C File Offset: 0x0006B96C
		[Token(Token = "0x600331A")]
		[Address(RVA = "0x4AF870", Offset = "0x4AE870", VA = "0x1804AF870")]
		public static Vector3d operator -(Vector3d a, Vector3d b)
		{
			return a;
		}

		// Token: 0x0600331B RID: 13083 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600331B")]
		[Address(RVA = "0x4AF810", Offset = "0x4AE810", VA = "0x1804AF810")]
		public static Vector3d operator *(Vector3d a, double d)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600331C RID: 13084 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600331C")]
		[Address(RVA = "0x4AF840", Offset = "0x4AE840", VA = "0x1804AF840")]
		public static Vector3d operator *(double d, Vector3d a)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600331D RID: 13085 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600331D")]
		[Address(RVA = "0x4AF620", Offset = "0x4AE620", VA = "0x1804AF620")]
		public static Vector3d operator /(Vector3d a, double d)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600331E RID: 13086 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600331E")]
		[Address(RVA = "0x4AF8B0", Offset = "0x4AE8B0", VA = "0x1804AF8B0")]
		public static Vector3d operator -(Vector3d a)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600331F RID: 13087 RVA: 0x0006D77C File Offset: 0x0006B97C
		[Token(Token = "0x600331F")]
		[Address(RVA = "0x4AF650", Offset = "0x4AE650", VA = "0x1804AF650")]
		public static bool operator ==(Vector3d lhs, Vector3d rhs)
		{
			return typeof(Vector3d).TypeHandle != null;
		}

		// Token: 0x06003320 RID: 13088 RVA: 0x0006D790 File Offset: 0x0006B990
		[Token(Token = "0x6003320")]
		[Address(RVA = "0x4AF770", Offset = "0x4AE770", VA = "0x1804AF770")]
		public static bool operator !=(Vector3d lhs, Vector3d rhs)
		{
			return typeof(Vector3d).TypeHandle != null;
		}

		// Token: 0x06003321 RID: 13089 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003321")]
		[Address(RVA = "0x4AF730", Offset = "0x4AE730", VA = "0x1804AF730")]
		public static implicit operator Vector3d(Vector3 v)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003322 RID: 13090 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003322")]
		[Address(RVA = "0x4AF6F0", Offset = "0x4AE6F0", VA = "0x1804AF6F0")]
		public static explicit operator Vector3(Vector3d v)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003323 RID: 13091 RVA: 0x0006D7A4 File Offset: 0x0006B9A4
		[Token(Token = "0x6003323")]
		[Address(RVA = "0x4AF1D0", Offset = "0x4AE1D0", VA = "0x1804AF1D0")]
		public void Set(double x, double y, double z)
		{
		}

		// Token: 0x06003324 RID: 13092 RVA: 0x0006D7B4 File Offset: 0x0006B9B4
		[Token(Token = "0x6003324")]
		[Address(RVA = "0x4AF170", Offset = "0x4AE170", VA = "0x1804AF170")]
		public void Scale(ref Vector3d scale)
		{
		}

		// Token: 0x06003325 RID: 13093 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003325")]
		[Address(RVA = "0x4AF050", Offset = "0x4AE050", VA = "0x1804AF050")]
		public void Normalize()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003326 RID: 13094 RVA: 0x0006D7C4 File Offset: 0x0006B9C4
		[Token(Token = "0x6003326")]
		[Address(RVA = "0x4AEDB0", Offset = "0x4ADDB0", VA = "0x1804AEDB0")]
		public void Clamp(double min, double max)
		{
		}

		// Token: 0x06003327 RID: 13095 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003327")]
		[Address(RVA = "0x4AEFA0", Offset = "0x4ADFA0", VA = "0x1804AEFA0", Slot = "2")]
		public override int GetHashCode()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003328 RID: 13096 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003328")]
		[Address(RVA = "0x4AEEF0", Offset = "0x4ADEF0", VA = "0x1804AEEF0", Slot = "0")]
		public override bool Equals(object obj)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003329 RID: 13097 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003329")]
		[Address(RVA = "0x4AEEB0", Offset = "0x4ADEB0", VA = "0x1804AEEB0", Slot = "4")]
		public bool Equals(Vector3d other)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600332A RID: 13098 RVA: 0x0006D7D4 File Offset: 0x0006B9D4
		[Token(Token = "0x600332A")]
		[Address(RVA = "0x4AF280", Offset = "0x4AE280", VA = "0x1804AF280", Slot = "3")]
		public override string ToString()
		{
			return string.Format("({0:F1}, {1:F1}, {2:F1})", "({0:F1}, {1:F1}, {2:F1})", "({0:F1}, {1:F1}, {2:F1})", "({0:F1}, {1:F1}, {2:F1})");
		}

		// Token: 0x0600332B RID: 13099 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600332B")]
		[Address(RVA = "0x4AF1E0", Offset = "0x4AE1E0", VA = "0x1804AF1E0")]
		public string ToString(string format)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600332C RID: 13100 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600332C")]
		[Address(RVA = "0x4AEE80", Offset = "0x4ADE80", VA = "0x1804AEE80")]
		public static double Dot(ref Vector3d lhs, ref Vector3d rhs)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600332D RID: 13101 RVA: 0x0006D7FC File Offset: 0x0006B9FC
		[Token(Token = "0x600332D")]
		[Address(RVA = "0x4AEE10", Offset = "0x4ADE10", VA = "0x1804AEE10")]
		public static void Cross(ref Vector3d lhs, ref Vector3d rhs, out Vector3d result)
		{
		}

		// Token: 0x0600332E RID: 13102 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600332E")]
		[Address(RVA = "0x4AEC10", Offset = "0x4ADC10", VA = "0x1804AEC10")]
		public static double Angle(ref Vector3d from, ref Vector3d to)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600332F RID: 13103 RVA: 0x0006D80C File Offset: 0x0006BA0C
		[Token(Token = "0x600332F")]
		[Address(RVA = "0x4AF000", Offset = "0x4AE000", VA = "0x1804AF000")]
		public static void Lerp(ref Vector3d a, ref Vector3d b, double t, out Vector3d result)
		{
		}

		// Token: 0x06003330 RID: 13104 RVA: 0x0006D81C File Offset: 0x0006BA1C
		[Token(Token = "0x6003330")]
		[Address(RVA = "0x4AF1A0", Offset = "0x4AE1A0", VA = "0x1804AF1A0")]
		public static void Scale(ref Vector3d a, ref Vector3d b, out Vector3d result)
		{
		}

		// Token: 0x06003331 RID: 13105 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003331")]
		[Address(RVA = "0x4AF0B0", Offset = "0x4AE0B0", VA = "0x1804AF0B0")]
		public static void Normalize(ref Vector3d value, out Vector3d result)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04003D83 RID: 15747
		[Token(Token = "0x4003D83")]
		public static readonly Vector3d zero = 0;

		// Token: 0x04003D84 RID: 15748
		[Token(Token = "0x4003D84")]
		public const double Epsilon = 5E-324;

		// Token: 0x04003D85 RID: 15749
		[FieldOffset(Offset = "0x0")]
		[Token(Token = "0x4003D85")]
		public double x;

		// Token: 0x04003D86 RID: 15750
		[FieldOffset(Offset = "0x8")]
		[Token(Token = "0x4003D86")]
		public double y;

		// Token: 0x04003D87 RID: 15751
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4003D87")]
		public double z;
	}
}
