using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;

namespace Obi
{
	// Token: 0x020004C7 RID: 1223
	public class ObiDistanceConstraints : ObiBatchedConstraints
	{
		// Token: 0x06008DFE RID: 36350 RVA: 0x002483A0 File Offset: 0x002465A0
		[CallerCount(0)]
		public unsafe override Oni.ConstraintType GetConstraintType()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiDistanceConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008DFF RID: 36351 RVA: 0x002483FC File Offset: 0x002465FC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610175, XrefRangeEnd = 610195, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override List<ObiConstraintBatch> GetBatches()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiDistanceConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new List<ObiConstraintBatch>(intPtr3) : null;
		}

		// Token: 0x06008E00 RID: 36352 RVA: 0x00248460 File Offset: 0x00246660
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610195, XrefRangeEnd = 610200, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void Clear()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiDistanceConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E01 RID: 36353 RVA: 0x002484B0 File Offset: 0x002466B0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 610203, RefRangeEnd = 610204, XrefRangeStart = 610200, XrefRangeEnd = 610203, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void AddBatch(ObiDistanceConstraintBatch batch)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(batch);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiDistanceConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiDistanceConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008E02 RID: 36354 RVA: 0x0024850C File Offset: 0x0024670C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610204, XrefRangeEnd = 610208, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void RemoveBatch(ObiDistanceConstraintBatch batch)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(batch);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiDistanceConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiDistanceConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008E03 RID: 36355 RVA: 0x00248568 File Offset: 0x00246768
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610208, XrefRangeEnd = 610247, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDrawGizmosSelected()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiDistanceConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E04 RID: 36356 RVA: 0x002485AC File Offset: 0x002467AC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610247, XrefRangeEnd = 610255, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiDistanceConstraints()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiDistanceConstraints.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E05 RID: 36357 RVA: 0x002485F8 File Offset: 0x002467F8
		// Note: this type is marked as 'beforefieldinit'.
		static ObiDistanceConstraints()
		{
			Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiDistanceConstraints");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr);
			ObiDistanceConstraints.NativeFieldInfoPtr_stretchingScale = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, "stretchingScale");
			ObiDistanceConstraints.NativeFieldInfoPtr_stiffness = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, "stiffness");
			ObiDistanceConstraints.NativeFieldInfoPtr_slack = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, "slack");
			ObiDistanceConstraints.NativeFieldInfoPtr_batches = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, "batches");
			ObiDistanceConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674267);
			ObiDistanceConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674268);
			ObiDistanceConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674269);
			ObiDistanceConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiDistanceConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674270);
			ObiDistanceConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiDistanceConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674271);
			ObiDistanceConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674272);
			ObiDistanceConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674273);
		}

		// Token: 0x06008E06 RID: 36358 RVA: 0x002471B4 File Offset: 0x002453B4
		public ObiDistanceConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003038 RID: 12344
		// (get) Token: 0x06008E07 RID: 36359 RVA: 0x00248704 File Offset: 0x00246904
		// (set) Token: 0x06008E08 RID: 36360 RVA: 0x0024872C File Offset: 0x0024692C
		public unsafe float stretchingScale
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_stretchingScale);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_stretchingScale)) = value;
			}
		}

		// Token: 0x17003039 RID: 12345
		// (get) Token: 0x06008E09 RID: 36361 RVA: 0x00248750 File Offset: 0x00246950
		// (set) Token: 0x06008E0A RID: 36362 RVA: 0x00248778 File Offset: 0x00246978
		public unsafe float stiffness
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_stiffness);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_stiffness)) = value;
			}
		}

		// Token: 0x1700303A RID: 12346
		// (get) Token: 0x06008E0B RID: 36363 RVA: 0x0024879C File Offset: 0x0024699C
		// (set) Token: 0x06008E0C RID: 36364 RVA: 0x002487C4 File Offset: 0x002469C4
		public unsafe float slack
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_slack);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_slack)) = value;
			}
		}

		// Token: 0x1700303B RID: 12347
		// (get) Token: 0x06008E0D RID: 36365 RVA: 0x002487E8 File Offset: 0x002469E8
		// (set) Token: 0x06008E0E RID: 36366 RVA: 0x0024881C File Offset: 0x00246A1C
		public unsafe List<ObiDistanceConstraintBatch> batches
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_batches);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<ObiDistanceConstraintBatch>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiDistanceConstraints.NativeFieldInfoPtr_batches), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04005EAC RID: 24236
		private static readonly IntPtr NativeFieldInfoPtr_stretchingScale;

		// Token: 0x04005EAD RID: 24237
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04005EAE RID: 24238
		private static readonly IntPtr NativeFieldInfoPtr_slack;

		// Token: 0x04005EAF RID: 24239
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04005EB0 RID: 24240
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04005EB1 RID: 24241
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x04005EB2 RID: 24242
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04005EB3 RID: 24243
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiDistanceConstraintBatch_0;

		// Token: 0x04005EB4 RID: 24244
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiDistanceConstraintBatch_0;

		// Token: 0x04005EB5 RID: 24245
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x04005EB6 RID: 24246
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020004C8 RID: 1224
		[ObfuscatedName("Obi.ObiDistanceConstraints/<>c")]
		[Serializable]
		public sealed class __c : Object
		{
			// Token: 0x06008E0F RID: 36367 RVA: 0x00248844 File Offset: 0x00246A44
			[CallerCount(1642)]
			[CachedScanResults(RefRangeStart = 7417, RefRangeEnd = 9059, XrefRangeStart = 7417, XrefRangeEnd = 9059, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe __c()
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr))
			{
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiDistanceConstraints.__c.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x06008E10 RID: 36368 RVA: 0x00248890 File Offset: 0x00246A90
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51855, RefRangeEnd = 51856, XrefRangeStart = 51855, XrefRangeEnd = 51856, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe ObiConstraintBatch _GetBatches_b__5_0(ObiDistanceConstraintBatch x)
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = IL2CPP.Il2CppObjectBaseToPtr(x);
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiDistanceConstraints.__c.NativeMethodInfoPtr__GetBatches_b__5_0_Internal_ObiConstraintBatch_ObiDistanceConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new ObiConstraintBatch(intPtr3) : null;
				}
			}

			// Token: 0x06008E11 RID: 36369 RVA: 0x00248900 File Offset: 0x00246B00
			// Note: this type is marked as 'beforefieldinit'.
			static __c()
			{
				Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, "<>c");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr);
				ObiDistanceConstraints.__c.NativeFieldInfoPtr___9 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr, "<>9");
				ObiDistanceConstraints.__c.NativeFieldInfoPtr___9__5_0 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr, "<>9__5_0");
				ObiDistanceConstraints.__c.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr, 100674275);
				ObiDistanceConstraints.__c.NativeMethodInfoPtr__GetBatches_b__5_0_Internal_ObiConstraintBatch_ObiDistanceConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr, 100674276);
			}

			// Token: 0x06008E12 RID: 36370 RVA: 0x0000A688 File Offset: 0x00008888
			public __c(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x1700303C RID: 12348
			// (get) Token: 0x06008E13 RID: 36371 RVA: 0x0024897C File Offset: 0x00246B7C
			// (set) Token: 0x06008E14 RID: 36372 RVA: 0x002489A7 File Offset: 0x00246BA7
			public unsafe static ObiDistanceConstraints.__c __9
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiDistanceConstraints.__c.NativeFieldInfoPtr___9, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new ObiDistanceConstraints.__c(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiDistanceConstraints.__c.NativeFieldInfoPtr___9, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x1700303D RID: 12349
			// (get) Token: 0x06008E15 RID: 36373 RVA: 0x002489BC File Offset: 0x00246BBC
			// (set) Token: 0x06008E16 RID: 36374 RVA: 0x002489E7 File Offset: 0x00246BE7
			public unsafe static Converter<ObiDistanceConstraintBatch, ObiConstraintBatch> __9__5_0
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiDistanceConstraints.__c.NativeFieldInfoPtr___9__5_0, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new Converter<ObiDistanceConstraintBatch, ObiConstraintBatch>(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiDistanceConstraints.__c.NativeFieldInfoPtr___9__5_0, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x04005EB7 RID: 24247
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04005EB8 RID: 24248
			private static readonly IntPtr NativeFieldInfoPtr___9__5_0;

			// Token: 0x04005EB9 RID: 24249
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04005EBA RID: 24250
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__5_0_Internal_ObiConstraintBatch_ObiDistanceConstraintBatch_0;
		}
	}
}
