using System;
using Cpp2IlInjected;
using UnityEngine;

namespace Obi
{
	// Token: 0x020004A1 RID: 1185
	[Token(Token = "0x20004A1")]
	public abstract class ObiShapeTracker
	{
		// Token: 0x170002DB RID: 731
		// (get) Token: 0x06002A14 RID: 10772 RVA: 0x0005BCAC File Offset: 0x00059EAC
		[Token(Token = "0x170002DB")]
		public IntPtr OniShape
		{
			[Token(Token = "0x6002A14")]
			[Address(RVA = "0x31E360", Offset = "0x31D160", VA = "0x18031E360")]
			get
			{
				return this.oniShape;
			}
		}

		// Token: 0x06002A15 RID: 10773 RVA: 0x0005BCC0 File Offset: 0x00059EC0
		[Token(Token = "0x6002A15")]
		[Address(RVA = "0xD28130", Offset = "0xD26F30", VA = "0x180D28130", Slot = "4")]
		public virtual void Destroy()
		{
			Oni.DestroyShape(this.oniShape);
			this.oniShape = (IntPtr)((ulong)0L);
		}

		// Token: 0x06002A16 RID: 10774
		[Token(Token = "0x6002A16")]
		[Address(Slot = "5")]
		public abstract void UpdateIfNeeded();

		// Token: 0x06002A17 RID: 10775 RVA: 0x0005BCE4 File Offset: 0x00059EE4
		[Token(Token = "0x6002A17")]
		[Address(RVA = "0xD28170", Offset = "0xD26F70", VA = "0x180D28170")]
		protected ObiShapeTracker()
		{
		}

		// Token: 0x04003314 RID: 13076
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4003314")]
		protected Component collider;

		// Token: 0x04003315 RID: 13077
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003315")]
		protected Oni.Shape adaptor;

		// Token: 0x04003316 RID: 13078
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4003316")]
		protected IntPtr oniShape = (IntPtr)((ulong)0L);
	}
}
