type t = {
top_left : OCADml.V3.t;
top_right : OCADml.V3.t;
bot_left : OCADml.V3.t;
bot_right : OCADml.V3.t;
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 = [
| `BL
| `BR
| `CN
| `TL
| `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