Module Hand.Finger

type t = {
  1. prox : Bone.t;
  2. mid : Bone.t;
  3. dist : Bone.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 config = {
  1. offset : OCADml.V3.t option;
  2. lengths : float * float * float;
  3. radii : (float * float * float) option;
  4. splay : float option;
}
val config : ?offset:OCADml.V3.t -> ?radii:(float * float * float) -> ?splay:float -> (float * float * float) -> config
val map : f:(Bone.t -> Bone.t) -> t -> t
val splay : float -> t -> t
val extend : ?mult:(float * float * float) -> float -> t -> t
val flex : ?mult:(float * float * float) -> float -> t -> t
val make : ?splay:float -> ?offset:OCADml.V3.t -> ?radii:(float * float * float) -> (float * float * float) -> t
val of_config : config -> t
val to_scad : t -> ([ `D3 ], OCADml.V3.t, OCADml.V3.t, OCADml.Affine3.t) OSCADml.Scad.t