module P3:sig..end
typet =Gg.p3
val dim : int
typemh =Gg.m4
val v : float -> float -> float -> Gg.p3v x y z is the point (x y z).val x : Gg.p3 -> floatx p is the x coordinate of p.val y : Gg.p3 -> floaty p is the y coordinate of p.val z : Gg.p3 -> floaty p is the z coordinate of p.val o : Gg.p3o is the point (0 0 0).val mid : Gg.p3 -> Gg.p3 -> Gg.p3mid p q is the mid point (p + q)/2.val tr : Gg.m4 -> Gg.p3 -> Gg.p3tr 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).