Scad_ml
module Scad : sig ... end
Build scad models with well-typed dimensional system (3d / 2d) aware functions mapping down onto the similarly named operations made available by the OpenSCAD language.
These modules are provided at the top-level as convenient namespaces for the configuration types taken as parameters to their corresponding model building functions in Scad
.
module Color : sig ... end
Scad.color
specification type
Spatial vectors used to transform Scad.t
shapes, and compose into other types (e.g. Path3.t
, Poly2.t
, and Mesh.t
) contained in the modules below, which can in turn used to generate point based shapes to be mapped into Scad.t
.
val v2 : float -> float -> v2
v2 x y
Construct a 2d vector from x
and y
coordinates.
val v3 : float -> float -> float -> v3
v3 x y z
Construct a 3d vector from x
, y
, and z
coordinates.
module V2 : sig ... end
module V3 : sig ... end
3-dimensional vector type, including basic mathematical/geometrical operations and transformations mirroring those found in Scad
, allowing for points in 3d space, and higher level types composed of them (e.g. Path3.t
, Poly3.t
, and Mesh.t
) to be manipulated in similar fashion to 3d OpenSCAD shapes (Scad.d3
).
module Affine2 : sig ... end
A 2d affine transformation matrix.
module Affine3 : sig ... end
Affine transformation matrices for transforming 3d vectors (V3.t
), and 3d shapes (Scad.t
) via OpenSCAD's own multmatrix, (see Scad.affine
).
module Quaternion : sig ... end
Provides functions for the creation of and operations between quaternions. These can be used to create composable and interpolatable rotations to be applied to 3d vectors (V3.t
) directly, and Scad.t
through Affine3.t
.
module Plane : sig ... end
Normalized cartesian plane operations facilitating conversion between 2d and 3d space.
module Path2 : sig ... end
2d path generation (including arcs and basic shapes), manipulation (including offset and roundovers (see Round
), and measurement.
module Bezier2 : sig ... end
Generation and measurement of 2d bezier curve (and patch/surface) functions. Including of_path
, which produces a bezier spline function that passes through all points of the given path.
module CubicSpline : sig ... end
Cubic spline interpolation of 2d paths.
module Poly2 : sig ... end
module PolyText : sig ... end
Point path representations (using Poly2.t
) of text via ocaml-cairo import of system fonts. NOTE: Still somewhat experimental.
module Path3 : sig ... end
3d path generation (including arcs and basic shapes), manipulation (including roundovers (see Round
), and conversion to sweeping transformations with to_transforms
), and measurement.
module Bezier3 : sig ... end
Generation and measurement of 3d bezier curve (and patch/surface) functions. Including of_path
, which produces a bezier spline function that passes through all points of the given path.
module Poly3 : sig ... end
module Mesh : sig ... end
Generation, and manipulation of 3-dimensional meshes (points and faces) that can be mapped into Scad.d3
as polyhedrons.
module Math : sig ... end
Various operations on floats (e.g. approximate equality, linear interpolation), and basic arbitrary size 2d matrix operations.
module Easing : sig ... end
Cubic bezier easing.
module Export : sig ... end
Exporting .scad
scripts through the OpenSCAD command line interface.
module BallTree2 : sig ... end
Construction of 2d vector space partitioning ball tree structures for nearest neighbour search. Implementation adapted from the BOSL2 vectors module.
module BallTree3 : sig ... end
Construction of 3d vector space partitioning ball tree structures for nearest neighbour search. Implementation adapted from the BOSL2 vectors module.