tube.spad line 52 [edit on github]
Tools for constructing tubes around 3-dimensional parametric curves.
s * p returns a point whose coordinates are the scalar multiple of the point p by the scalar s, preserving the color, or fourth coordinate, of p.
p + q computes and returns a point whose coordinates are the sums of the coordinates of the two points p and q, using the color, or fourth coordinate, of the first point p as the color also of the point q.
p - q computes and returns a point whose coordinates are the differences of the coordinates of two points p and q, using the color, or fourth coordinate, of the first point p as the color also of the point q.
cosSinInfo(n) returns the list of lists of values for n, in the form: [[cos(n - 1) a, sin(n - 1) a], ..., [cos 2 a, sin 2 a], [cos a, sin a]] where a = 2 pi/n. Note: n should be greater than 2.
cross(p, q) computes the cross product of the two points p and q using only the first three coordinates, and keeping the color of the first point p. The result is returned as a point.
dot(p, q) computes the dot product of the two points p and q using only the first three coordinates, and returns the resulting DoubleFloat.
loopPoints(p, n, b, r, lls) creates and returns a list of points which form the loop with radius r, around the center point indicated by the point p, with the principal normal vector of the space curve at point p given by the point(vector) n, and the binormal vector given by the point(vector) b, and a list of lists, lls, which is the cosSinInfo of the number of points defining the loop.
point(x1, x2, x3, c) creates and returns a point from the three specified coordinates x1, x2, x3, and also a fourth coordinate, c, which is generally used to specify the color of the point.
unitVector(p) creates the unit vector of the point p and returns the result as a point. Note: unitVector(p) = p/|p|.