Module Beloch.Isometry

Exact 2D isometry: an orthogonal 2×2 matrix (det ±1) plus a translation, all in Num. Used to place each face of the paper onto the table.

type t = {
  1. m00 : Num.t;
  2. m01 : Num.t;
  3. m10 : Num.t;
  4. m11 : Num.t;
  5. tx : Num.t;
  6. ty : Num.t;
}
val identity : t
val apply_point : t -> Geom.point -> Geom.point
val compose : t -> t -> t
val det_sign : t -> int
val inverse : t -> t
val reflect_across_line : Geom.line -> t