using System; using System.Runtime.InteropServices; using UnityEngine; namespace MU3 { // Token: 0x020004E3 RID: 1251 public abstract class SwingJointCollider : MonoBehaviour { // Token: 0x06001EE7 RID: 7911 public abstract void updateCache(ref SwingJointColliderInformation information); } [StructLayout(LayoutKind.Sequential, Pack = 4)] public struct SwingJointColliderInformation { // Token: 0x06001EE4 RID: 7908 RVA: 0x000C32E8 File Offset: 0x000C32E8 public bool getCollisionPointWithSphere(ref Vector3 collision, ref Vector3 center, float radius) { Vector3 vector = center - this.position_; float num = this.radius_ + radius; float sqrMagnitude = vector.sqrMagnitude; if (sqrMagnitude >= num * num) { return false; } if (1E-05f < sqrMagnitude) { vector *= num / Mathf.Sqrt(sqrMagnitude); } else { vector *= num; } collision = this.position_ + vector; return true; } // Token: 0x06001EE5 RID: 7909 RVA: 0x000C3360 File Offset: 0x000C3360 public int getSideOfPlane(ref Plane palne) { float num = palne.dot(this.position_); if (0f <= num) { return (num > this.radius_) ? 2 : 1; } return (-this.radius_ > num) ? 0 : 1; } // Token: 0x040048FA RID: 18682 public const int Side_Back = 0; // Token: 0x040048FB RID: 18683 public const int Side_Cross = 1; // Token: 0x040048FC RID: 18684 public const int Side_Front = 2; // Token: 0x040048FD RID: 18685 public Vector3 position_; // Token: 0x040048FE RID: 18686 public float radius_; } }