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

namespace Obi
{
	// Token: 0x02000521 RID: 1313
	public class ObiPinConstraints : ObiBatchedConstraints
	{
		// Token: 0x0600966A RID: 38506 RVA: 0x0026B738 File Offset: 0x00269938
		[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: 0x0600966B RID: 38507 RVA: 0x0026B794 File Offset: 0x00269994
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642565, XrefRangeEnd = 642585, 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: 0x0600966C RID: 38508 RVA: 0x0026B7F8 File Offset: 0x002699F8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642585, XrefRangeEnd = 642590, 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: 0x0600966D RID: 38509 RVA: 0x0026B848 File Offset: 0x00269A48
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642590, XrefRangeEnd = 642593, 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: 0x0600966E RID: 38510 RVA: 0x0026B8A4 File Offset: 0x00269AA4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642593, XrefRangeEnd = 642597, 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: 0x0600966F RID: 38511 RVA: 0x0026B900 File Offset: 0x00269B00
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642597, XrefRangeEnd = 642639, 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: 0x06009670 RID: 38512 RVA: 0x0026B944 File Offset: 0x00269B44
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642639, XrefRangeEnd = 642647, 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: 0x06009671 RID: 38513 RVA: 0x0026B990 File Offset: 0x00269B90
		// 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, 100674990);
			ObiPinConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674991);
			ObiPinConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674992);
			ObiPinConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiPinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674993);
			ObiPinConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiPinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674994);
			ObiPinConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674995);
			ObiPinConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints>.NativeClassPtr, 100674996);
		}

		// Token: 0x06009672 RID: 38514 RVA: 0x00269EF0 File Offset: 0x002680F0
		public ObiPinConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170032D9 RID: 13017
		// (get) Token: 0x06009673 RID: 38515 RVA: 0x0026BA74 File Offset: 0x00269C74
		// (set) Token: 0x06009674 RID: 38516 RVA: 0x0026BA9C File Offset: 0x00269C9C
		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: 0x170032DA RID: 13018
		// (get) Token: 0x06009675 RID: 38517 RVA: 0x0026BAC0 File Offset: 0x00269CC0
		// (set) Token: 0x06009676 RID: 38518 RVA: 0x0026BAF4 File Offset: 0x00269CF4
		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: 0x04006464 RID: 25700
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04006465 RID: 25701
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04006466 RID: 25702
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04006467 RID: 25703
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x04006468 RID: 25704
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04006469 RID: 25705
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiPinConstraintBatch_0;

		// Token: 0x0400646A RID: 25706
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiPinConstraintBatch_0;

		// Token: 0x0400646B RID: 25707
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x0400646C RID: 25708
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000522 RID: 1314
		[ObfuscatedName("Obi.ObiPinConstraints/<>c")]
		[Serializable]
		public sealed class __c : Object
		{
			// Token: 0x06009677 RID: 38519 RVA: 0x0026BB1C File Offset: 0x00269D1C
			[CallerCount(1664)]
			[CachedScanResults(RefRangeStart = 7711, RefRangeEnd = 9375, XrefRangeStart = 7711, XrefRangeEnd = 9375, 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: 0x06009678 RID: 38520 RVA: 0x0026BB68 File Offset: 0x00269D68
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51857, RefRangeEnd = 51858, XrefRangeStart = 51857, XrefRangeEnd = 51858, 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: 0x06009679 RID: 38521 RVA: 0x0026BBD8 File Offset: 0x00269DD8
			// 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, 100674998);
				ObiPinConstraints.__c.NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiPinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiPinConstraints.__c>.NativeClassPtr, 100674999);
			}

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

			// Token: 0x170032DB RID: 13019
			// (get) Token: 0x0600967B RID: 38523 RVA: 0x0026BC54 File Offset: 0x00269E54
			// (set) Token: 0x0600967C RID: 38524 RVA: 0x0026BC7F File Offset: 0x00269E7F
			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: 0x170032DC RID: 13020
			// (get) Token: 0x0600967D RID: 38525 RVA: 0x0026BC94 File Offset: 0x00269E94
			// (set) Token: 0x0600967E RID: 38526 RVA: 0x0026BCBF File Offset: 0x00269EBF
			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: 0x0400646D RID: 25709
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x0400646E RID: 25710
			private static readonly IntPtr NativeFieldInfoPtr___9__3_0;

			// Token: 0x0400646F RID: 25711
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04006470 RID: 25712
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiPinConstraintBatch_0;
		}
	}
}
