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

namespace Obi
{
	// Token: 0x020004CD RID: 1229
	public class ObiTetherConstraints : ObiBatchedConstraints
	{
		// Token: 0x06008E41 RID: 36417 RVA: 0x00249534 File Offset: 0x00247734
		[CallerCount(28)]
		[CachedScanResults(RefRangeStart = 16579, RefRangeEnd = 16607, XrefRangeStart = 16579, XrefRangeEnd = 16607, 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: 0x06008E42 RID: 36418 RVA: 0x00249590 File Offset: 0x00247790
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610421, XrefRangeEnd = 610441, 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: 0x06008E43 RID: 36419 RVA: 0x002495F4 File Offset: 0x002477F4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610441, XrefRangeEnd = 610446, 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: 0x06008E44 RID: 36420 RVA: 0x00249644 File Offset: 0x00247844
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 610449, RefRangeEnd = 610450, XrefRangeStart = 610446, XrefRangeEnd = 610449, 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: 0x06008E45 RID: 36421 RVA: 0x002496A0 File Offset: 0x002478A0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610450, XrefRangeEnd = 610454, 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: 0x06008E46 RID: 36422 RVA: 0x002496FC File Offset: 0x002478FC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610454, XrefRangeEnd = 610491, 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: 0x06008E47 RID: 36423 RVA: 0x00249740 File Offset: 0x00247940
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610491, XrefRangeEnd = 610499, 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: 0x06008E48 RID: 36424 RVA: 0x0024978C File Offset: 0x0024798C
		// 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, 100674297);
			ObiTetherConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100674298);
			ObiTetherConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100674299);
			ObiTetherConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiTetherConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100674300);
			ObiTetherConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiTetherConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100674301);
			ObiTetherConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100674302);
			ObiTetherConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints>.NativeClassPtr, 100674303);
		}

		// Token: 0x06008E49 RID: 36425 RVA: 0x002471B4 File Offset: 0x002453B4
		public ObiTetherConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003046 RID: 12358
		// (get) Token: 0x06008E4A RID: 36426 RVA: 0x00249884 File Offset: 0x00247A84
		// (set) Token: 0x06008E4B RID: 36427 RVA: 0x002498AC File Offset: 0x00247AAC
		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: 0x17003047 RID: 12359
		// (get) Token: 0x06008E4C RID: 36428 RVA: 0x002498D0 File Offset: 0x00247AD0
		// (set) Token: 0x06008E4D RID: 36429 RVA: 0x002498F8 File Offset: 0x00247AF8
		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: 0x17003048 RID: 12360
		// (get) Token: 0x06008E4E RID: 36430 RVA: 0x0024991C File Offset: 0x00247B1C
		// (set) Token: 0x06008E4F RID: 36431 RVA: 0x00249950 File Offset: 0x00247B50
		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: 0x04005ED5 RID: 24277
		private static readonly IntPtr NativeFieldInfoPtr_tetherScale;

		// Token: 0x04005ED6 RID: 24278
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04005ED7 RID: 24279
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04005ED8 RID: 24280
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04005ED9 RID: 24281
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x04005EDA RID: 24282
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04005EDB RID: 24283
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiTetherConstraintBatch_0;

		// Token: 0x04005EDC RID: 24284
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiTetherConstraintBatch_0;

		// Token: 0x04005EDD RID: 24285
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x04005EDE RID: 24286
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020004CE RID: 1230
		[ObfuscatedName("Obi.ObiTetherConstraints/<>c")]
		[Serializable]
		public sealed class __c : Object
		{
			// Token: 0x06008E50 RID: 36432 RVA: 0x00249978 File Offset: 0x00247B78
			[CallerCount(1642)]
			[CachedScanResults(RefRangeStart = 7417, RefRangeEnd = 9059, XrefRangeStart = 7417, XrefRangeEnd = 9059, 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: 0x06008E51 RID: 36433 RVA: 0x002499C4 File Offset: 0x00247BC4
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51855, RefRangeEnd = 51856, XrefRangeStart = 51855, XrefRangeEnd = 51856, 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: 0x06008E52 RID: 36434 RVA: 0x00249A34 File Offset: 0x00247C34
			// 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, 100674305);
				ObiTetherConstraints.__c.NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiTetherConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiTetherConstraints.__c>.NativeClassPtr, 100674306);
			}

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

			// Token: 0x17003049 RID: 12361
			// (get) Token: 0x06008E54 RID: 36436 RVA: 0x00249AB0 File Offset: 0x00247CB0
			// (set) Token: 0x06008E55 RID: 36437 RVA: 0x00249ADB File Offset: 0x00247CDB
			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: 0x1700304A RID: 12362
			// (get) Token: 0x06008E56 RID: 36438 RVA: 0x00249AF0 File Offset: 0x00247CF0
			// (set) Token: 0x06008E57 RID: 36439 RVA: 0x00249B1B File Offset: 0x00247D1B
			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: 0x04005EDF RID: 24287
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04005EE0 RID: 24288
			private static readonly IntPtr NativeFieldInfoPtr___9__4_0;

			// Token: 0x04005EE1 RID: 24289
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04005EE2 RID: 24290
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiTetherConstraintBatch_0;
		}
	}
}
