module P3:sig
..end
typet =
Gg.p3
val dim : int
typemh =
Gg.m4
val v : float -> float -> float -> Gg.p3
v x y z
is the point (x y z)
.val x : Gg.p3 -> float
x p
is the x coordinate of p
.val y : Gg.p3 -> float
y p
is the y coordinate of p
.val z : Gg.p3 -> float
y p
is the z coordinate of p
.val o : Gg.p3
o
is the point (0 0 0)
.val mid : Gg.p3 -> Gg.p3 -> Gg.p3
mid p q
is the mid point (p + q)/2
.val tr : Gg.m4 -> Gg.p3 -> Gg.p3
tr m p
is the
affine
transform in
homogenous 3D space of the point p
by m
.
Note. Since m
is supposed to be affine the function
ignores the last row of m
. p
is treated as a finite point
(its last coordinate in homogenous space is 1). Use Gg.V3.tr
to transform vectors (infinite points).