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

namespace Obi
{
	// Token: 0x020004C5 RID: 1221
	public class ObiBendingConstraints : ObiBatchedConstraints
	{
		// Token: 0x06008DE7 RID: 36327 RVA: 0x00247DA4 File Offset: 0x00245FA4
		[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), ObiBendingConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008DE8 RID: 36328 RVA: 0x00247E00 File Offset: 0x00246000
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610095, XrefRangeEnd = 610115, 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), ObiBendingConstraints.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: 0x06008DE9 RID: 36329 RVA: 0x00247E64 File Offset: 0x00246064
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610115, XrefRangeEnd = 610120, 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), ObiBendingConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008DEA RID: 36330 RVA: 0x00247EB4 File Offset: 0x002460B4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 610123, RefRangeEnd = 610124, XrefRangeStart = 610120, XrefRangeEnd = 610123, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void AddBatch(ObiBendConstraintBatch 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(ObiBendingConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiBendConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008DEB RID: 36331 RVA: 0x00247F10 File Offset: 0x00246110
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610124, XrefRangeEnd = 610128, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void RemoveBatch(ObiBendConstraintBatch 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(ObiBendingConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiBendConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008DEC RID: 36332 RVA: 0x00247F6C File Offset: 0x0024616C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610128, XrefRangeEnd = 610167, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDrawGizmosSelected()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendingConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008DED RID: 36333 RVA: 0x00247FB0 File Offset: 0x002461B0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610167, XrefRangeEnd = 610175, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiBendingConstraints()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendingConstraints.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008DEE RID: 36334 RVA: 0x00247FFC File Offset: 0x002461FC
		// Note: this type is marked as 'beforefieldinit'.
		static ObiBendingConstraints()
		{
			Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiBendingConstraints");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr);
			ObiBendingConstraints.NativeFieldInfoPtr_maxBending = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, "maxBending");
			ObiBendingConstraints.NativeFieldInfoPtr_stiffness = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, "stiffness");
			ObiBendingConstraints.NativeFieldInfoPtr_batches = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, "batches");
			ObiBendingConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674257);
			ObiBendingConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674258);
			ObiBendingConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674259);
			ObiBendingConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiBendConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674260);
			ObiBendingConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiBendConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674261);
			ObiBendingConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674262);
			ObiBendingConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674263);
		}

		// Token: 0x06008DEF RID: 36335 RVA: 0x002471B4 File Offset: 0x002453B4
		public ObiBendingConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003033 RID: 12339
		// (get) Token: 0x06008DF0 RID: 36336 RVA: 0x002480F4 File Offset: 0x002462F4
		// (set) Token: 0x06008DF1 RID: 36337 RVA: 0x0024811C File Offset: 0x0024631C
		public unsafe float maxBending
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendingConstraints.NativeFieldInfoPtr_maxBending);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendingConstraints.NativeFieldInfoPtr_maxBending)) = value;
			}
		}

		// Token: 0x17003034 RID: 12340
		// (get) Token: 0x06008DF2 RID: 36338 RVA: 0x00248140 File Offset: 0x00246340
		// (set) Token: 0x06008DF3 RID: 36339 RVA: 0x00248168 File Offset: 0x00246368
		public unsafe float stiffness
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendingConstraints.NativeFieldInfoPtr_stiffness);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendingConstraints.NativeFieldInfoPtr_stiffness)) = value;
			}
		}

		// Token: 0x17003035 RID: 12341
		// (get) Token: 0x06008DF4 RID: 36340 RVA: 0x0024818C File Offset: 0x0024638C
		// (set) Token: 0x06008DF5 RID: 36341 RVA: 0x002481C0 File Offset: 0x002463C0
		public unsafe List<ObiBendConstraintBatch> batches
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendingConstraints.NativeFieldInfoPtr_batches);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<ObiBendConstraintBatch>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendingConstraints.NativeFieldInfoPtr_batches), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04005E9E RID: 24222
		private static readonly IntPtr NativeFieldInfoPtr_maxBending;

		// Token: 0x04005E9F RID: 24223
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04005EA0 RID: 24224
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04005EA1 RID: 24225
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04005EA2 RID: 24226
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x04005EA3 RID: 24227
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04005EA4 RID: 24228
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiBendConstraintBatch_0;

		// Token: 0x04005EA5 RID: 24229
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiBendConstraintBatch_0;

		// Token: 0x04005EA6 RID: 24230
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x04005EA7 RID: 24231
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

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

			// Token: 0x06008DF7 RID: 36343 RVA: 0x00248234 File Offset: 0x00246434
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51855, RefRangeEnd = 51856, XrefRangeStart = 51855, XrefRangeEnd = 51856, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe ObiConstraintBatch _GetBatches_b__4_0(ObiBendConstraintBatch 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(ObiBendingConstraints.__c.NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiBendConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new ObiConstraintBatch(intPtr3) : null;
				}
			}

			// Token: 0x06008DF8 RID: 36344 RVA: 0x002482A4 File Offset: 0x002464A4
			// Note: this type is marked as 'beforefieldinit'.
			static __c()
			{
				Il2CppClassPointerStore<ObiBendingConstraints.__c>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, "<>c");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiBendingConstraints.__c>.NativeClassPtr);
				ObiBendingConstraints.__c.NativeFieldInfoPtr___9 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendingConstraints.__c>.NativeClassPtr, "<>9");
				ObiBendingConstraints.__c.NativeFieldInfoPtr___9__4_0 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendingConstraints.__c>.NativeClassPtr, "<>9__4_0");
				ObiBendingConstraints.__c.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints.__c>.NativeClassPtr, 100674265);
				ObiBendingConstraints.__c.NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiBendConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints.__c>.NativeClassPtr, 100674266);
			}

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

			// Token: 0x17003036 RID: 12342
			// (get) Token: 0x06008DFA RID: 36346 RVA: 0x00248320 File Offset: 0x00246520
			// (set) Token: 0x06008DFB RID: 36347 RVA: 0x0024834B File Offset: 0x0024654B
			public unsafe static ObiBendingConstraints.__c __9
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiBendingConstraints.__c.NativeFieldInfoPtr___9, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new ObiBendingConstraints.__c(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiBendingConstraints.__c.NativeFieldInfoPtr___9, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17003037 RID: 12343
			// (get) Token: 0x06008DFC RID: 36348 RVA: 0x00248360 File Offset: 0x00246560
			// (set) Token: 0x06008DFD RID: 36349 RVA: 0x0024838B File Offset: 0x0024658B
			public unsafe static Converter<ObiBendConstraintBatch, ObiConstraintBatch> __9__4_0
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiBendingConstraints.__c.NativeFieldInfoPtr___9__4_0, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new Converter<ObiBendConstraintBatch, ObiConstraintBatch>(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiBendingConstraints.__c.NativeFieldInfoPtr___9__4_0, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x04005EA8 RID: 24232
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04005EA9 RID: 24233
			private static readonly IntPtr NativeFieldInfoPtr___9__4_0;

			// Token: 0x04005EAA RID: 24234
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04005EAB RID: 24235
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiBendConstraintBatch_0;
		}
	}
}
