Module Dometyl.Walls

module Side : sig ... end
module Sides : sig ... end
val auto_body : ?d1:[ `Abs of float | `Rel of float ] -> ?d2:float -> ?north_clearance:float -> ?south_clearance:float -> ?side_clearance:float -> ?n_steps:Wall.Steps.t -> ?min_step_dist:float -> ?scale:OCADml.V2.t -> ?scale_ez:(OCADml.V2.t * OCADml.V2.t) -> ?end_z:float -> ?index_scale:OCADml.V2.t -> ?north_lookup:(int -> bool) -> ?south_lookup:(int -> bool) -> ?west_lookup:(int -> bool) -> ?east_lookup:(int -> bool) -> Plate.t -> Sides.t

Use Sides.auto to generate a Sides.t from the body of the provided Plate.t.

val auto_thumb : ?d1:[ `Abs of float | `Rel of float ] -> ?d2:float -> ?north_clearance:float -> ?south_clearance:float -> ?side_clearance:float -> ?n_steps:Wall.Steps.t -> ?min_step_dist:float -> ?scale:OCADml.V2.t -> ?scale_ez:(OCADml.V2.t * OCADml.V2.t) -> ?end_z:float -> ?north_lookup:(int -> bool) -> ?south_lookup:(int -> bool) -> ?west_lookup:(int -> bool) -> ?east_lookup:(int -> bool) -> Plate.t -> Sides.t

Use Sides.auto to generate a Sides.t from the thumb of the provided Plate.t.

type t = {
  1. body : Sides.t;
  2. thumb : Sides.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
val make : body:Sides.t -> thumb:Sides.t -> t

make ~body ~thumb

Construct a t from body and thumb.

val manual : body_west:Side.config -> body_north:Side.config -> body_east:Side.config -> body_south:Side.config -> thumb_south:Side.config -> thumb_north:Side.config -> thumb_east:Side.config -> thumb_west:Side.config -> Plate.t -> t

manual ~body_west ~body_north ~body_east ~body_south ~thumb_south ~thumb_south ~thumb_north ~thumb_east ~thumb_west plate

A helper that passes along the given Side.configs to Sides.manual_body and Sides.manual_thumb to construct a t.

val to_scad : t -> OSCADml.Scad.d3