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

namespace Obi
{
	// Token: 0x0200051F RID: 1311
	public class ObiDistanceConstraints : ObiBatchedConstraints
	{
		// Token: 0x06009651 RID: 38481 RVA: 0x0026B0DC File Offset: 0x002692DC
		[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: 0x06009652 RID: 38482 RVA: 0x0026B138 File Offset: 0x00269338
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642485, XrefRangeEnd = 642505, 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: 0x06009653 RID: 38483 RVA: 0x0026B19C File Offset: 0x0026939C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642505, XrefRangeEnd = 642510, 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: 0x06009654 RID: 38484 RVA: 0x0026B1EC File Offset: 0x002693EC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 642513, RefRangeEnd = 642514, XrefRangeStart = 642510, XrefRangeEnd = 642513, 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: 0x06009655 RID: 38485 RVA: 0x0026B248 File Offset: 0x00269448
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642514, XrefRangeEnd = 642518, 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: 0x06009656 RID: 38486 RVA: 0x0026B2A4 File Offset: 0x002694A4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642518, XrefRangeEnd = 642557, 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: 0x06009657 RID: 38487 RVA: 0x0026B2E8 File Offset: 0x002694E8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642557, XrefRangeEnd = 642565, 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: 0x06009658 RID: 38488 RVA: 0x0026B334 File Offset: 0x00269534
		// 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, 100674980);
			ObiDistanceConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674981);
			ObiDistanceConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674982);
			ObiDistanceConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiDistanceConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674983);
			ObiDistanceConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiDistanceConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674984);
			ObiDistanceConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674985);
			ObiDistanceConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints>.NativeClassPtr, 100674986);
		}

		// Token: 0x06009659 RID: 38489 RVA: 0x00269EF0 File Offset: 0x002680F0
		public ObiDistanceConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170032D3 RID: 13011
		// (get) Token: 0x0600965A RID: 38490 RVA: 0x0026B440 File Offset: 0x00269640
		// (set) Token: 0x0600965B RID: 38491 RVA: 0x0026B468 File Offset: 0x00269668
		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: 0x170032D4 RID: 13012
		// (get) Token: 0x0600965C RID: 38492 RVA: 0x0026B48C File Offset: 0x0026968C
		// (set) Token: 0x0600965D RID: 38493 RVA: 0x0026B4B4 File Offset: 0x002696B4
		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: 0x170032D5 RID: 13013
		// (get) Token: 0x0600965E RID: 38494 RVA: 0x0026B4D8 File Offset: 0x002696D8
		// (set) Token: 0x0600965F RID: 38495 RVA: 0x0026B500 File Offset: 0x00269700
		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: 0x170032D6 RID: 13014
		// (get) Token: 0x06009660 RID: 38496 RVA: 0x0026B524 File Offset: 0x00269724
		// (set) Token: 0x06009661 RID: 38497 RVA: 0x0026B558 File Offset: 0x00269758
		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: 0x04006455 RID: 25685
		private static readonly IntPtr NativeFieldInfoPtr_stretchingScale;

		// Token: 0x04006456 RID: 25686
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04006457 RID: 25687
		private static readonly IntPtr NativeFieldInfoPtr_slack;

		// Token: 0x04006458 RID: 25688
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04006459 RID: 25689
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x0400645A RID: 25690
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x0400645B RID: 25691
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x0400645C RID: 25692
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiDistanceConstraintBatch_0;

		// Token: 0x0400645D RID: 25693
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiDistanceConstraintBatch_0;

		// Token: 0x0400645E RID: 25694
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x0400645F RID: 25695
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000520 RID: 1312
		[ObfuscatedName("Obi.ObiDistanceConstraints/<>c")]
		[Serializable]
		public sealed class __c : Object
		{
			// Token: 0x06009662 RID: 38498 RVA: 0x0026B580 File Offset: 0x00269780
			[CallerCount(1664)]
			[CachedScanResults(RefRangeStart = 7711, RefRangeEnd = 9375, XrefRangeStart = 7711, XrefRangeEnd = 9375, 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: 0x06009663 RID: 38499 RVA: 0x0026B5CC File Offset: 0x002697CC
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51857, RefRangeEnd = 51858, XrefRangeStart = 51857, XrefRangeEnd = 51858, 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: 0x06009664 RID: 38500 RVA: 0x0026B63C File Offset: 0x0026983C
			// 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, 100674988);
				ObiDistanceConstraints.__c.NativeMethodInfoPtr__GetBatches_b__5_0_Internal_ObiConstraintBatch_ObiDistanceConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiDistanceConstraints.__c>.NativeClassPtr, 100674989);
			}

			// Token: 0x06009665 RID: 38501 RVA: 0x0000A74C File Offset: 0x0000894C
			public __c(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x170032D7 RID: 13015
			// (get) Token: 0x06009666 RID: 38502 RVA: 0x0026B6B8 File Offset: 0x002698B8
			// (set) Token: 0x06009667 RID: 38503 RVA: 0x0026B6E3 File Offset: 0x002698E3
			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: 0x170032D8 RID: 13016
			// (get) Token: 0x06009668 RID: 38504 RVA: 0x0026B6F8 File Offset: 0x002698F8
			// (set) Token: 0x06009669 RID: 38505 RVA: 0x0026B723 File Offset: 0x00269923
			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: 0x04006460 RID: 25696
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04006461 RID: 25697
			private static readonly IntPtr NativeFieldInfoPtr___9__5_0;

			// Token: 0x04006462 RID: 25698
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04006463 RID: 25699
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__5_0_Internal_ObiConstraintBatch_ObiDistanceConstraintBatch_0;
		}
	}
}
