`OCADml`

Vectors for describing transformations and points in 2/3-dimensional space.

`v3 x y z`

Construct a 3d vector from `x`

, `y`

, and `z`

coordinates.

`v4 x y z`

Construct a 4d vector from `x`

, `y`

, `z`

, and `w`

coordinates.

`module V2 : sig ... end`

`module V3 : sig ... end`

`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.

`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`

), and shapes.

`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`

2d polygons made up of an outer, and zero or more inner `Path2.t`

s. Includes basic shape creation helpers, manipulations, (including offset and basic transformations), measurement, and validation.

`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`

Planar 3d polygons made up of an outer, and zero or more inner `Path3.t`

s. Includes basic shape creation helpers, manipulations, (including offset and basic transformations), measurement, and validation.

`module Mesh : sig ... end`

Generation, and manipulation of triangular meshes (points and faces).

`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 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.