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

namespace Obi
{
	// Token: 0x02000525 RID: 1317
	public class ObiTetherConstraints : ObiBatchedConstraints
	{
		// Token: 0x06009694 RID: 38548 RVA: 0x0026C270 File Offset: 0x0026A470
		[CallerCount(28)]
		[CachedScanResults(RefRangeStart = 16479, RefRangeEnd = 16507, XrefRangeStart = 16479, XrefRangeEnd = 16507, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		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), ObiTetherConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06009695 RID: 38549 RVA: 0x0026C2CC File Offset: 0x0026A4CC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642731, XrefRangeEnd = 642751, 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), ObiTetherConstraints.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: 0x06009696 RID: 38550 RVA: 0x0026C330 File Offset: 0x0026A530
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642751, XrefRangeEnd = 642756, 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), ObiTetherConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009697 RID: 38551 RVA: 0x0026C380 File Offset: 0x0026A580
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 642759, RefRangeEnd = 642760, XrefRangeStart = 642756, XrefRangeEnd = 642759, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void AddBatch(ObiTetherConstraintBatch 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(ObiTetherConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiTetherConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06009698 RID: 38552 RVA: 0x0026C3DC File Offset: 0x0026A5DC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642760, XrefRangeEnd = 642764, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void RemoveBatch(ObiTetherConstraintBatch 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(ObiTetherConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiTetherConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06009699 RID: 38553 RVA: 0x0026C438 File Offset: 0x0026A638
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642764, XrefRangeEnd = 642801, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDrawGizmosSelected()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiTetherConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600969A RID: 38554 RVA: 0x0026C47C File Offset: 0x0026A67C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642801, XrefRangeEnd = 642809, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiTetherConstraints()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiTetherConstraints.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600969B RID: 38555 RVA: 0x0026C4C8 File Offset: 0x0026A6C8
		// Note: this type is marked as 'beforefieldinit'.
		static ObiTetherConstraints()
		{
			Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiTetherConstraints");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr);
			ObiTetherConstraints.NativeFieldInfoPtr_tetherScale = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, "tetherScale");
			ObiTetherConstraints.NativeFieldInfoPtr_stiffness = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, "stiffness");
			ObiTetherConstraints.NativeFieldInfoPtr_batches = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, "batches");
			ObiTetherConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100675010);
			ObiTetherConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100675011);
			ObiTetherConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100675012);
			ObiTetherConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiTetherConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100675013);
			ObiTetherConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiTetherConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100675014);
			ObiTetherConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100675015);
			ObiTetherConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100675016);
		}

		// Token: 0x0600969C RID: 38556 RVA: 0x00269EF0 File Offset: 0x002680F0
		public ObiTetherConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170032E1 RID: 13025
		// (get) Token: 0x0600969D RID: 38557 RVA: 0x0026C5C0 File Offset: 0x0026A7C0
		// (set) Token: 0x0600969E RID: 38558 RVA: 0x0026C5E8 File Offset: 0x0026A7E8
		public unsafe float tetherScale
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiTetherConstraints.NativeFieldInfoPtr_tetherScale);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiTetherConstraints.NativeFieldInfoPtr_tetherScale)) = value;
			}
		}

		// Token: 0x170032E2 RID: 13026
		// (get) Token: 0x0600969F RID: 38559 RVA: 0x0026C60C File Offset: 0x0026A80C
		// (set) Token: 0x060096A0 RID: 38560 RVA: 0x0026C634 File Offset: 0x0026A834
		public unsafe float stiffness
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiTetherConstraints.NativeFieldInfoPtr_stiffness);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiTetherConstraints.NativeFieldInfoPtr_stiffness)) = value;
			}
		}

		// Token: 0x170032E3 RID: 13027
		// (get) Token: 0x060096A1 RID: 38561 RVA: 0x0026C658 File Offset: 0x0026A858
		// (set) Token: 0x060096A2 RID: 38562 RVA: 0x0026C68C File Offset: 0x0026A88C
		public unsafe List<ObiTetherConstraintBatch> batches
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiTetherConstraints.NativeFieldInfoPtr_batches);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<ObiTetherConstraintBatch>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiTetherConstraints.NativeFieldInfoPtr_batches), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x0400647E RID: 25726
		private static readonly IntPtr NativeFieldInfoPtr_tetherScale;

		// Token: 0x0400647F RID: 25727
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04006480 RID: 25728
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04006481 RID: 25729
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04006482 RID: 25730
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x04006483 RID: 25731
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04006484 RID: 25732
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiTetherConstraintBatch_0;

		// Token: 0x04006485 RID: 25733
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiTetherConstraintBatch_0;

		// Token: 0x04006486 RID: 25734
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x04006487 RID: 25735
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000526 RID: 1318
		[ObfuscatedName("Obi.ObiTetherConstraints/<>c")]
		[Serializable]
		public sealed class __c : Object
		{
			// Token: 0x060096A3 RID: 38563 RVA: 0x0026C6B4 File Offset: 0x0026A8B4
			[CallerCount(1664)]
			[CachedScanResults(RefRangeStart = 7711, RefRangeEnd = 9375, XrefRangeStart = 7711, XrefRangeEnd = 9375, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe __c()
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr))
			{
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiTetherConstraints.__c.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x060096A4 RID: 38564 RVA: 0x0026C700 File Offset: 0x0026A900
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51857, RefRangeEnd = 51858, XrefRangeStart = 51857, XrefRangeEnd = 51858, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe ObiConstraintBatch _GetBatches_b__4_0(ObiTetherConstraintBatch 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(ObiTetherConstraints.__c.NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiTetherConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new ObiConstraintBatch(intPtr3) : null;
				}
			}

			// Token: 0x060096A5 RID: 38565 RVA: 0x0026C770 File Offset: 0x0026A970
			// Note: this type is marked as 'beforefieldinit'.
			static __c()
			{
				Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, "<>c");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr);
				ObiTetherConstraints.__c.NativeFieldInfoPtr___9 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr, "<>9");
				ObiTetherConstraints.__c.NativeFieldInfoPtr___9__4_0 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr, "<>9__4_0");
				ObiTetherConstraints.__c.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr, 100675018);
				ObiTetherConstraints.__c.NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiTetherConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr, 100675019);
			}

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

			// Token: 0x170032E4 RID: 13028
			// (get) Token: 0x060096A7 RID: 38567 RVA: 0x0026C7EC File Offset: 0x0026A9EC
			// (set) Token: 0x060096A8 RID: 38568 RVA: 0x0026C817 File Offset: 0x0026AA17
			public unsafe static ObiTetherConstraints.__c __9
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiTetherConstraints.__c.NativeFieldInfoPtr___9, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new ObiTetherConstraints.__c(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiTetherConstraints.__c.NativeFieldInfoPtr___9, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x170032E5 RID: 13029
			// (get) Token: 0x060096A9 RID: 38569 RVA: 0x0026C82C File Offset: 0x0026AA2C
			// (set) Token: 0x060096AA RID: 38570 RVA: 0x0026C857 File Offset: 0x0026AA57
			public unsafe static Converter<ObiTetherConstraintBatch, ObiConstraintBatch> __9__4_0
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiTetherConstraints.__c.NativeFieldInfoPtr___9__4_0, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new Converter<ObiTetherConstraintBatch, ObiConstraintBatch>(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiTetherConstraints.__c.NativeFieldInfoPtr___9__4_0, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x04006488 RID: 25736
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04006489 RID: 25737
			private static readonly IntPtr NativeFieldInfoPtr___9__4_0;

			// Token: 0x0400648A RID: 25738
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x0400648B RID: 25739
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiTetherConstraintBatch_0;
		}
	}
}
