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

namespace Obi
{
	// Token: 0x020004BA RID: 1210
	[Token(Token = "0x20004BA")]
	[DisallowMultipleComponent]
	public class ObiPinConstraints : ObiBatchedConstraints
	{
		// Token: 0x06002AE5 RID: 10981 RVA: 0x0005D2A8 File Offset: 0x0005B4A8
		[Token(Token = "0x6002AE5")]
		[Address(RVA = "0x370C60", Offset = "0x36FA60", VA = "0x180370C60", Slot = "8")]
		public override Oni.ConstraintType GetConstraintType()
		{
			return Oni.ConstraintType.Pin;
		}

		// Token: 0x06002AE6 RID: 10982 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AE6")]
		[Address(RVA = "0xD26F90", Offset = "0xD25D90", VA = "0x180D26F90", Slot = "9")]
		public override List<ObiConstraintBatch> GetBatches()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AE7 RID: 10983 RVA: 0x0005D2B8 File Offset: 0x0005B4B8
		[Token(Token = "0x6002AE7")]
		[Address(RVA = "0xD26F30", Offset = "0xD25D30", VA = "0x180D26F30", Slot = "10")]
		public override void Clear()
		{
			int num = 0;
			bool flag = base.RemoveFromSolver(num);
			this.batches.Clear();
		}

		// Token: 0x06002AE8 RID: 10984 RVA: 0x0005D2E0 File Offset: 0x0005B4E0
		[Token(Token = "0x6002AE8")]
		[Address(RVA = "0xD26E90", Offset = "0xD25C90", VA = "0x180D26E90")]
		public void AddBatch(ObiPinConstraintBatch batch)
		{
			if (batch != 0)
			{
				int constraintType = (int)batch.GetConstraintType();
				Oni.ConstraintType constraintType2 = this.GetConstraintType();
				if (constraintType == (int)constraintType2)
				{
					this.batches.Add(batch);
				}
			}
		}

		// Token: 0x06002AE9 RID: 10985 RVA: 0x0005D318 File Offset: 0x0005B518
		[Token(Token = "0x6002AE9")]
		[Address(RVA = "0xD27460", Offset = "0xD26260", VA = "0x180D27460")]
		public void RemoveBatch(ObiPinConstraintBatch batch)
		{
			bool flag = this.batches.Remove(batch);
		}

		// Token: 0x06002AEA RID: 10986 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AEA")]
		[Address(RVA = "0xD270C0", Offset = "0xD25EC0", VA = "0x180D270C0")]
		public void OnDrawGizmosSelected()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AEB RID: 10987 RVA: 0x0005D338 File Offset: 0x0005B538
		[Token(Token = "0x6002AEB")]
		[Address(RVA = "0xD274C0", Offset = "0xD262C0", VA = "0x180D274C0")]
		public ObiPinConstraints()
		{
			List<ObiPinConstraintBatch> list = new List();
			this.batches = list;
			base..ctor();
		}

		// Token: 0x04003380 RID: 13184
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003380")]
		[Tooltip("Pin resistance to stretching. Lower values will yield more elastic pin constraints.")]
		[Range(0f, 1f)]
		public float stiffness = 1f;

		// Token: 0x04003381 RID: 13185
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003381")]
		[HideInInspector]
		[SerializeField]
		private List<ObiPinConstraintBatch> batches;
	}
}
