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

namespace Obi
{
	// Token: 0x020004CB RID: 1227
	public class ObiSkinConstraints : ObiBatchedConstraints
	{
		// Token: 0x06008E2C RID: 36396 RVA: 0x00248F98 File Offset: 0x00247198
		[CallerCount(13)]
		[CachedScanResults(RefRangeStart = 30253, RefRangeEnd = 30266, XrefRangeStart = 30253, XrefRangeEnd = 30266, 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), ObiSkinConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008E2D RID: 36397 RVA: 0x00248FF4 File Offset: 0x002471F4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610337, XrefRangeEnd = 610357, 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), ObiSkinConstraints.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: 0x06008E2E RID: 36398 RVA: 0x00249058 File Offset: 0x00247258
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610357, XrefRangeEnd = 610362, 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), ObiSkinConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E2F RID: 36399 RVA: 0x002490A8 File Offset: 0x002472A8
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 610365, RefRangeEnd = 610366, XrefRangeStart = 610362, XrefRangeEnd = 610365, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void AddBatch(ObiSkinConstraintBatch 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(ObiSkinConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiSkinConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008E30 RID: 36400 RVA: 0x00249104 File Offset: 0x00247304
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610366, XrefRangeEnd = 610370, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void RemoveBatch(ObiSkinConstraintBatch 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(ObiSkinConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiSkinConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008E31 RID: 36401 RVA: 0x00249160 File Offset: 0x00247360
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610370, XrefRangeEnd = 610413, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDrawGizmosSelected()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiSkinConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E32 RID: 36402 RVA: 0x002491A4 File Offset: 0x002473A4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610413, XrefRangeEnd = 610421, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiSkinConstraints()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiSkinConstraints.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008E33 RID: 36403 RVA: 0x002491F0 File Offset: 0x002473F0
		// Note: this type is marked as 'beforefieldinit'.
		static ObiSkinConstraints()
		{
			Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiSkinConstraints");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr);
			ObiSkinConstraints.NativeFieldInfoPtr_stiffness = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, "stiffness");
			ObiSkinConstraints.NativeFieldInfoPtr_batches = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, "batches");
			ObiSkinConstraints.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, 100674287);
			ObiSkinConstraints.NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, 100674288);
			ObiSkinConstraints.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, 100674289);
			ObiSkinConstraints.NativeMethodInfoPtr_AddBatch_Public_Void_ObiSkinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, 100674290);
			ObiSkinConstraints.NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiSkinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, 100674291);
			ObiSkinConstraints.NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, 100674292);
			ObiSkinConstraints.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, 100674293);
		}

		// Token: 0x06008E34 RID: 36404 RVA: 0x002471B4 File Offset: 0x002453B4
		public ObiSkinConstraints(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003042 RID: 12354
		// (get) Token: 0x06008E35 RID: 36405 RVA: 0x002492D4 File Offset: 0x002474D4
		// (set) Token: 0x06008E36 RID: 36406 RVA: 0x002492FC File Offset: 0x002474FC
		public unsafe float stiffness
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiSkinConstraints.NativeFieldInfoPtr_stiffness);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiSkinConstraints.NativeFieldInfoPtr_stiffness)) = value;
			}
		}

		// Token: 0x17003043 RID: 12355
		// (get) Token: 0x06008E37 RID: 36407 RVA: 0x00249320 File Offset: 0x00247520
		// (set) Token: 0x06008E38 RID: 36408 RVA: 0x00249354 File Offset: 0x00247554
		public unsafe List<ObiSkinConstraintBatch> batches
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiSkinConstraints.NativeFieldInfoPtr_batches);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<ObiSkinConstraintBatch>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiSkinConstraints.NativeFieldInfoPtr_batches), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04005EC8 RID: 24264
		private static readonly IntPtr NativeFieldInfoPtr_stiffness;

		// Token: 0x04005EC9 RID: 24265
		private static readonly IntPtr NativeFieldInfoPtr_batches;

		// Token: 0x04005ECA RID: 24266
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04005ECB RID: 24267
		private static readonly IntPtr NativeMethodInfoPtr_GetBatches_Public_Virtual_List_1_ObiConstraintBatch_0;

		// Token: 0x04005ECC RID: 24268
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04005ECD RID: 24269
		private static readonly IntPtr NativeMethodInfoPtr_AddBatch_Public_Void_ObiSkinConstraintBatch_0;

		// Token: 0x04005ECE RID: 24270
		private static readonly IntPtr NativeMethodInfoPtr_RemoveBatch_Public_Void_ObiSkinConstraintBatch_0;

		// Token: 0x04005ECF RID: 24271
		private static readonly IntPtr NativeMethodInfoPtr_OnDrawGizmosSelected_Public_Void_0;

		// Token: 0x04005ED0 RID: 24272
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

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

			// Token: 0x06008E3A RID: 36410 RVA: 0x002493C8 File Offset: 0x002475C8
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 51855, RefRangeEnd = 51856, XrefRangeStart = 51855, XrefRangeEnd = 51856, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe ObiConstraintBatch _GetBatches_b__3_0(ObiSkinConstraintBatch 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(ObiSkinConstraints.__c.NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiSkinConstraintBatch_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new ObiConstraintBatch(intPtr3) : null;
				}
			}

			// Token: 0x06008E3B RID: 36411 RVA: 0x00249438 File Offset: 0x00247638
			// Note: this type is marked as 'beforefieldinit'.
			static __c()
			{
				Il2CppClassPointerStore<ObiSkinConstraints.__c>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<ObiSkinConstraints>.NativeClassPtr, "<>c");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiSkinConstraints.__c>.NativeClassPtr);
				ObiSkinConstraints.__c.NativeFieldInfoPtr___9 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiSkinConstraints.__c>.NativeClassPtr, "<>9");
				ObiSkinConstraints.__c.NativeFieldInfoPtr___9__3_0 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiSkinConstraints.__c>.NativeClassPtr, "<>9__3_0");
				ObiSkinConstraints.__c.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints.__c>.NativeClassPtr, 100674295);
				ObiSkinConstraints.__c.NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiSkinConstraintBatch_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiSkinConstraints.__c>.NativeClassPtr, 100674296);
			}

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

			// Token: 0x17003044 RID: 12356
			// (get) Token: 0x06008E3D RID: 36413 RVA: 0x002494B4 File Offset: 0x002476B4
			// (set) Token: 0x06008E3E RID: 36414 RVA: 0x002494DF File Offset: 0x002476DF
			public unsafe static ObiSkinConstraints.__c __9
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiSkinConstraints.__c.NativeFieldInfoPtr___9, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new ObiSkinConstraints.__c(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiSkinConstraints.__c.NativeFieldInfoPtr___9, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17003045 RID: 12357
			// (get) Token: 0x06008E3F RID: 36415 RVA: 0x002494F4 File Offset: 0x002476F4
			// (set) Token: 0x06008E40 RID: 36416 RVA: 0x0024951F File Offset: 0x0024771F
			public unsafe static Converter<ObiSkinConstraintBatch, ObiConstraintBatch> __9__3_0
			{
				get
				{
					IntPtr intPtr;
					IL2CPP.il2cpp_field_static_get_value(ObiSkinConstraints.__c.NativeFieldInfoPtr___9__3_0, (void*)(&intPtr));
					IntPtr intPtr2 = intPtr;
					return (intPtr2 != 0) ? new Converter<ObiSkinConstraintBatch, ObiConstraintBatch>(intPtr2) : null;
				}
				set
				{
					IL2CPP.il2cpp_field_static_set_value(ObiSkinConstraints.__c.NativeFieldInfoPtr___9__3_0, IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x04005ED1 RID: 24273
			private static readonly IntPtr NativeFieldInfoPtr___9;

			// Token: 0x04005ED2 RID: 24274
			private static readonly IntPtr NativeFieldInfoPtr___9__3_0;

			// Token: 0x04005ED3 RID: 24275
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

			// Token: 0x04005ED4 RID: 24276
			private static readonly IntPtr NativeMethodInfoPtr__GetBatches_b__3_0_Internal_ObiConstraintBatch_ObiSkinConstraintBatch_0;
		}
	}
}
