/// <summary> /// Gets the minimum and maximum extents of the triangle along the axis /// </summary> /// <param name="min"></param> /// <param name="max"></param> /// <param name="axis"></param> public void GetSpan(out float min, out float max, Vector3 axis) { float d0 = Vector3.Dot(GetPoint(0), axis); float d1 = Vector3.Dot(GetPoint(1), axis); float d2 = Vector3.Dot(GetPoint(2), axis); min = JiggleMath.Min(d0, d1, d2); max = JiggleMath.Max(d0, d1, d2); }
// BEN-OPTIMISATION: New method, ref axis /// <summary> /// Gets the minimum and maximum extents of the triangle along the axis /// </summary> /// <param name="min"></param> /// <param name="max"></param> /// <param name="axis"></param> public void GetSpan(out float min, out float max, ref Vector3 axis) { Vector3 point = new Vector3(); GetPoint(ref point, 0); float d0 = point.X * axis.X + point.Y * axis.Y + point.Z * axis.Z; GetPoint(ref point, 1); float d1 = point.X * axis.X + point.Y * axis.Y + point.Z * axis.Z; GetPoint(ref point, 2); float d2 = point.X * axis.X + point.Y * axis.Y + point.Z * axis.Z; min = JiggleMath.Min(d0, d1, d2); max = JiggleMath.Max(d0, d1, d2); }