Synopsis
PDX_MSGT mth_Intersect3DLines(long option, double para_tol, double *pt1, double *tan1, double *pt2, double *tan2, double *alf1, double *alf2, double *intpt)
Purpose
Solves for two straight lines in 3D space (least squares).
Description
This routine solves the equations of two straight lines in 3D space by the method of least squares. The lines must be in point/vector form. The lines may or may not intersect. If they do not intersect, the solution represents the minimum distance between the two lines.
Input
option
MTH_INTERSECT
If set, then the lines are assumed to intersect. The solution will then be computed as the solution to equation 2 (fastest method if the lines are known to intersect).
MTH_ALPHAS
Just compute alf1 and alf2 (see below).
MTH_POINT
Just compute the point. If MTH_INTERSECT is set, this is the solution point on line 2; if it is not set, then it is the midpoint of the shortest line segment connecting the two lines.
para_tol
The parallel lines test tolerance.
pt1
The initial point on the first line.
tan1
The tangent vector of the first line.
pt2
The initial point on the second line.
tan2
The tangent vector of the second line.
Output
alf1
Parametric solution to equation 1 (see option). ( option must be set to MTH_ALPHAS )
alf2
Parametric solution to equation 2 (see option). ( option must be set to MTH_ALPHAS )
intpt
The intersection point of the two lines if they intersect. If they don't, then intpt is the midpoint of the shortest line segment connecting the two lines (see option). ( option must be set to MTH_POINT )
Return
MTH_NOERR
MTH_PARALLELLINES
.fi