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

namespace Obi
{
	// Token: 0x020004C9 RID: 1225
	public class ObiPinConstraints : ObiBatchedConstraints
	{
		// Token: 0x06008E17 RID: 36375 RVA: 0x002489FC File Offset: 0x00246BFC
		[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), ObiPinConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008E18 RID: 36376 RVA: 0x00248A58 File Offset: 0x00246C58
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610255, XrefRangeEnd = 610275, 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), ObiPinConstraints.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: 0x06008E19 RID: 36377 RVA: 0x00248ABC File Offset: 0x00246CBC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610275, XrefRangeEnd = 610280, 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), ObiPinConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E1A RID: 36378 RVA: 0x00248B0C File Offset: 0x00246D0C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610280, XrefRangeEnd = 610283, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void AddBatch(ObiPinConstraintBatch 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(ObiPinConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiPinConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008E1B RID: 36379 RVA: 0x00248B68 File Offset: 0x00246D68
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610283, XrefRangeEnd = 610287, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void RemoveBatch(ObiPinConstraintBatch 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(ObiPinConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiPinConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008E1C RID: 36380 RVA: 0x00248BC4 File Offset: 0x00246DC4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610287, XrefRangeEnd = 610329, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDrawGizmosSelected()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiPinConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E1D RID: 36381 RVA: 0x00248C08 File Offset: 0x00246E08
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610329, XrefRangeEnd = 610337, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiPinConstraints()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiPinConstraints.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E1E RID: 36382 RVA: 0x00248C54 File Offset: 0x00246E54
		// Note: this type is marked as 'beforefieldinit'.
		static ObiPinConstraints()
		{
			Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiPinConstraints");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr);
			ObiPinConstraints.NativeFieldInfoPtr_stiffness = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, "stiffness");
			ObiPinConstraints.NativeFieldInfoPtr_batches = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, "batches");
			ObiPinConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674277);
			ObiPinConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674278);
			ObiPinConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674279);
			ObiPinConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiPinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674280);
			ObiPinConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiPinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674281);
			ObiPinConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674282);
			ObiPinConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674283);
		}

		// Token: 0x06008E1F RID: 36383 RVA: 0x002471B4 File Offset: 0x002453B4
		public ObiPinConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x1700303E RID: 12350
		// (get) Token: 0x06008E20 RID: 36384 RVA: 0x00248D38 File Offset: 0x00246F38
		// (set) Token: 0x06008E21 RID: 36385 RVA: 0x00248D60 File Offset: 0x00246F60
		public unsafe float stiffness
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiPinConstraints.NativeFieldInfoPtr_stiffness);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiPinConstraints.NativeFieldInfoPtr_stiffness)) = value;
			}
		}

		// Token: 0x1700303F RID: 12351
		// (get) Token: 0x06008E22 RID: 36386 RVA: 0x00248D84 File Offset: 0x00246F84
		// (set) Token: 0x06008E23 RID: 36387 RVA: 0x00248DB8 File Offset: 0x00246FB8
		public unsafe List<ObiPinConstraintBatch> batches
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiPinConstraints.NativeFieldInfoPtr_batches);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<ObiPinConstraintBatch>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiPinConstraints.NativeFieldInfoPtr_batches), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04005EBB RID: 24251
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04005EBC RID: 24252
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04005EBD RID: 24253
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04005EBE RID: 24254
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x04005EBF RID: 24255
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04005EC0 RID: 24256
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiPinConstraintBatch_0;

		// Token: 0x04005EC1 RID: 24257
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiPinConstraintBatch_0;

		// Token: 0x04005EC2 RID: 24258
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x04005EC3 RID: 24259
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

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

			// Token: 0x06008E25 RID: 36389 RVA: 0x00248E2C File Offset: 0x0024702C
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51855, RefRangeEnd = 51856, XrefRangeStart = 51855, XrefRangeEnd = 51856, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe ObiConstraintBatch _GetBatches_b__3_0(ObiPinConstraintBatch 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(ObiPinConstraints.__c.NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiPinConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new ObiConstraintBatch(intPtr3) : null;
				}
			}

			// Token: 0x06008E26 RID: 36390 RVA: 0x00248E9C File Offset: 0x0024709C
			// Note: this type is marked as 'beforefieldinit'.
			static __c()
			{
				Il2CppClassPointerStore<ObiPinConstraints.__c>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, "<>c");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiPinConstraints.__c>.NativeClassPtr);
				ObiPinConstraints.__c.NativeFieldInfoPtr___9 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiPinConstraints.__c>.NativeClassPtr, "<>9");
				ObiPinConstraints.__c.NativeFieldInfoPtr___9__3_0 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiPinConstraints.__c>.NativeClassPtr, "<>9__3_0");
				ObiPinConstraints.__c.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints.__c>.NativeClassPtr, 100674285);
				ObiPinConstraints.__c.NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiPinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints.__c>.NativeClassPtr, 100674286);
			}

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

			// Token: 0x17003040 RID: 12352
			// (get) Token: 0x06008E28 RID: 36392 RVA: 0x00248F18 File Offset: 0x00247118
			// (set) Token: 0x06008E29 RID: 36393 RVA: 0x00248F43 File Offset: 0x00247143
			public unsafe static ObiPinConstraints.__c __9
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiPinConstraints.__c.NativeFieldInfoPtr___9, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new ObiPinConstraints.__c(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiPinConstraints.__c.NativeFieldInfoPtr___9, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17003041 RID: 12353
			// (get) Token: 0x06008E2A RID: 36394 RVA: 0x00248F58 File Offset: 0x00247158
			// (set) Token: 0x06008E2B RID: 36395 RVA: 0x00248F83 File Offset: 0x00247183
			public unsafe static Converter<ObiPinConstraintBatch, ObiConstraintBatch> __9__3_0
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiPinConstraints.__c.NativeFieldInfoPtr___9__3_0, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new Converter<ObiPinConstraintBatch, ObiConstraintBatch>(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiPinConstraints.__c.NativeFieldInfoPtr___9__3_0, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x04005EC4 RID: 24260
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04005EC5 RID: 24261
			private static readonly IntPtr NativeFieldInfoPtr___9__3_0;

			// Token: 0x04005EC6 RID: 24262
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04005EC7 RID: 24263
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiPinConstraintBatch_0;
		}
	}
}
