using System;
using Cpp2IlInjected;
using UnityEngine;

namespace Obi
{
	// Token: 0x020004F9 RID: 1273
	[Token(Token = "0x20004F9")]
	public abstract class ObiShapeTracker
	{
		// Token: 0x17000300 RID: 768
		// (get) Token: 0x06002CDD RID: 11485 RVA: 0x00063070 File Offset: 0x00061270
		[Token(Token = "0x17000300")]
		public IntPtr OniShape
		{
			[Token(Token = "0x6002CDD")]
			[Address(RVA = "0x33F1C0", Offset = "0x33E1C0", VA = "0x18033F1C0")]
			get
			{
				return this.oniShape;
			}
		}

		// Token: 0x06002CDE RID: 11486 RVA: 0x00063084 File Offset: 0x00061284
		[Token(Token = "0x6002CDE")]
		[Address(RVA = "0xE592A0", Offset = "0xE582A0", VA = "0x180E592A0", Slot = "4")]
		public virtual void Destroy()
		{
			Oni.DestroyShape(this.oniShape);
			this.oniShape = (IntPtr)((ulong)0L);
		}

		// Token: 0x06002CDF RID: 11487
		[Token(Token = "0x6002CDF")]
		[Address(Slot = "5")]
		public abstract void UpdateIfNeeded();

		// Token: 0x06002CE0 RID: 11488 RVA: 0x000630A8 File Offset: 0x000612A8
		[Token(Token = "0x6002CE0")]
		[Address(RVA = "0xE592E0", Offset = "0xE582E0", VA = "0x180E592E0")]
		protected ObiShapeTracker()
		{
		}

		// Token: 0x040035FE RID: 13822
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x40035FE")]
		protected Component collider;

		// Token: 0x040035FF RID: 13823
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x40035FF")]
		protected Oni.Shape adaptor;

		// Token: 0x04003600 RID: 13824
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4003600")]
		protected IntPtr oniShape = (IntPtr)((ulong)0L);
	}
}
