using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;

namespace Obi
{
	// Token: 0x020004F4 RID: 1268
	[Token(Token = "0x20004F4")]
	public class ObiEdgeShapeTracker2D : ObiShapeTracker
	{
		// Token: 0x06002CC8 RID: 11464 RVA: 0x00062E58 File Offset: 0x00061058
		[Token(Token = "0x6002CC8")]
		[Address(RVA = "0x10A2280", Offset = "0x10A1280", VA = "0x1810A2280")]
		public ObiEdgeShapeTracker2D(EdgeCollider2D collider)
		{
			this.collider = collider;
			this.adaptor.is2D = true;
			IntPtr intPtr = Oni.CreateShape(Oni.ShapeType.EdgeMesh);
			this.oniShape = intPtr;
			this.UpdateEdgeData();
		}

		// Token: 0x06002CC9 RID: 11465 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002CC9")]
		[Address(RVA = "0x10A1EB0", Offset = "0x10A0EB0", VA = "0x1810A1EB0")]
		public void UpdateEdgeData()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002CCA RID: 11466 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002CCA")]
		[Address(RVA = "0x10A2130", Offset = "0x10A1130", VA = "0x1810A2130", Slot = "5")]
		public override void UpdateIfNeeded()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002CCB RID: 11467 RVA: 0x00062E94 File Offset: 0x00061094
		[Token(Token = "0x6002CCB")]
		[Address(RVA = "0x10A1E80", Offset = "0x10A0E80", VA = "0x1810A1E80", Slot = "4")]
		public override void Destroy()
		{
			base.Destroy();
			Oni.UnpinMemory(this.pointsHandle);
			Oni.UnpinMemory(this.indicesHandle);
		}

		// Token: 0x040035EE RID: 13806
		[Cpp2IlInjected.FieldOffset(Offset = "0x60")]
		[Token(Token = "0x40035EE")]
		private int pointCount;

		// Token: 0x040035EF RID: 13807
		[Cpp2IlInjected.FieldOffset(Offset = "0x64")]
		[Token(Token = "0x40035EF")]
		private GCHandle pointsHandle;

		// Token: 0x040035F0 RID: 13808
		[Cpp2IlInjected.FieldOffset(Offset = "0x68")]
		[Token(Token = "0x40035F0")]
		private GCHandle indicesHandle;

		// Token: 0x040035F1 RID: 13809
		[Cpp2IlInjected.FieldOffset(Offset = "0x6C")]
		[Token(Token = "0x40035F1")]
		private bool edgeDataHasChanged;
	}
}
