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

namespace Obi
{
	// Token: 0x020004C0 RID: 1216
	[Token(Token = "0x20004C0")]
	[DisallowMultipleComponent]
	public class ObiVolumeConstraints : ObiBatchedConstraints
	{
		// Token: 0x06002B03 RID: 11011 RVA: 0x0005D55C File Offset: 0x0005B75C
		[Token(Token = "0x6002B03")]
		[Address(RVA = "0x51C1E0", Offset = "0x51AFE0", VA = "0x18051C1E0", Slot = "8")]
		public override Oni.ConstraintType GetConstraintType()
		{
			return Oni.ConstraintType.Volume;
		}

		// Token: 0x06002B04 RID: 11012 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B04")]
		[Address(RVA = "0xD36F10", Offset = "0xD35D10", VA = "0x180D36F10", Slot = "9")]
		public override List<ObiConstraintBatch> GetBatches()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B05 RID: 11013 RVA: 0x0005D56C File Offset: 0x0005B76C
		[Token(Token = "0x6002B05")]
		[Address(RVA = "0xD36EB0", Offset = "0xD35CB0", VA = "0x180D36EB0", Slot = "10")]
		public override void Clear()
		{
			int num = 0;
			bool flag = base.RemoveFromSolver(num);
			this.batches.Clear();
		}

		// Token: 0x06002B06 RID: 11014 RVA: 0x0005D594 File Offset: 0x0005B794
		[Token(Token = "0x6002B06")]
		[Address(RVA = "0xD36E10", Offset = "0xD35C10", VA = "0x180D36E10")]
		public void AddBatch(ObiVolumeConstraintBatch batch)
		{
			if (batch != 0)
			{
				int constraintType = (int)batch.GetConstraintType();
				Oni.ConstraintType constraintType2 = this.GetConstraintType();
				if (constraintType == (int)constraintType2)
				{
					this.batches.Add(batch);
				}
			}
		}

		// Token: 0x06002B07 RID: 11015 RVA: 0x0005D5CC File Offset: 0x0005B7CC
		[Token(Token = "0x6002B07")]
		[Address(RVA = "0xD374C0", Offset = "0xD362C0", VA = "0x180D374C0")]
		public void RemoveBatch(ObiVolumeConstraintBatch batch)
		{
			bool flag = this.batches.Remove(batch);
		}

		// Token: 0x06002B08 RID: 11016 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B08")]
		[Address(RVA = "0xD37040", Offset = "0xD35E40", VA = "0x180D37040")]
		public void OnDrawGizmosSelected()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B09 RID: 11017 RVA: 0x0005D5EC File Offset: 0x0005B7EC
		[Token(Token = "0x6002B09")]
		[Address(RVA = "0xD37520", Offset = "0xD36320", VA = "0x180D37520")]
		public ObiVolumeConstraints()
		{
			List<ObiVolumeConstraintBatch> list = new List();
			this.batches = list;
			base..ctor();
		}

		// Token: 0x0400338D RID: 13197
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x400338D")]
		[Tooltip("Amount of pressure applied to the cloth.")]
		public float overpressure = 1f;

		// Token: 0x0400338E RID: 13198
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x400338E")]
		[Tooltip("Stiffness of the volume constraints. Higher values will make the constraints to try harder to enforce the set volume.")]
		[Range(0f, 1f)]
		public float stiffness = 1f;

		// Token: 0x0400338F RID: 13199
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x400338F")]
		[SerializeField]
		[HideInInspector]
		private List<ObiVolumeConstraintBatch> batches;
	}
}
