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

namespace Obi
{
	// Token: 0x020004BC RID: 1212
	[Token(Token = "0x20004BC")]
	[DisallowMultipleComponent]
	public class ObiSkinConstraints : ObiBatchedConstraints
	{
		// Token: 0x06002AEF RID: 10991 RVA: 0x0005D390 File Offset: 0x0005B590
		[Token(Token = "0x6002AEF")]
		[Address(RVA = "0x970830", Offset = "0x96F630", VA = "0x180970830", Slot = "8")]
		public override Oni.ConstraintType GetConstraintType()
		{
			return Oni.ConstraintType.Skin;
		}

		// Token: 0x06002AF0 RID: 10992 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AF0")]
		[Address(RVA = "0xD297A0", Offset = "0xD285A0", VA = "0x180D297A0", Slot = "9")]
		public override List<ObiConstraintBatch> GetBatches()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AF1 RID: 10993 RVA: 0x0005D3A0 File Offset: 0x0005B5A0
		[Token(Token = "0x6002AF1")]
		[Address(RVA = "0xD29740", Offset = "0xD28540", VA = "0x180D29740", Slot = "10")]
		public override void Clear()
		{
			int num = 0;
			bool flag = base.RemoveFromSolver(num);
			this.batches.Clear();
		}

		// Token: 0x06002AF2 RID: 10994 RVA: 0x0005D3C8 File Offset: 0x0005B5C8
		[Token(Token = "0x6002AF2")]
		[Address(RVA = "0xD296A0", Offset = "0xD284A0", VA = "0x180D296A0")]
		public void AddBatch(ObiSkinConstraintBatch batch)
		{
			if (batch != 0)
			{
				int constraintType = (int)batch.GetConstraintType();
				Oni.ConstraintType constraintType2 = this.GetConstraintType();
				if (constraintType == (int)constraintType2)
				{
					this.batches.Add(batch);
				}
			}
		}

		// Token: 0x06002AF3 RID: 10995 RVA: 0x0005D400 File Offset: 0x0005B600
		[Token(Token = "0x6002AF3")]
		[Address(RVA = "0xD29D50", Offset = "0xD28B50", VA = "0x180D29D50")]
		public void RemoveBatch(ObiSkinConstraintBatch batch)
		{
			bool flag = this.batches.Remove(batch);
		}

		// Token: 0x06002AF4 RID: 10996 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AF4")]
		[Address(RVA = "0xD298D0", Offset = "0xD286D0", VA = "0x180D298D0")]
		public void OnDrawGizmosSelected()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AF5 RID: 10997 RVA: 0x0005D420 File Offset: 0x0005B620
		[Token(Token = "0x6002AF5")]
		[Address(RVA = "0xD29DB0", Offset = "0xD28BB0", VA = "0x180D29DB0")]
		public ObiSkinConstraints()
		{
			List<ObiSkinConstraintBatch> list = new List();
			this.batches = list;
			base..ctor();
		}

		// Token: 0x04003384 RID: 13188
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003384")]
		[Tooltip("Skin constraints stiffness.")]
		[Range(0f, 1f)]
		public float stiffness = 1f;

		// Token: 0x04003385 RID: 13189
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003385")]
		[SerializeField]
		[HideInInspector]
		private List<ObiSkinConstraintBatch> batches;
	}
}
