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

namespace Obi
{
	// Token: 0x0200051D RID: 1309
	public class ObiBendingConstraints : ObiBatchedConstraints
	{
		// Token: 0x0600963A RID: 38458 RVA: 0x0026AAE0 File Offset: 0x00268CE0
		[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: 0x0600963B RID: 38459 RVA: 0x0026AB3C File Offset: 0x00268D3C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642405, XrefRangeEnd = 642425, 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: 0x0600963C RID: 38460 RVA: 0x0026ABA0 File Offset: 0x00268DA0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642425, XrefRangeEnd = 642430, 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: 0x0600963D RID: 38461 RVA: 0x0026ABF0 File Offset: 0x00268DF0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 642433, RefRangeEnd = 642434, XrefRangeStart = 642430, XrefRangeEnd = 642433, 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: 0x0600963E RID: 38462 RVA: 0x0026AC4C File Offset: 0x00268E4C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642434, XrefRangeEnd = 642438, 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: 0x0600963F RID: 38463 RVA: 0x0026ACA8 File Offset: 0x00268EA8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642438, XrefRangeEnd = 642477, 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: 0x06009640 RID: 38464 RVA: 0x0026ACEC File Offset: 0x00268EEC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 642477, XrefRangeEnd = 642485, 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: 0x06009641 RID: 38465 RVA: 0x0026AD38 File Offset: 0x00268F38
		// 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, 100674970);
			ObiBendingConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674971);
			ObiBendingConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674972);
			ObiBendingConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiBendConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674973);
			ObiBendingConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiBendConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674974);
			ObiBendingConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674975);
			ObiBendingConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints>.NativeClassPtr, 100674976);
		}

		// Token: 0x06009642 RID: 38466 RVA: 0x00269EF0 File Offset: 0x002680F0
		public ObiBendingConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170032CE RID: 13006
		// (get) Token: 0x06009643 RID: 38467 RVA: 0x0026AE30 File Offset: 0x00269030
		// (set) Token: 0x06009644 RID: 38468 RVA: 0x0026AE58 File Offset: 0x00269058
		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: 0x170032CF RID: 13007
		// (get) Token: 0x06009645 RID: 38469 RVA: 0x0026AE7C File Offset: 0x0026907C
		// (set) Token: 0x06009646 RID: 38470 RVA: 0x0026AEA4 File Offset: 0x002690A4
		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: 0x170032D0 RID: 13008
		// (get) Token: 0x06009647 RID: 38471 RVA: 0x0026AEC8 File Offset: 0x002690C8
		// (set) Token: 0x06009648 RID: 38472 RVA: 0x0026AEFC File Offset: 0x002690FC
		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: 0x04006447 RID: 25671
		private static readonly IntPtr NativeFieldInfoPtr_maxBending;

		// Token: 0x04006448 RID: 25672
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04006449 RID: 25673
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x0400644A RID: 25674
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x0400644B RID: 25675
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x0400644C RID: 25676
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x0400644D RID: 25677
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiBendConstraintBatch_0;

		// Token: 0x0400644E RID: 25678
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiBendConstraintBatch_0;

		// Token: 0x0400644F RID: 25679
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x04006450 RID: 25680
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x0200051E RID: 1310
		[ObfuscatedName("Obi.ObiBendingConstraints/<>c")]
		[Serializable]
		public sealed class __c : Object
		{
			// Token: 0x06009649 RID: 38473 RVA: 0x0026AF24 File Offset: 0x00269124
			[CallerCount(1664)]
			[CachedScanResults(RefRangeStart = 7711, RefRangeEnd = 9375, XrefRangeStart = 7711, XrefRangeEnd = 9375, 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: 0x0600964A RID: 38474 RVA: 0x0026AF70 File Offset: 0x00269170
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51857, RefRangeEnd = 51858, XrefRangeStart = 51857, XrefRangeEnd = 51858, 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: 0x0600964B RID: 38475 RVA: 0x0026AFE0 File Offset: 0x002691E0
			// 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, 100674978);
				ObiBendingConstraints.__c.NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiBendConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendingConstraints.__c>.NativeClassPtr, 100674979);
			}

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

			// Token: 0x170032D1 RID: 13009
			// (get) Token: 0x0600964D RID: 38477 RVA: 0x0026B05C File Offset: 0x0026925C
			// (set) Token: 0x0600964E RID: 38478 RVA: 0x0026B087 File Offset: 0x00269287
			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: 0x170032D2 RID: 13010
			// (get) Token: 0x0600964F RID: 38479 RVA: 0x0026B09C File Offset: 0x0026929C
			// (set) Token: 0x06009650 RID: 38480 RVA: 0x0026B0C7 File Offset: 0x002692C7
			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: 0x04006451 RID: 25681
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04006452 RID: 25682
			private static readonly IntPtr NativeFieldInfoPtr___9__4_0;

			// Token: 0x04006453 RID: 25683
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04006454 RID: 25684
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__4_0_Internal_ObiConstraintBatch_ObiBendConstraintBatch_0;
		}
	}
}
