Scad_mlmodule Scad : sig ... endBuild 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 ... endScad.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 -> v2v2 x y
Construct a 2d vector from x and y coordinates.
val v3 : float -> float -> float -> v3v3 x y z
Construct a 3d vector from x, y, and z coordinates.
module V2 : sig ... endmodule V3 : sig ... end3-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 ... endA 2d affine transformation matrix.
module Affine3 : sig ... endAffine transformation matrices for transforming 3d vectors (V3.t), and 3d shapes (Scad.t) via OpenSCAD's own multmatrix, (see Scad.affine).
module Quaternion : sig ... endProvides 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 ... endNormalized cartesian plane operations facilitating conversion between 2d and 3d space.
module Path2 : sig ... end2d path generation (including arcs and basic shapes), manipulation (including offset and roundovers (see Round), and measurement.
module Bezier2 : sig ... endGeneration 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 ... endCubic spline interpolation of 2d paths.
module Poly2 : sig ... endmodule PolyText : sig ... endPoint path representations (using Poly2.t) of text via ocaml-cairo import of system fonts. NOTE: Still somewhat experimental.
module Path3 : sig ... end3d 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 ... endGeneration 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 ... endmodule Mesh : sig ... endGeneration, and manipulation of 3-dimensional meshes (points and faces) that can be mapped into Scad.d3 as polyhedrons.
module Math : sig ... endVarious operations on floats (e.g. approximate equality, linear interpolation), and basic arbitrary size 2d matrix operations.
module Easing : sig ... endCubic bezier easing.
module Export : sig ... endExporting .scad scripts through the OpenSCAD command line interface.
module BallTree2 : sig ... endConstruction of 2d vector space partitioning ball tree structures for nearest neighbour search. Implementation adapted from the BOSL2 vectors module.
module BallTree3 : sig ... endConstruction of 3d vector space partitioning ball tree structures for nearest neighbour search. Implementation adapted from the BOSL2 vectors module.