using System; using System.Collections.Generic; using Cpp2IlInjected; using UnityEngine; namespace Obi { // Token: 0x020004B5 RID: 1205 [Token(Token = "0x20004B5")] [Serializable] public abstract class ObiConstraintBatch { // Token: 0x170002DA RID: 730 // (get) Token: 0x06002A90 RID: 10896 RVA: 0x0005C704 File Offset: 0x0005A904 [Token(Token = "0x170002DA")] public IntPtr OniBatch { [Token(Token = "0x6002A90")] [Address(RVA = "0x345100", Offset = "0x343900", VA = "0x180345100")] get { return this.batch; } } // Token: 0x170002DB RID: 731 // (get) Token: 0x06002A91 RID: 10897 RVA: 0x0005C718 File Offset: 0x0005A918 [Token(Token = "0x170002DB")] public int ConstraintCount { [Token(Token = "0x6002A91")] [Address(RVA = "0x3CA350", Offset = "0x3C8B50", VA = "0x1803CA350")] get { return this.constraintCount; } } // Token: 0x170002DC RID: 732 // (get) Token: 0x06002A92 RID: 10898 RVA: 0x0005C72C File Offset: 0x0005A92C [Token(Token = "0x170002DC")] public bool IsCooked { [Token(Token = "0x6002A92")] [Address(RVA = "0x41ECE0", Offset = "0x41D4E0", VA = "0x18041ECE0")] get { return this.cooked; } } // Token: 0x170002DD RID: 733 // (get) Token: 0x06002A93 RID: 10899 RVA: 0x0005C740 File Offset: 0x0005A940 [Token(Token = "0x170002DD")] public bool SharesParticles { [Token(Token = "0x6002A93")] [Address(RVA = "0x606750", Offset = "0x604F50", VA = "0x180606750")] get { return this.sharesParticles; } } // Token: 0x170002DE RID: 734 // (get) Token: 0x06002A94 RID: 10900 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x170002DE")] public IEnumerable ActiveConstraints { [Token(Token = "0x6002A94")] [Address(RVA = "0x10D42C0", Offset = "0x10D2AC0", VA = "0x1810D42C0")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x06002A95 RID: 10901 [Token(Token = "0x6002A95")] [Address(Slot = "4")] public abstract Oni.ConstraintType GetConstraintType(); // Token: 0x06002A96 RID: 10902 [Token(Token = "0x6002A96")] [Address(Slot = "5")] public abstract void Clear(); // Token: 0x06002A97 RID: 10903 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6002A97")] [Address(RVA = "0x29E8B0", Offset = "0x29D0B0", VA = "0x18029E8B0", Slot = "6")] public virtual void Cook() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06002A98 RID: 10904 [Token(Token = "0x6002A98")] [Address(Slot = "7")] protected abstract void OnAddToSolver(ObiBatchedConstraints constraints); // Token: 0x06002A99 RID: 10905 [Token(Token = "0x6002A99")] [Address(Slot = "8")] protected abstract void OnRemoveFromSolver(ObiBatchedConstraints constraints); // Token: 0x06002A9A RID: 10906 [Token(Token = "0x6002A9A")] [Address(Slot = "9")] public abstract void PushDataToSolver(ObiBatchedConstraints constraints); // Token: 0x06002A9B RID: 10907 [Token(Token = "0x6002A9B")] [Address(Slot = "10")] public abstract void PullDataFromSolver(ObiBatchedConstraints constraints); // Token: 0x06002A9C RID: 10908 [Token(Token = "0x6002A9C")] [Address(Slot = "11")] public abstract List GetConstraintsInvolvingParticle(int particleIndex); // Token: 0x06002A9D RID: 10909 RVA: 0x0005C754 File Offset: 0x0005A954 [Token(Token = "0x6002A9D")] [Address(RVA = "0x10D4070", Offset = "0x10D2870", VA = "0x1810D4070")] protected float StiffnessToCompliance(float stiffness) { float num = Mathf.Max(this.minYoungModulus, 1E-05f); float num2 = this.minYoungModulus; float num3 = Mathf.Max(this.maxYoungModulus, num2); return Mathf.Lerp(1f, 1f, stiffness); } // Token: 0x06002A9E RID: 10910 RVA: 0x0005C798 File Offset: 0x0005A998 [Token(Token = "0x6002A9E")] [Address(RVA = "0x10D3DD0", Offset = "0x10D25D0", VA = "0x1810D3DD0")] public void ActivateConstraint(int index) { if (!this.activeConstraints.Contains(index)) { this.activeConstraints.Add(index); } } // Token: 0x06002A9F RID: 10911 RVA: 0x0005C7C8 File Offset: 0x0005A9C8 [Token(Token = "0x6002A9F")] [Address(RVA = "0x10D3EE0", Offset = "0x10D26E0", VA = "0x1810D3EE0")] public void DeactivateConstraint(int index) { bool flag = this.activeConstraints.Remove(index); } // Token: 0x06002AA0 RID: 10912 RVA: 0x0005C7E8 File Offset: 0x0005A9E8 [Token(Token = "0x6002AA0")] [Address(RVA = "0x10D41E0", Offset = "0x10D29E0", VA = "0x1810D41E0")] public ObiConstraintBatch(bool cooked, bool sharesParticles) { List list = new List(); this.activeConstraints = list; List list2 = new List(); this.phaseSizes = list2; this.Cook(); this.cooked = cooked; this.sharesParticles = sharesParticles; } // Token: 0x06002AA1 RID: 10913 RVA: 0x0005C83C File Offset: 0x0005AA3C [Token(Token = "0x6002AA1")] [Address(RVA = "0x10D40E0", Offset = "0x10D28E0", VA = "0x1810D40E0")] public ObiConstraintBatch(bool cooked, bool sharesParticles, float minYoungModulus, float maxYoungModulus) { List list = new List(); this.activeConstraints = list; List list2 = new List(); this.phaseSizes = list2; this.Cook(); this.minYoungModulus = minYoungModulus; this.cooked = cooked; this.sharesParticles = sharesParticles; this.maxYoungModulus = (float)0; } // Token: 0x06002AA2 RID: 10914 RVA: 0x0005C89C File Offset: 0x0005AA9C [Token(Token = "0x6002AA2")] [Address(RVA = "0x10D3E50", Offset = "0x10D2650", VA = "0x1810D3E50")] public void AddToSolver(ObiBatchedConstraints constraints) { Oni.ConstraintType constraintType = this.GetConstraintType(); bool flag = this.cooked; IntPtr intPtr = Oni.CreateBatch((int)constraintType, flag); this.batch = intPtr; ObiSolver solver = constraints.actor.solver; bool flag2 = this.sharesParticles; IntPtr intPtr2 = Oni.AddBatch(solver.oniSolver, intPtr, flag2); Oni.ConstraintType constraintType2 = this.GetConstraintType(); } // Token: 0x06002AA3 RID: 10915 RVA: 0x0005C8F8 File Offset: 0x0005AAF8 [Token(Token = "0x6002AA3")] [Address(RVA = "0x10D3F60", Offset = "0x10D2760", VA = "0x1810D3F60")] public void RemoveFromSolver(ObiBatchedConstraints constraints) { this.OnRemoveFromSolver(constraints); ObiSolver solver = constraints.actor.solver; IntPtr intPtr = this.batch; Oni.RemoveBatch(solver.oniSolver, intPtr); this.batch = (IntPtr)((ulong)0L); } // Token: 0x06002AA4 RID: 10916 RVA: 0x0005C93C File Offset: 0x0005AB3C [Token(Token = "0x6002AA4")] [Address(RVA = "0x10D3FF0", Offset = "0x10D27F0", VA = "0x1810D3FF0")] public void SetActiveConstraints() { List list = this.activeConstraints; IntPtr intPtr = this.batch; int[] array = list.ToArray(); int size = this.activeConstraints._size; int num = Oni.SetActiveConstraints(intPtr, array, size); } // Token: 0x06002AA5 RID: 10917 RVA: 0x0005C97C File Offset: 0x0005AB7C [Token(Token = "0x6002AA5")] [Address(RVA = "0x10D3F50", Offset = "0x10D2750", VA = "0x1810D3F50")] public void Enable() { bool flag = Oni.EnableBatch(this.batch, true); } // Token: 0x06002AA6 RID: 10918 RVA: 0x0005C998 File Offset: 0x0005AB98 [Token(Token = "0x6002AA6")] [Address(RVA = "0x10D3F40", Offset = "0x10D2740", VA = "0x1810D3F40")] public void Disable() { IntPtr intPtr = this.batch; int num = 0; bool flag = Oni.EnableBatch(intPtr, num != 0); } // Token: 0x04003388 RID: 13192 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003388")] protected IntPtr batch; // Token: 0x04003389 RID: 13193 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003389")] public float maxYoungModulus = 0.02f; // Token: 0x0400338A RID: 13194 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x400338A")] public float minYoungModulus = 0.0001f; // Token: 0x0400338B RID: 13195 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400338B")] [SerializeField] [HideInInspector] protected int constraintCount; // Token: 0x0400338C RID: 13196 [FieldOffset(Offset = "0x24")] [Token(Token = "0x400338C")] [HideInInspector] [SerializeField] protected bool cooked; // Token: 0x0400338D RID: 13197 [FieldOffset(Offset = "0x25")] [Token(Token = "0x400338D")] [SerializeField] [HideInInspector] protected bool sharesParticles; // Token: 0x0400338E RID: 13198 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400338E")] [SerializeField] [HideInInspector] protected List activeConstraints; // Token: 0x0400338F RID: 13199 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400338F")] [SerializeField] [HideInInspector] protected List phaseSizes; } }