CAB,
Just had some time to see what you posted. It's really cool. Thanks for putting it up here.
Fuccaro,
I'm not good at matrix math so if I can avoid it, well ...
I have been writing some transformation and stuff and it's fun to mess with once it gets going but I have to reflush the brain cells before it gets going
The GETINTERS is just a shortcut for getting the point that si describes along the vector p1p2: p1+s*w (with the variable names used in C:TEST).
I'm sure you know this but si is the ratio along the vector at which the vector intersects the plane. That's why 0<=si<=1 describes an intersection physically on the vector where si is the distance ratio from p1 to p2. E.g. if si=0.5 then it intersects at the midpoint of p1p2. si>1 means that the intersection lies at an extension of p1p2. All that GETINTERS does is to find that distance and move it back into p1:
w = p2 minus p1 = unit vector, i.e. p1p2 transposed into origin (it's not really a unit vector but the actual vector! I just call them unit vectors)
Distance to intersection = si * w. Moving it back to p1 is merely an addition of coordinates p1+(si*w), which is what MAPCAR does in GETINTERS. Here's an illustration of the process: