vec Line::ClosestPoint(const Triangle &triangle, float *outU, float *outV, float *outD) const { ///\todo Optimize this function! vec closestPointTriangle = triangle.ClosestPoint(*this); if (outU || outV) { float2 uv = triangle.BarycentricUV(closestPointTriangle); if (outU) *outU = uv.x; if (outV) *outV = uv.y; } return ClosestPoint(closestPointTriangle, outD); }
vec Line::ClosestPoint(const Triangle &triangle, float &d, float2 &outBarycentricUV) const { vec closestPointTriangle = triangle.ClosestPoint(*this); outBarycentricUV = triangle.BarycentricUV(closestPointTriangle); return ClosestPoint(closestPointTriangle, d); }