using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using UnityEngine;

namespace XftWeapon
{
	// Token: 0x0200037E RID: 894
	[Token(Token = "0x200037E")]
	public class Spline
	{
		// Token: 0x170001D7 RID: 471
		[Token(Token = "0x170001D7")]
		public SplineControlPoint this[int index]
		{
			[Token(Token = "0x60021D6")]
			[Address(RVA = "0xAAEA60", Offset = "0xAAD860", VA = "0x180AAEA60")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x170001D8 RID: 472
		// (get) Token: 0x060021D7 RID: 8663 RVA: 0x0004EE34 File Offset: 0x0004D034
		[Token(Token = "0x170001D8")]
		public List<SplineControlPoint> Segments
		{
			[Token(Token = "0x60021D7")]
			[Address(RVA = "0x2B4380", Offset = "0x2B3180", VA = "0x1802B4380")]
			get
			{
				return this.mSegments;
			}
		}

		// Token: 0x170001D9 RID: 473
		// (get) Token: 0x060021D8 RID: 8664 RVA: 0x0004EE48 File Offset: 0x0004D048
		[Token(Token = "0x170001D9")]
		public List<SplineControlPoint> ControlPoints
		{
			[Token(Token = "0x60021D8")]
			[Address(RVA = "0x2B4010", Offset = "0x2B2E10", VA = "0x1802B4010")]
			get
			{
				return this.mControlPoints;
			}
		}

		// Token: 0x060021D9 RID: 8665 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021D9")]
		[Address(RVA = "0xAAE170", Offset = "0xAACF70", VA = "0x180AAE170")]
		public SplineControlPoint NextControlPoint(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021DA RID: 8666 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021DA")]
		[Address(RVA = "0xAAE380", Offset = "0xAAD180", VA = "0x180AAE380")]
		public SplineControlPoint PreviousControlPoint(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021DB RID: 8667 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021DB")]
		[Address(RVA = "0xAAE2C0", Offset = "0xAAD0C0", VA = "0x180AAE2C0")]
		public Vector3 NextPosition(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021DC RID: 8668 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021DC")]
		[Address(RVA = "0xAAE4D0", Offset = "0xAAD2D0", VA = "0x180AAE4D0")]
		public Vector3 PreviousPosition(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021DD RID: 8669 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021DD")]
		[Address(RVA = "0xAAE410", Offset = "0xAAD210", VA = "0x180AAE410")]
		public Vector3 PreviousNormal(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021DE RID: 8670 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021DE")]
		[Address(RVA = "0xAAE200", Offset = "0xAAD000", VA = "0x180AAE200")]
		public Vector3 NextNormal(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021DF RID: 8671 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021DF")]
		[Address(RVA = "0xAADFD0", Offset = "0xAACDD0", VA = "0x180AADFD0")]
		public SplineControlPoint LenToSegment(float t, out float localF)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021E0 RID: 8672 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021E0")]
		[Address(RVA = "0xAAD7D0", Offset = "0xAAC5D0", VA = "0x180AAD7D0")]
		public static Vector3 CatmulRom(Vector3 T0, Vector3 P0, Vector3 P1, Vector3 T1, float f)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021E1 RID: 8673 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021E1")]
		[Address(RVA = "0xAADBB0", Offset = "0xAAC9B0", VA = "0x180AADBB0")]
		public Vector3 InterpolateByLen(float tl)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021E2 RID: 8674 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021E2")]
		[Address(RVA = "0xAADDC0", Offset = "0xAACBC0", VA = "0x180AADDC0")]
		public Vector3 InterpolateNormalByLen(float tl)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021E3 RID: 8675 RVA: 0x0004EE5C File Offset: 0x0004D05C
		[Token(Token = "0x60021E3")]
		[Address(RVA = "0xAAD6E0", Offset = "0xAAC4E0", VA = "0x180AAD6E0")]
		public SplineControlPoint AddControlPoint(Vector3 pos, Vector3 up)
		{
			SplineControlPoint splineControlPoint = new SplineControlPoint();
			splineControlPoint.ControlPointIndex = (int)((ulong)(-1L));
			splineControlPoint.mSpline = this;
			float z = pos.z;
			splineControlPoint.Position.z = z;
			float z2 = up.z;
			splineControlPoint.Normal.z = z2;
			splineControlPoint.SegmentIndex = (int)((ulong)4294967295L);
			this.mControlPoints.Add(splineControlPoint);
			int size = this.mControlPoints._size;
			splineControlPoint.ControlPointIndex = size;
			return splineControlPoint;
		}

		// Token: 0x060021E4 RID: 8676 RVA: 0x0004EEDC File Offset: 0x0004D0DC
		[Token(Token = "0x60021E4")]
		[Address(RVA = "0xAADB60", Offset = "0xAAC960", VA = "0x180AADB60")]
		public void Clear()
		{
			this.mControlPoints.Clear();
		}

		// Token: 0x060021E5 RID: 8677 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021E5")]
		[Address(RVA = "0xAAE590", Offset = "0xAAD390", VA = "0x180AAE590")]
		private void RefreshDistance()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021E6 RID: 8678 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60021E6")]
		[Address(RVA = "0xAAE7D0", Offset = "0xAAD5D0", VA = "0x180AAE7D0")]
		public void RefreshSpline()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060021E7 RID: 8679 RVA: 0x0004EEFC File Offset: 0x0004D0FC
		[Token(Token = "0x60021E7")]
		[Address(RVA = "0xAAE9B0", Offset = "0xAAD7B0", VA = "0x180AAE9B0")]
		public Spline()
		{
			List<SplineControlPoint> list = new List();
			this.mControlPoints = list;
			List<SplineControlPoint> list2 = new List();
			this.mSegments = list2;
			this.Granularity = (int)((ulong)20L);
			base..ctor();
		}

		// Token: 0x04002B31 RID: 11057
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4002B31")]
		private List<SplineControlPoint> mControlPoints;

		// Token: 0x04002B32 RID: 11058
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002B32")]
		private List<SplineControlPoint> mSegments;

		// Token: 0x04002B33 RID: 11059
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002B33")]
		public int Granularity;
	}
}
