Module Dometyl.Points

type t = {
  1. top_left : OCADml.V3.t;
  2. top_right : OCADml.V3.t;
  3. bot_left : OCADml.V3.t;
  4. bot_right : OCADml.V3.t;
  5. centre : OCADml.V3.t;
}
val translate : OCADml.V3.t -> t -> t
val xtrans : float -> t -> t
val ytrans : float -> t -> t
val ztrans : float -> t -> t
val rotate : ?about:OCADml.V3.t -> OCADml.V3.t -> t -> t
val xrot : ?about:OCADml.V3.t -> float -> t -> t
val yrot : ?about:OCADml.V3.t -> float -> t -> t
val zrot : ?about:OCADml.V3.t -> float -> t -> t
val axis_rotate : ?about:OCADml.V3.t -> OCADml.V3.t -> float -> t -> t
val quaternion : ?about:OCADml.V3.t -> OCADml.Quaternion.t -> t -> t
val scale : OCADml.V3.t -> t -> t
val xscale : float -> t -> t
val yscale : float -> t -> t
val zscale : float -> t -> t
val mirror : OCADml.V3.t -> t -> t
val affine : OCADml.Affine3.t -> t -> t
type pos = [
  1. | `BL
  2. | `BR
  3. | `CN
  4. | `TL
  5. | `TR
]
val map : (OCADml.V3.t -> OCADml.V3.t) -> t -> t
val fold : ('a -> OCADml.V3.t -> 'a) -> 'a -> t -> 'a
val to_cw_path : t -> OCADml.Path3.t
val to_ccw_path : t -> OCADml.Path3.t
val of_cw_path : OCADml.Path3.t -> t
val of_ccw_path : OCADml.Path3.t -> t
val overlapping_bounds : t -> t -> float
val get : t -> [< `BL | `BR | `CN | `TL | `TR ] -> OCADml.V3.t
val direction : t -> OCADml.V3.t
val mark : t -> OSCADml.Scad.d3