package OCADml

  1. Overview
  2. Docs
Types and functions for building CAD packages in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

OCADml-0.5.0.tbz
sha256=fc0b0a0ff598ff06550dfe0a93b279dc2df018914cc7883872d676d7da4dc14c
sha512=e02d943fbed9334730223ea12447b2495812db0bab20302516891d24c088fa8c4a60c366d0e083f4e675a25b394d101d115d3595e05284298d5803acc92351cf

doc/OCADml/OCADml/Affine2/index.html

Module OCADml.Affine2Source

A 2d affine transformation matrix.

Sourcetype row = float * float * float
Sourcetype t = Gg.m3
Sourceval id : t

The identity matrix.

Basic Matrix Operations

Sourceval mul : t -> t -> t

mul a b

Multiply the matrices a and b.

Sourceval add : t -> t -> t

add a b

Element by element addition of the matrices a and b.

Sourceval sub : t -> t -> t

sub a b

Element by element subtraction of the matrix b from a.

Sourceval emul : t -> t -> t

emul a b

Element by element multiplication of the matrices a and b.

Sourceval ediv : t -> t -> t

ediv a b

Element by element division of the matrix a by b.

Sourceval smul : t -> float -> t

smul t s

Multiply each element of the matrix t by the scalar s.

Sourceval sdiv : t -> float -> t

sdiv t s

Divide each element of the matrix t by the scalar s.

Sourceval sadd : t -> float -> t

sadd t s

Add the scalar s to each element of the matrix t.

Sourceval ssub : t -> float -> t

ssub t s

Subtract the scalar s to from each element of the matrix t.

Sourceval transpose : t -> t

transpose t

Transpose the rows and columns of t.

Sourceval map : (float -> float) -> t -> t

map f t

Apply the function f to all elements of t.

Sourceval trace : t -> float

trace t

Sum the elements on the main diagonal (upper left to lower right) of t.

Sourceval get : t -> int -> int -> float

get t r c

Get the element at row and column of t. Equivalent to t.(r).(c). Raises Invalid_argument if access is out of bounds.

Sourceval compose : t -> t -> t

compose a b

Compose the affine transformations a and b. Equivalent to mul b a, which when applied, will perform the transformation a, then the transformation b.

Sourceval (%>) : t -> t -> t

a %> b

Alias to compose.

Sourceval (%) : t -> t -> t

a % b

Mathematical composition of affine transformations a and b, equivalent to mul a b.

Construction

Sourceval v : float -> float -> float -> float -> float -> float -> float -> float -> float -> t

v e00 e01 e02 e10 e11 e12 e20 e21 e22

Create a 2d affine matrix from elements in row major order.

Construction by Rows

Sourceval of_rows : row -> row -> t

of_rows rows

Create an 2d affine transformation matrix from two rows. The last row is set to 0., 0., 1..

Sourceval of_row_matrix_exn : float array array -> t

of_row_matrix_exn m

Convert the float matrix m into a t if it is the correct shape (3 x 3), otherwise raise Invalid_argument.

Sourceval of_row_matrix : float array array -> (t, string) result

of_row_matrix m

Convert the float matrix m into a t if it is the correct shape (3 x 3).

Element Accessors

Sourceval e00 : t -> float
Sourceval e01 : t -> float
Sourceval e02 : t -> float
Sourceval e10 : t -> float
Sourceval e11 : t -> float
Sourceval e12 : t -> float
Sourceval e20 : t -> float
Sourceval e21 : t -> float
Sourceval e22 : t -> float

Transforms

Sourceval translate : V2.t -> t

translation v

Create a 2d affine transformation matrix from the xy translation vector v.

Sourceval xtrans : float -> t

xtrans x

Create a 2d affine transformation matrix that applies a translation of x distance along the x-axis.

Sourceval ytrans : float -> t

ytrans y

Create a 2d affine transformation matrix that applies a translation of y distance along the y-axis.

Sourceval rotate : ?about:V2.t -> float -> t

rotate ?about r

Create an affine transformation matrix that applies a rotation of r radians around the origin (or the point about if provided).

Sourceval zrot : ?about:V2.t -> float -> t

zrot ?about r

Create an affine transformation matrix that applies a rotation of r radians around the origin (or the point about if provided). Alias of rotate.

Sourceval align : V2.t -> V2.t -> t

align a b

Compute an affine transformation matrix that would bring the vector a into alignment with b.

Sourceval scale : V2.t -> t

scale v

Create a 2d affine transformation matrix from the xyz scaling vector v.

Sourceval xscale : float -> t

xscale x

Create a 2d affine transformation matrix that applies x-axis scaling.

Sourceval yscale : float -> t

yscale y

Create a 2d affine transformation matrix that applies y-axis scaling.

Sourceval mirror : V2.t -> t

mirror ax

Create an affine transformation matrix that applies a reflection across the axis ax.

Sourceval skew : float -> float -> t

skew xa ya

Create an affine transformation matrix that applies a skew transformation along the xy plane.

  • xa: skew angle (in radians) in the direction of the x-axis
  • ya: skew angle (in radians) in the direction of the y-axis
Sourceval transform : t -> V2.t -> V2.t

transform t v

Apply the 2d affine transformation matrix t to the vector v.

Conversions

Sourceval lift : t -> Affine3.t

Output

Sourceval to_string : t -> string
OCaml

Innovation. Community. Security.