open Types
-let roundInt = int << round
+let inline roundInt v = v |> round |> int
let inline dprintfn fmt =
Printf.ksprintf System.Diagnostics.Debug.WriteLine fmt
sw.Start()
let res = f ()
sw.Stop()
- log <| sprintf "%A (time: %A ms)" m sw.ElapsedMilliseconds
+ log <| sprintf "%s (time: %d ms)" m sw.ElapsedMilliseconds
res
let inline lineFromTwoPoints (p1: PointD) (p2: PointD) : Line =
let y = -(l2.A * l1.B - l1.A * l2.B) / (l1.A - l2.A)
PointD(x, y)
+let inline linePassThroughSegment (l: Line) (p1: PointD) (p2: PointD) : bool =
+ let p = pointFromTwoLines l (lineFromTwoPoints p1 p2)
+ sign (p.X - p1.X) <> sign (p.X - p2.X)
+
let inline squaredDistanceTwoPoints (p1: PointD) (p2: PointD) =
- (p1.X - p2.X) ** 2.0 + (p1.Y - p2.Y) ** 2.0
+ (p1.X - p2.X) ** 2.f + (p1.Y - p2.Y) ** 2.f
let distanceTwoPoints (p1: PointD) (p2: PointD) =
squaredDistanceTwoPoints p1 p2 |> sqrt