======== #1 constructor ========

vertex(30, 40) .. <vertex:30,40,0>
vertex(30, 40, 50) .. <vertex:30,40,50>

======== #2 operator ========

v1 .. <vertex:30,40,50>
v2 .. <vertex:5,6,7>
-v1 .. <vertex:-30,-40,-50>
v1 + v2 .. <vertex:35,46,57>
v1 - v2 .. <vertex:25,34,43>
v1 / 4 .. <vertex:7.5,10,12.5>
v1 * 4 .. <vertex:120,160,200>

======== #3 vertex.list() ========

v.list() .. [30, 40, 50]

======== #4 vertex.translate() ========

vertex(3, 4, 5).translate(1, 2, 3) .. <vertex:4,6,8>
vertex(3, 4, 5).translate(-3, -2, -1) .. <vertex:0,2,4>

======== #5 vertex.rotate@X() ========

vertex(3, 4, 5).rotate@x(math.pi / 2) .. <vertex:3,-5,4>
vertex(3, 4, 5).rotate@y(math.pi / 2) .. <vertex:5,4,-3>
vertex(3, 4, 5).rotate@z(math.pi / 2) .. <vertex:-4,3,5>
vertex(3, 4, 5).rotate@x(90):deg .. <vertex:3,-5,4>
vertex(3, 4, 5).rotate@y(90):deg .. <vertex:5,4,-3>
vertex(3, 4, 5).rotate@z(90):deg .. <vertex:-4,3,5>

======== #6 vertex.normal ========

vertex.normal(vertex(1, 1, 2), vertex(0, -2, 1), vertex(3, -1, 0)) .. <vertex:4,-4,8>
vertex.normal(vertex(1, 1, 2), vertex(0, -2, 1), vertex(3, -1, 0)):unit .. <vertex:0.408248,-0.408248,0.816497>
vertex.normal(vertex.zero, vertex.zero, vertex.zero) .. <vertex:0,0,0>
vertex.normal(vertex.zero, vertex.zero, vertex.zero):unit .. <vertex:0,0,0>

======== #7 vertex.cross ========

vertex.cross(vertex(2, -1, 3), vertex(1, -2, -3)) .. <vertex:9,9,-3>
vertex.cross(vertex(1, 2, -4), vertex(2, 3, 1)) .. <vertex:14,-9,-1>
vertex(2, -1, 3) |*| vertex(1, -2, -3) .. <vertex:9,9,-3>
vertex(1, 2, -4) |*| vertex(2, 3, 1) .. <vertex:14,-9,-1>

======== #8 vertex.dot ========

vertex.dot(vertex(2, -1, 3), vertex(6, -2, 4)) .. 26
vertex.dot(vertex(3, -1, 3), vertex(-3, -5, 2)) .. 2
vertex(2, -1, 3) |.| vertex(6, -2, 4) .. 26
vertex(3, -1, 3) |.| vertex(-3, -5, 2) .. 2

======== #9 vertex.norm ========

vertex(-2, 3, -1).norm() .. 3.74166
