using System;
using Cpp2IlInjected;
using UnityEngine;

namespace MTAssets.UltimateLODSystem.MeshSimplifier
{
	// Token: 0x02000608 RID: 1544
	[Token(Token = "0x2000608")]
	public struct Vector3d : IEquatable<Vector3d>
	{
		// Token: 0x1700039C RID: 924
		// (get) Token: 0x06003048 RID: 12360 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x1700039C")]
		public double Magnitude
		{
			[Token(Token = "0x6003048")]
			[Address(RVA = "0x8C62B0", Offset = "0x8C50B0", VA = "0x1808C62B0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x1700039D RID: 925
		// (get) Token: 0x06003049 RID: 12361 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x1700039D")]
		public double MagnitudeSqr
		{
			[Token(Token = "0x6003049")]
			[Address(RVA = "0x8C6280", Offset = "0x8C5080", VA = "0x1808C6280")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x1700039E RID: 926
		// (get) Token: 0x0600304A RID: 12362 RVA: 0x00066518 File Offset: 0x00064718
		[Token(Token = "0x1700039E")]
		public Vector3d Normalized
		{
			[Token(Token = "0x600304A")]
			[Address(RVA = "0x8C6360", Offset = "0x8C5160", VA = "0x1808C6360")]
			get
			{
				int num = 0;
				int num2 = 0;
				this.x = (double)num2;
				this.z = (double)num;
				return ref this;
			}
		}

		// Token: 0x1700039F RID: 927
		[Token(Token = "0x1700039F")]
		public double this[int index]
		{
			[Token(Token = "0x600304B")]
			[Address(RVA = "0x8C61E0", Offset = "0x8C4FE0", VA = "0x1808C61E0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
			[Token(Token = "0x600304C")]
			[Address(RVA = "0x8C66E0", Offset = "0x8C54E0", VA = "0x1808C66E0")]
			set
			{
				/*
An exception occurred when decompiling this method (0600304C)

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: 0x0600304D RID: 12365 RVA: 0x00066564 File Offset: 0x00064764
		[Token(Token = "0x600304D")]
		[Address(RVA = "0x8C61D0", Offset = "0x8C4FD0", VA = "0x1808C61D0")]
		public Vector3d(double value)
		{
			this.x = value;
		}

		// Token: 0x0600304E RID: 12366 RVA: 0x00066578 File Offset: 0x00064778
		[Token(Token = "0x600304E")]
		[Address(RVA = "0x8C5FD0", Offset = "0x8C4DD0", VA = "0x1808C5FD0")]
		public Vector3d(double x, double y, double z)
		{
		}

		// Token: 0x0600304F RID: 12367 RVA: 0x00066588 File Offset: 0x00064788
		[Token(Token = "0x600304F")]
		[Address(RVA = "0x8C6190", Offset = "0x8C4F90", VA = "0x1808C6190")]
		public Vector3d(Vector3 vector)
		{
			float num = vector.z;
		}

		// Token: 0x06003050 RID: 12368 RVA: 0x0006659C File Offset: 0x0006479C
		[Token(Token = "0x6003050")]
		[Address(RVA = "0x8C63E0", Offset = "0x8C51E0", VA = "0x1808C63E0")]
		public static Vector3d operator +(Vector3d a, Vector3d b)
		{
			return a;
		}

		// Token: 0x06003051 RID: 12369 RVA: 0x000665AC File Offset: 0x000647AC
		[Token(Token = "0x6003051")]
		[Address(RVA = "0x8C6670", Offset = "0x8C5470", VA = "0x1808C6670")]
		public static Vector3d operator -(Vector3d a, Vector3d b)
		{
			return a;
		}

		// Token: 0x06003052 RID: 12370 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003052")]
		[Address(RVA = "0x8C6610", Offset = "0x8C5410", VA = "0x1808C6610")]
		public static Vector3d operator *(Vector3d a, double d)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003053 RID: 12371 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003053")]
		[Address(RVA = "0x8C6640", Offset = "0x8C5440", VA = "0x1808C6640")]
		public static Vector3d operator *(double d, Vector3d a)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003054 RID: 12372 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003054")]
		[Address(RVA = "0x8C6420", Offset = "0x8C5220", VA = "0x1808C6420")]
		public static Vector3d operator /(Vector3d a, double d)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003055 RID: 12373 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003055")]
		[Address(RVA = "0x8C66B0", Offset = "0x8C54B0", VA = "0x1808C66B0")]
		public static Vector3d operator -(Vector3d a)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003056 RID: 12374 RVA: 0x000665BC File Offset: 0x000647BC
		[Token(Token = "0x6003056")]
		[Address(RVA = "0x8C6450", Offset = "0x8C5250", VA = "0x1808C6450")]
		public static bool operator ==(Vector3d lhs, Vector3d rhs)
		{
			return typeof(Vector3d).TypeHandle != null;
		}

		// Token: 0x06003057 RID: 12375 RVA: 0x000665D0 File Offset: 0x000647D0
		[Token(Token = "0x6003057")]
		[Address(RVA = "0x8C6570", Offset = "0x8C5370", VA = "0x1808C6570")]
		public static bool operator !=(Vector3d lhs, Vector3d rhs)
		{
			return typeof(Vector3d).TypeHandle != null;
		}

		// Token: 0x06003058 RID: 12376 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003058")]
		[Address(RVA = "0x8C6530", Offset = "0x8C5330", VA = "0x1808C6530")]
		public static implicit operator Vector3d(Vector3 v)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003059 RID: 12377 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003059")]
		[Address(RVA = "0x8C64F0", Offset = "0x8C52F0", VA = "0x1808C64F0")]
		public static explicit operator Vector3(Vector3d v)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600305A RID: 12378 RVA: 0x000665E4 File Offset: 0x000647E4
		[Token(Token = "0x600305A")]
		[Address(RVA = "0x8C5FD0", Offset = "0x8C4DD0", VA = "0x1808C5FD0")]
		public void Set(double x, double y, double z)
		{
		}

		// Token: 0x0600305B RID: 12379 RVA: 0x000665F4 File Offset: 0x000647F4
		[Token(Token = "0x600305B")]
		[Address(RVA = "0x8C5F70", Offset = "0x8C4D70", VA = "0x1808C5F70")]
		public void Scale(ref Vector3d scale)
		{
		}

		// Token: 0x0600305C RID: 12380 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600305C")]
		[Address(RVA = "0x8C5E50", Offset = "0x8C4C50", VA = "0x1808C5E50")]
		public void Normalize()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600305D RID: 12381 RVA: 0x00066604 File Offset: 0x00064804
		[Token(Token = "0x600305D")]
		[Address(RVA = "0x8C5BB0", Offset = "0x8C49B0", VA = "0x1808C5BB0")]
		public void Clamp(double min, double max)
		{
		}

		// Token: 0x0600305E RID: 12382 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600305E")]
		[Address(RVA = "0x8C5DA0", Offset = "0x8C4BA0", VA = "0x1808C5DA0", Slot = "2")]
		public override int GetHashCode()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600305F RID: 12383 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600305F")]
		[Address(RVA = "0x8C5CF0", Offset = "0x8C4AF0", VA = "0x1808C5CF0", Slot = "0")]
		public override bool Equals(object obj)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003060 RID: 12384 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003060")]
		[Address(RVA = "0x8C5CB0", Offset = "0x8C4AB0", VA = "0x1808C5CB0", Slot = "4")]
		public bool Equals(Vector3d other)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003061 RID: 12385 RVA: 0x00066614 File Offset: 0x00064814
		[Token(Token = "0x6003061")]
		[Address(RVA = "0x8C6080", Offset = "0x8C4E80", VA = "0x1808C6080", 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: 0x06003062 RID: 12386 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003062")]
		[Address(RVA = "0x8C5FE0", Offset = "0x8C4DE0", VA = "0x1808C5FE0")]
		public string ToString(string format)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003063 RID: 12387 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003063")]
		[Address(RVA = "0x8C5C80", Offset = "0x8C4A80", VA = "0x1808C5C80")]
		public static double Dot(ref Vector3d lhs, ref Vector3d rhs)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003064 RID: 12388 RVA: 0x0006663C File Offset: 0x0006483C
		[Token(Token = "0x6003064")]
		[Address(RVA = "0x8C5C10", Offset = "0x8C4A10", VA = "0x1808C5C10")]
		public static void Cross(ref Vector3d lhs, ref Vector3d rhs, out Vector3d result)
		{
		}

		// Token: 0x06003065 RID: 12389 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003065")]
		[Address(RVA = "0x8C5A10", Offset = "0x8C4810", VA = "0x1808C5A10")]
		public static double Angle(ref Vector3d from, ref Vector3d to)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003066 RID: 12390 RVA: 0x0006664C File Offset: 0x0006484C
		[Token(Token = "0x6003066")]
		[Address(RVA = "0x8C5E00", Offset = "0x8C4C00", VA = "0x1808C5E00")]
		public static void Lerp(ref Vector3d a, ref Vector3d b, double t, out Vector3d result)
		{
		}

		// Token: 0x06003067 RID: 12391 RVA: 0x0006665C File Offset: 0x0006485C
		[Token(Token = "0x6003067")]
		[Address(RVA = "0x8C5FA0", Offset = "0x8C4DA0", VA = "0x1808C5FA0")]
		public static void Scale(ref Vector3d a, ref Vector3d b, out Vector3d result)
		{
		}

		// Token: 0x06003068 RID: 12392 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003068")]
		[Address(RVA = "0x8C5EB0", Offset = "0x8C4CB0", VA = "0x1808C5EB0")]
		public static void Normalize(ref Vector3d value, out Vector3d result)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04003A99 RID: 15001
		[Token(Token = "0x4003A99")]
		public static readonly Vector3d zero = 0;

		// Token: 0x04003A9A RID: 15002
		[Token(Token = "0x4003A9A")]
		public const double Epsilon = 5E-324;

		// Token: 0x04003A9B RID: 15003
		[FieldOffset(Offset = "0x0")]
		[Token(Token = "0x4003A9B")]
		public double x;

		// Token: 0x04003A9C RID: 15004
		[FieldOffset(Offset = "0x8")]
		[Token(Token = "0x4003A9C")]
		public double y;

		// Token: 0x04003A9D RID: 15005
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4003A9D")]
		public double z;
	}
}
