/// <summary>Returns whether or not this line intersects a circle</summary> /// <param name="linear">The linear object to test intersection with (Ray2D, Line2D or LineSegment2D)</param> /// <param name="circle">The circle to test intersection against</param> [MethodImpl(INLINE)] public static bool Intersects <T>(this T linear, Circle2D circle) where T : ILinear2D => IntersectionTest.LinearCircleIntersects(linear, circle);
/// <summary>Returns the intersections this line has with a circle (if any)</summary> /// <param name="linear">The linear object to test intersection with (Ray2D, Line2D or LineSegment2D)</param> /// <param name="circle">The circle to test intersection against</param> [MethodImpl(INLINE)] public static ResultsMax2 <Vector2> Intersect <T>(this T linear, Circle2D circle) where T : ILinear2D => IntersectionTest.LinearCircleIntersectionPoints(linear, circle);
/// <summary>Returns the osculating circle at the given t-value in the curve, if possible. Osculating circles are defined everywhere except on inflection points, where curvature is 0</summary> /// <param name="t">The t-value along the curve to sample</param> [MethodImpl(INLINE)] public static Circle2D GetOsculatingCircle <T>(this T curve, float t) where T : IParamCurve2Diff <Vector2> => Circle2D.GetOsculatingCircle(curve.GetPoint(t), curve.GetDerivative(t), curve.GetSecondDerivative(t));