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

namespace XftWeapon
{
	// Token: 0x020003D6 RID: 982
	[Token(Token = "0x20003D6")]
	public class Spline
	{
		// Token: 0x170001FC RID: 508
		[Token(Token = "0x170001FC")]
		public SplineControlPoint this[int index]
		{
			[Token(Token = "0x600249F")]
			[Address(RVA = "0x97E9F0", Offset = "0x97D9F0", VA = "0x18097E9F0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x170001FD RID: 509
		// (get) Token: 0x060024A0 RID: 9376 RVA: 0x000560D0 File Offset: 0x000542D0
		[Token(Token = "0x170001FD")]
		public List<SplineControlPoint> Segments
		{
			[Token(Token = "0x60024A0")]
			[Address(RVA = "0x2EF530", Offset = "0x2EE530", VA = "0x1802EF530")]
			get
			{
				return this.mSegments;
			}
		}

		// Token: 0x170001FE RID: 510
		// (get) Token: 0x060024A1 RID: 9377 RVA: 0x000560E4 File Offset: 0x000542E4
		[Token(Token = "0x170001FE")]
		public List<SplineControlPoint> ControlPoints
		{
			[Token(Token = "0x60024A1")]
			[Address(RVA = "0x32FD80", Offset = "0x32ED80", VA = "0x18032FD80")]
			get
			{
				return this.mControlPoints;
			}
		}

		// Token: 0x060024A2 RID: 9378 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A2")]
		[Address(RVA = "0x97E100", Offset = "0x97D100", VA = "0x18097E100")]
		public SplineControlPoint NextControlPoint(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024A3 RID: 9379 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A3")]
		[Address(RVA = "0x97E310", Offset = "0x97D310", VA = "0x18097E310")]
		public SplineControlPoint PreviousControlPoint(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024A4 RID: 9380 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A4")]
		[Address(RVA = "0x97E250", Offset = "0x97D250", VA = "0x18097E250")]
		public Vector3 NextPosition(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024A5 RID: 9381 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A5")]
		[Address(RVA = "0x97E460", Offset = "0x97D460", VA = "0x18097E460")]
		public Vector3 PreviousPosition(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024A6 RID: 9382 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A6")]
		[Address(RVA = "0x97E3A0", Offset = "0x97D3A0", VA = "0x18097E3A0")]
		public Vector3 PreviousNormal(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024A7 RID: 9383 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A7")]
		[Address(RVA = "0x97E190", Offset = "0x97D190", VA = "0x18097E190")]
		public Vector3 NextNormal(SplineControlPoint controlpoint)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024A8 RID: 9384 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A8")]
		[Address(RVA = "0x97DF60", Offset = "0x97CF60", VA = "0x18097DF60")]
		public SplineControlPoint LenToSegment(float t, out float localF)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024A9 RID: 9385 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024A9")]
		[Address(RVA = "0x97D760", Offset = "0x97C760", VA = "0x18097D760")]
		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: 0x060024AA RID: 9386 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024AA")]
		[Address(RVA = "0x97DB40", Offset = "0x97CB40", VA = "0x18097DB40")]
		public Vector3 InterpolateByLen(float tl)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024AB RID: 9387 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024AB")]
		[Address(RVA = "0x97DD50", Offset = "0x97CD50", VA = "0x18097DD50")]
		public Vector3 InterpolateNormalByLen(float tl)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024AC RID: 9388 RVA: 0x000560F8 File Offset: 0x000542F8
		[Token(Token = "0x60024AC")]
		[Address(RVA = "0x97D670", Offset = "0x97C670", VA = "0x18097D670")]
		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: 0x060024AD RID: 9389 RVA: 0x00056178 File Offset: 0x00054378
		[Token(Token = "0x60024AD")]
		[Address(RVA = "0x97DAF0", Offset = "0x97CAF0", VA = "0x18097DAF0")]
		public void Clear()
		{
			this.mControlPoints.Clear();
		}

		// Token: 0x060024AE RID: 9390 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024AE")]
		[Address(RVA = "0x97E520", Offset = "0x97D520", VA = "0x18097E520")]
		private void RefreshDistance()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024AF RID: 9391 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60024AF")]
		[Address(RVA = "0x97E760", Offset = "0x97D760", VA = "0x18097E760")]
		public void RefreshSpline()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060024B0 RID: 9392 RVA: 0x00056198 File Offset: 0x00054398
		[Token(Token = "0x60024B0")]
		[Address(RVA = "0x97E940", Offset = "0x97D940", VA = "0x18097E940")]
		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: 0x04002E1B RID: 11803
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4002E1B")]
		private List<SplineControlPoint> mControlPoints;

		// Token: 0x04002E1C RID: 11804
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002E1C")]
		private List<SplineControlPoint> mSegments;

		// Token: 0x04002E1D RID: 11805
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002E1D")]
		public int Granularity;
	}
}
