static Vec3<T> closestPointToTuple(Line3<T> line, const tuple &t) { MATH_EXC_ON; Vec3<T> v; if(t.attr("__len__")() == 3) { v.x = extract<T>(t[0]); v.y = extract<T>(t[1]); v.z = extract<T>(t[2]); return line.closestPointTo(v); } else THROW(Iex::LogicExc, "Line3 expects tuple of length 3"); }
static Vec3<T> closestPointTo2(Line3<T> line, const Line3<T> &other) { MATH_EXC_ON; return line.closestPointTo(other); }
static Vec3<T> closestPointTo1(Line3<T> line, const Vec3<T> &p) { MATH_EXC_ON; return line.closestPointTo(p); }