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

namespace Obi
{
	// Token: 0x0200050D RID: 1293
	[Token(Token = "0x200050D")]
	[ExecuteInEditMode]
	public abstract class ObiBatchedConstraints : MonoBehaviour, IObiSolverClient
	{
		// Token: 0x1700030A RID: 778
		// (get) Token: 0x06002D87 RID: 11655 RVA: 0x00064328 File Offset: 0x00062528
		[Token(Token = "0x1700030A")]
		public ObiActor Actor
		{
			[Token(Token = "0x6002D87")]
			[Address(RVA = "0x2990A0", Offset = "0x2980A0", VA = "0x1802990A0")]
			get
			{
				return this.actor;
			}
		}

		// Token: 0x1700030B RID: 779
		// (get) Token: 0x06002D88 RID: 11656 RVA: 0x0006433C File Offset: 0x0006253C
		[Token(Token = "0x1700030B")]
		public bool InSolver
		{
			[Token(Token = "0x6002D88")]
			[Address(RVA = "0x369E30", Offset = "0x368E30", VA = "0x180369E30")]
			get
			{
				return this.inSolver;
			}
		}

		// Token: 0x06002D89 RID: 11657
		[Token(Token = "0x6002D89")]
		[Address(Slot = "8")]
		public abstract Oni.ConstraintType GetConstraintType();

		// Token: 0x06002D8A RID: 11658
		[Token(Token = "0x6002D8A")]
		[Address(Slot = "9")]
		public abstract List<ObiConstraintBatch> GetBatches();

		// Token: 0x06002D8B RID: 11659
		[Token(Token = "0x6002D8B")]
		[Address(Slot = "10")]
		public abstract void Clear();

		// Token: 0x06002D8C RID: 11660 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D8C")]
		[Address(RVA = "0x108FF30", Offset = "0x108EF30", VA = "0x18108FF30")]
		protected void OnAddToSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D8D RID: 11661 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D8D")]
		[Address(RVA = "0x1090160", Offset = "0x108F160", VA = "0x181090160")]
		protected void OnRemoveFromSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D8E RID: 11662 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D8E")]
		[Address(RVA = "0x1090400", Offset = "0x108F400", VA = "0x181090400", Slot = "6")]
		public void PushDataToSolver(ParticleData data = ParticleData.NONE)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D8F RID: 11663 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D8F")]
		[Address(RVA = "0x10902F0", Offset = "0x108F2F0", VA = "0x1810902F0", Slot = "7")]
		public void PullDataFromSolver(ParticleData data = ParticleData.NONE)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D90 RID: 11664 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D90")]
		[Address(RVA = "0x10905C0", Offset = "0x108F5C0", VA = "0x1810905C0")]
		public void SetActiveConstraints()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D91 RID: 11665 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D91")]
		[Address(RVA = "0x108FDD0", Offset = "0x108EDD0", VA = "0x18108FDD0")]
		public void Enable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D92 RID: 11666 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D92")]
		[Address(RVA = "0x108FCC0", Offset = "0x108ECC0", VA = "0x18108FCC0")]
		public void Disable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D93 RID: 11667 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D93")]
		[Address(RVA = "0x108FBC0", Offset = "0x108EBC0", VA = "0x18108FBC0", Slot = "4")]
		public bool AddToSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D94 RID: 11668 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D94")]
		[Address(RVA = "0x1090510", Offset = "0x108F510", VA = "0x181090510", Slot = "5")]
		public bool RemoveFromSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D95 RID: 11669 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002D95")]
		[Address(RVA = "0x108FEE0", Offset = "0x108EEE0", VA = "0x18108FEE0")]
		public void GrabActor()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002D96 RID: 11670 RVA: 0x00064350 File Offset: 0x00062550
		[Token(Token = "0x6002D96")]
		[Address(RVA = "0x1090150", Offset = "0x108F150", VA = "0x181090150")]
		public void OnEnable()
		{
			this.Enable();
		}

		// Token: 0x06002D97 RID: 11671 RVA: 0x00064364 File Offset: 0x00062564
		[Token(Token = "0x6002D97")]
		[Address(RVA = "0x10900C0", Offset = "0x108F0C0", VA = "0x1810900C0")]
		public void OnDisable()
		{
			ObiActor obiActor = this.actor;
			int num = 0;
			if (!(obiActor == num) && this.actor.inSolver)
			{
				this.Disable();
			}
		}

		// Token: 0x06002D98 RID: 11672 RVA: 0x000643A0 File Offset: 0x000625A0
		[Token(Token = "0x6002D98")]
		[Address(RVA = "0x10900B0", Offset = "0x108F0B0", VA = "0x1810900B0")]
		public void OnDestroy()
		{
			int num = 0;
			bool flag = this.RemoveFromSolver(num);
		}

		// Token: 0x06002D99 RID: 11673 RVA: 0x000643B8 File Offset: 0x000625B8
		[Token(Token = "0x6002D99")]
		[Address(RVA = "0x328C40", Offset = "0x327C40", VA = "0x180328C40")]
		protected ObiBatchedConstraints()
		{
		}

		// Token: 0x0400365C RID: 13916
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x400365C")]
		public bool visualize;

		// Token: 0x0400365D RID: 13917
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x400365D")]
		[NonSerialized]
		protected ObiActor actor;

		// Token: 0x0400365E RID: 13918
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x400365E")]
		[NonSerialized]
		protected bool inSolver;
	}
}
