Page
Library
Module
Module type
Parameter
Class
Class type
Source
Gg.M4Source4D square matrices.
dim is the dimension of rows and columns.
val v :
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
float ->
m4v e00 e01 e02 e03 e10 e11 e12 e13 e20 e21 e22 e23 e30 e31 e32 e33 is a matrix whose components are specified in row-major order
of_rows r0 r1 r2 r3 is the matrix whose rows are r0, r1, r2 and r3.
of_cols c0 c1 c2 c3 is the matrix whose columns are c0, c1, c2 and c3.
el i j a is the element aij. See also the direct element accessors.
Raises Invalid_argument if i or j is not in [0;dim[.
row i a is the ith row of a.
Raises Invalid_argument if i is not in [0;dim[.
col j a is the jth column of a.
Raises Invalid_argument if j is not in [0;dim[.
of_m3_v3 m v is the matrix whose first three rows are those of m,v side by side and the fourth is 0 0 0 1.
mul a b is the matrix multiplication a * b.
trace a is the matrix trace trace(a).
det a is the determinant |a|.
inv a is the inverse matrix a-1.
See M3.srigid2.
See M3.rot3_map.
See M3.rot3_axis.
See M3.rot3_zyx.
rigid3 move rot is the rigid body transformation of 3D space that rotates by the axis/radian angle rot and then translates by move.
rigid3q move rot is the rigid body transformation of 3D space that rotates by the quaternion rot and then translates by move.
srigid3 scale move rot scale is like rigid3 but starts by scaling according to scale.
srigid3q move rot scale is like rigid3q but starts by scaling according to scale.
Projection matrices assume a right-handed coordinate system with the eye at the origin looking down the z-axis.
val ortho :
left:float ->
right:float ->
bot:float ->
top:float ->
near:float ->
far:float ->
m4ortho left right bot top near far maps the axis aligned box with corners (left, bot, -near) and (right, top, -far) to the axis aligned cube with corner (-1, -1, -1) and (1, 1, 1).
val persp :
left:float ->
right:float ->
bot:float ->
top:float ->
near:float ->
far:float ->
m4persp left right bot top near far maps the frustum with top of the underlying pyramid at the origin, near clip rectangle corners (left, bot, -near), (right, top, -near) and far plane at -far to the axis aligned cube with corners (-1, -1, -1) and (1,1,1).
mapi f a is like map but the element indices are also given.
fold f acc a is f (...(f (f acc a00) a10)...).
foldi f acc a is f (...(f (f acc 0 0 a00) 1 0 a10)...).
equal_f eq a b tests a and b like equal but uses eq to test floating point values.
compare a b is Stdlib.compare a b. That is lexicographic comparison in column-major order.
compare_f cmp a b compares a and b like compare but uses cmp to compare floating point values.
pp ppf a prints a textual representation of a on ppf.
pp_f pp_e ppf a prints a like pp but uses pp_e to print floating point values.