rem: static float SqrDistance(const Ray& rkLine, const Point& center, const Point& extents, float* pfLParam)
add: static float SqrDistance(const IceMaths::Ray& rkLine, const IceMaths::Point& center, const IceMaths::Point& extents, float* pfLParam)
context: static float SqrDistance(const Ray& rkLine, const Point& center, const Point& extents, float* pfLParam){    // compute coordinates of line in box coordinate system    Point kDiff = rkLine.mOrig - center;    Point kPnt = kDiff;    Point kDir = rkLine.mDir;    // Apply reflections so that direction vector has nonnegative components.    bool bReflect[3];    for(int i=0;i<3;i++)    {        if(kDir[i]<0.0f)        {            kPnt[i] = -kPnt[i];            kDir[i] = -kDir[i];            bReflect[i] = true;        }        else        {            bReflect[i] = false;        }    }    float fSqrDistance = 0.0f;    if(kDir.x>0.0f)    {        if(kDir.y>0.0f)        {            if(kDir.z>0.0f)	CaseNoZeros(kPnt, kDir, extents, pfLParam, fSqrDistance);		// (+,+,+)            else			Case0(0, 1, 2, kPnt, kDir, extents, pfLParam, fSqrDistance);	// (+,+,0)        }        else        {            if(kDir.z>0.0f)	Case0(0, 2, 1, kPnt, kDir, extents, pfLParam, fSqrDistance);	// (+,0,+)            else			Case00(0, 1, 2, kPnt, kDir, extents, pfLParam, fSqrDistance);	// (+,0,0)        }    }    else    {        if(kDir.y>0.0f)        {            if(kDir.z>0.0f)	Case0(1, 2, 0, kPnt, kDir, extents, pfLParam, fSqrDistance);	// (0,+,+)            else			Case00(1, 0, 2, kPnt, kDir, extents, pfLParam, fSqrDistance);	// (0,+,0)        }        else        {            if(kDir.z>0.0f)	Case00(2, 0, 1, kPnt, kDir, extents, pfLParam, fSqrDistance);	// (0,0,+)            else            {							Case000(kPnt, extents, fSqrDistance);							// (0,0,0)							if(pfLParam)	*pfLParam = 0.0f;            }        }    }    return fSqrDistance;}