
664 Chapter 14 Distance Methods
14.9.1 Line to Oriented Box
A simple method for computing the distance between a line and an oriented box is to
iterate over the six faces of the box and compute the distance from the line to those
faces. If the line intersects a face, the distance is zero. The pseudocode is
float SquaredDistance (Line line, Box box, float& lClosest,
float bClosest[3])
{
float sqrDistance = infinity;
float tmpSD, tmpLC, tmpFC[2];
Rectangle face;
// Process the box face at -e0.
face.C = box.C - box.e[0] * box.axis[0];
face.axis[0] = box.axis[1];
face.axis[1] = box.axis[2];
face.e[0] = box.e[1];
face.e[1] = box.e[2];
tmpSD = SquaredDistance(line,face,tmpLC,tmpFC); ...