Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
bool Capsule::Intersects(const Triangle &triangle) const
{
	float3 thisPoint;
	float3 trianglePoint = triangle.ClosestPoint(l, &thisPoint);
	return thisPoint.DistanceSq(trianglePoint) <= r*r;
}
Ejemplo n.º 3
0
vec Line::ClosestPoint(const Triangle &triangle, float &d, float2 &outBarycentricUV) const
{
    vec closestPointTriangle = triangle.ClosestPoint(*this);
    outBarycentricUV = triangle.BarycentricUV(closestPointTriangle);
    return ClosestPoint(closestPointTriangle, d);
}
Ejemplo n.º 4
0
vec Line::ClosestPoint(const Triangle &triangle, float &d) const
{
    vec closestPointTriangle = triangle.ClosestPoint(*this);
    return ClosestPoint(closestPointTriangle, d);
}