D3DXIntersectTri function (D3DX10math.h)

Note

The D3DX utility library is deprecated. We recommend that you use DirectXMath instead.

Computes the intersection of a ray and a triangle.

Syntax

BOOL D3DXIntersectTri(
  _In_  const D3DXVECTOR3 *p0,
  _In_  const D3DXVECTOR3 *p1,
  _In_  const D3DXVECTOR3 *p2,
  _In_  const D3DXVECTOR3 *pRayPos,
  _In_  const D3DXVECTOR3 *pRayDir,
  _Out_       FLOAT       *pU,
  _Out_       FLOAT       *pV,
  _Out_       FLOAT       *pDist
);

Parameters

p0 [in]

Type: const D3DXVECTOR3*

Pointer to a D3DXVECTOR3 structure, describing the first triangle vertex position.

p1 [in]

Type: const D3DXVECTOR3*

Pointer to a D3DXVECTOR3 structure, describing the second triangle vertex position.

p2 [in]

Type: const D3DXVECTOR3*

Pointer to a D3DXVECTOR3 structure, describing the third triangle vertex position.

pRayPos [in]

Type: const D3DXVECTOR3*

Pointer to a D3DXVECTOR3 structure, specifying the point where the ray begins.

pRayDir [in]

Type: const D3DXVECTOR3*

Pointer to a D3DXVECTOR3 structure, specifying the direction of the ray.

pU [out]

Type: FLOAT*

Barycentric hit coordinates, U.

pV [out]

Type: FLOAT*

Barycentric hit coordinates, V.

pDist [out]

Type: FLOAT*

Ray-intersection parameter distance.

Return value

Type: BOOL

Returns TRUE if the ray intersects the area of the triangle. Otherwise, returns FALSE.

Remarks

Any point in the plane V1V2V3 can be represented by the barycentric coordinate (U,V). The parameter U controls how much V2 gets weighted into the result, and the parameter V controls how much V3 gets weighted into the result. Lastly, the value of [1 - (U + V)] controls how much V1 gets weighted into the result.

Barycentric coordinates are a form of general coordinates. In this context, using barycentric coordinates represents a change in coordinate systems. What holds true for Cartesian coordinates holds true for barycentric coordinates.

Barycentric coordinates define a point inside a triangle in terms of the triangle's vertices. For a more in-depth description of barycentric coordinates, see Mathworld's Barycentric Coordinates Description.

Requirements

Requirement Value
Header
D3DX10math.h
Library
D3DX10.lib

See also

Mesh Functions