using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem.Collections.Generic;
using UnityEngine;

namespace Obi
{
	// Token: 0x020004B9 RID: 1209
	[Serializable]
	public class ObiBendConstraintBatch : ObiConstraintBatch
	{
		// Token: 0x06008CF3 RID: 36083 RVA: 0x00242B90 File Offset: 0x00240D90
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608418, XrefRangeEnd = 608444, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiBendConstraintBatch(bool cooked, bool sharesParticles)
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr))
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref cooked;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref sharesParticles;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendConstraintBatch.NativeMethodInfoPtr__ctor_Public_Void_Boolean_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008CF4 RID: 36084 RVA: 0x00242C00 File Offset: 0x00240E00
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 608470, RefRangeEnd = 608471, XrefRangeStart = 608444, XrefRangeEnd = 608470, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiBendConstraintBatch(bool cooked, bool sharesParticles, float minYoungModulus, float maxYoungModulus)
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr))
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref cooked;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref sharesParticles;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref minYoungModulus;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref maxYoungModulus;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendConstraintBatch.NativeMethodInfoPtr__ctor_Public_Void_Boolean_Boolean_Single_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008CF5 RID: 36085 RVA: 0x00242C98 File Offset: 0x00240E98
		[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), ObiBendConstraintBatch.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008CF6 RID: 36086 RVA: 0x00242CF4 File Offset: 0x00240EF4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608471, XrefRangeEnd = 608482, 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), ObiBendConstraintBatch.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008CF7 RID: 36087 RVA: 0x00242D44 File Offset: 0x00240F44
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 608497, RefRangeEnd = 608498, XrefRangeStart = 608482, XrefRangeEnd = 608497, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void AddConstraint(int index1, int index2, int index3, float restBend, float bending, float stiffness)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index1;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref index2;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref index3;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref restBend;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bending;
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref stiffness;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendConstraintBatch.NativeMethodInfoPtr_AddConstraint_Public_Void_Int32_Int32_Int32_Single_Single_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008CF8 RID: 36088 RVA: 0x00242DF8 File Offset: 0x00240FF8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608498, XrefRangeEnd = 608523, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void InsertConstraint(int constraintIndex, int index1, int index2, int index3, float restBend, float bending, float stiffness)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)7) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref constraintIndex;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref index1;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref index2;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref index3;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref restBend;
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bending;
			ptr[checked(unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref stiffness;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendConstraintBatch.NativeMethodInfoPtr_InsertConstraint_Public_Void_Int32_Int32_Int32_Int32_Single_Single_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008CF9 RID: 36089 RVA: 0x00242EC0 File Offset: 0x002410C0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608523, XrefRangeEnd = 608527, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SetParticleIndex(int constraintIndex, int particleIndex, ObiBendConstraintBatch.BendIndexType type, bool wraparound)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref constraintIndex;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref particleIndex;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref type;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref wraparound;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendConstraintBatch.NativeMethodInfoPtr_SetParticleIndex_Public_Void_Int32_Int32_BendIndexType_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008CFA RID: 36090 RVA: 0x00242F50 File Offset: 0x00241150
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608527, XrefRangeEnd = 608548, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void RemoveConstraint(int index)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref index;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiBendConstraintBatch.NativeMethodInfoPtr_RemoveConstraint_Public_Void_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008CFB RID: 36091 RVA: 0x00242FA4 File Offset: 0x002411A4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608548, XrefRangeEnd = 608563, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override List<int> GetConstraintsInvolvingParticle(int particleIndex)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref particleIndex;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiBendConstraintBatch.NativeMethodInfoPtr_GetConstraintsInvolvingParticle_Public_Virtual_List_1_Int32_Int32_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new List<int>(intPtr3) : null;
			}
		}

		// Token: 0x06008CFC RID: 36092 RVA: 0x00243018 File Offset: 0x00241218
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608563, XrefRangeEnd = 608623, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void Cook()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiBendConstraintBatch.NativeMethodInfoPtr_Cook_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008CFD RID: 36093 RVA: 0x00243068 File Offset: 0x00241268
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608623, XrefRangeEnd = 608634, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void OnAddToSolver(ObiBatchedConstraints constraints)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(constraints);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiBendConstraintBatch.NativeMethodInfoPtr_OnAddToSolver_Protected_Virtual_Void_ObiBatchedConstraints_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008CFE RID: 36094 RVA: 0x002430CC File Offset: 0x002412CC
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void OnRemoveFromSolver(ObiBatchedConstraints constraints)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(constraints);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiBendConstraintBatch.NativeMethodInfoPtr_OnRemoveFromSolver_Protected_Virtual_Void_ObiBatchedConstraints_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008CFF RID: 36095 RVA: 0x00243130 File Offset: 0x00241330
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 608634, XrefRangeEnd = 608663, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void PushDataToSolver(ObiBatchedConstraints constraints)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(constraints);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiBendConstraintBatch.NativeMethodInfoPtr_PushDataToSolver_Public_Virtual_Void_ObiBatchedConstraints_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008D00 RID: 36096 RVA: 0x00243194 File Offset: 0x00241394
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void PullDataFromSolver(ObiBatchedConstraints constraints)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(constraints);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiBendConstraintBatch.NativeMethodInfoPtr_PullDataFromSolver_Public_Virtual_Void_ObiBatchedConstraints_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008D01 RID: 36097 RVA: 0x002431F8 File Offset: 0x002413F8
		// Note: this type is marked as 'beforefieldinit'.
		static ObiBendConstraintBatch()
		{
			Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiBendConstraintBatch");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr);
			ObiBendConstraintBatch.NativeFieldInfoPtr_bendingIndices = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, "bendingIndices");
			ObiBendConstraintBatch.NativeFieldInfoPtr_restBends = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, "restBends");
			ObiBendConstraintBatch.NativeFieldInfoPtr_bendingStiffnesses = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, "bendingStiffnesses");
			ObiBendConstraintBatch.NativeFieldInfoPtr_solverIndices = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, "solverIndices");
			ObiBendConstraintBatch.NativeMethodInfoPtr__ctor_Public_Void_Boolean_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674128);
			ObiBendConstraintBatch.NativeMethodInfoPtr__ctor_Public_Void_Boolean_Boolean_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674129);
			ObiBendConstraintBatch.NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674130);
			ObiBendConstraintBatch.NativeMethodInfoPtr_Clear_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674131);
			ObiBendConstraintBatch.NativeMethodInfoPtr_AddConstraint_Public_Void_Int32_Int32_Int32_Single_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674132);
			ObiBendConstraintBatch.NativeMethodInfoPtr_InsertConstraint_Public_Void_Int32_Int32_Int32_Int32_Single_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674133);
			ObiBendConstraintBatch.NativeMethodInfoPtr_SetParticleIndex_Public_Void_Int32_Int32_BendIndexType_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674134);
			ObiBendConstraintBatch.NativeMethodInfoPtr_RemoveConstraint_Public_Void_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674135);
			ObiBendConstraintBatch.NativeMethodInfoPtr_GetConstraintsInvolvingParticle_Public_Virtual_List_1_Int32_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674136);
			ObiBendConstraintBatch.NativeMethodInfoPtr_Cook_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674137);
			ObiBendConstraintBatch.NativeMethodInfoPtr_OnAddToSolver_Protected_Virtual_Void_ObiBatchedConstraints_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674138);
			ObiBendConstraintBatch.NativeMethodInfoPtr_OnRemoveFromSolver_Protected_Virtual_Void_ObiBatchedConstraints_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674139);
			ObiBendConstraintBatch.NativeMethodInfoPtr_PushDataToSolver_Public_Virtual_Void_ObiBatchedConstraints_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674140);
			ObiBendConstraintBatch.NativeMethodInfoPtr_PullDataFromSolver_Public_Virtual_Void_ObiBatchedConstraints_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiBendConstraintBatch>.NativeClassPtr, 100674141);
		}

		// Token: 0x06008D02 RID: 36098 RVA: 0x00242A70 File Offset: 0x00240C70
		public ObiBendConstraintBatch(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002FFC RID: 12284
		// (get) Token: 0x06008D03 RID: 36099 RVA: 0x00243390 File Offset: 0x00241590
		// (set) Token: 0x06008D04 RID: 36100 RVA: 0x002433C4 File Offset: 0x002415C4
		public unsafe List<int> bendingIndices
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_bendingIndices);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<int>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_bendingIndices), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002FFD RID: 12285
		// (get) Token: 0x06008D05 RID: 36101 RVA: 0x002433EC File Offset: 0x002415EC
		// (set) Token: 0x06008D06 RID: 36102 RVA: 0x00243420 File Offset: 0x00241620
		public unsafe List<float> restBends
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_restBends);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<float>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_restBends), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002FFE RID: 12286
		// (get) Token: 0x06008D07 RID: 36103 RVA: 0x00243448 File Offset: 0x00241648
		// (set) Token: 0x06008D08 RID: 36104 RVA: 0x0024347C File Offset: 0x0024167C
		public unsafe List<Vector2> bendingStiffnesses
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_bendingStiffnesses);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<Vector2>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_bendingStiffnesses), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17002FFF RID: 12287
		// (get) Token: 0x06008D09 RID: 36105 RVA: 0x002434A4 File Offset: 0x002416A4
		// (set) Token: 0x06008D0A RID: 36106 RVA: 0x002434D8 File Offset: 0x002416D8
		public unsafe Il2CppStructArray<int> solverIndices
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_solverIndices);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStructArray<int>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiBendConstraintBatch.NativeFieldInfoPtr_solverIndices), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04005DE7 RID: 24039
		private static readonly IntPtr NativeFieldInfoPtr_bendingIndices;

		// Token: 0x04005DE8 RID: 24040
		private static readonly IntPtr NativeFieldInfoPtr_restBends;

		// Token: 0x04005DE9 RID: 24041
		private static readonly IntPtr NativeFieldInfoPtr_bendingStiffnesses;

		// Token: 0x04005DEA RID: 24042
		private static readonly IntPtr NativeFieldInfoPtr_solverIndices;

		// Token: 0x04005DEB RID: 24043
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Boolean_Boolean_0;

		// Token: 0x04005DEC RID: 24044
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Boolean_Boolean_Single_Single_0;

		// Token: 0x04005DED RID: 24045
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintType_Public_Virtual_ConstraintType_0;

		// Token: 0x04005DEE RID: 24046
		private static readonly IntPtr NativeMethodInfoPtr_Clear_Public_Virtual_Void_0;

		// Token: 0x04005DEF RID: 24047
		private static readonly IntPtr NativeMethodInfoPtr_AddConstraint_Public_Void_Int32_Int32_Int32_Single_Single_Single_0;

		// Token: 0x04005DF0 RID: 24048
		private static readonly IntPtr NativeMethodInfoPtr_InsertConstraint_Public_Void_Int32_Int32_Int32_Int32_Single_Single_Single_0;

		// Token: 0x04005DF1 RID: 24049
		private static readonly IntPtr NativeMethodInfoPtr_SetParticleIndex_Public_Void_Int32_Int32_BendIndexType_Boolean_0;

		// Token: 0x04005DF2 RID: 24050
		private static readonly IntPtr NativeMethodInfoPtr_RemoveConstraint_Public_Void_Int32_0;

		// Token: 0x04005DF3 RID: 24051
		private static readonly IntPtr NativeMethodInfoPtr_GetConstraintsInvolvingParticle_Public_Virtual_List_1_Int32_Int32_0;

		// Token: 0x04005DF4 RID: 24052
		private static readonly IntPtr NativeMethodInfoPtr_Cook_Public_Virtual_Void_0;

		// Token: 0x04005DF5 RID: 24053
		private static readonly IntPtr NativeMethodInfoPtr_OnAddToSolver_Protected_Virtual_Void_ObiBatchedConstraints_0;

		// Token: 0x04005DF6 RID: 24054
		private static readonly IntPtr NativeMethodInfoPtr_OnRemoveFromSolver_Protected_Virtual_Void_ObiBatchedConstraints_0;

		// Token: 0x04005DF7 RID: 24055
		private static readonly IntPtr NativeMethodInfoPtr_PushDataToSolver_Public_Virtual_Void_ObiBatchedConstraints_0;

		// Token: 0x04005DF8 RID: 24056
		private static readonly IntPtr NativeMethodInfoPtr_PullDataFromSolver_Public_Virtual_Void_ObiBatchedConstraints_0;

		// Token: 0x020004BA RID: 1210
		public enum BendIndexType
		{
			// Token: 0x04005DFA RID: 24058
			First,
			// Token: 0x04005DFB RID: 24059
			Second,
			// Token: 0x04005DFC RID: 24060
			Pivot
		}
	}
}
