Mesh.Intersect Method

Language:

Determines whether a ray intersects with a mesh.

Definition

Visual Basic Public Function Intersect( _
    ByVal rayPos As Vector3, _
    ByVal rayDir As Vector3, _
    ByRef closestHit As IntersectInformation _
) As Boolean
C# public bool Intersect(
    Vector3 rayPos,
    Vector3 rayDir,
    out IntersectInformation closestHit
);
C++ public:
bool Intersect(
    Vector3 rayPos,
    Vector3 rayDir,
    [Out] IntersectInformationclosestHit
);
JScript public function Intersect(
    rayPos : Vector3,
    rayDir : Vector3,
    closestHit : IntersectInformation
) : boolean;

Parameters

rayPos Microsoft.DirectX.Vector3
A Vector3 structure that specifies the origin coordinate of the ray.
rayDir Microsoft.DirectX.Vector3
A Vector3 structure that specifies the direction of the ray.
closestHit Microsoft.DirectX.Direct3D.IntersectInformation
An IntersectInformation object that describes the closest intersection between the array and the mesh.

Return Value

System.Boolean
Value that is true if the ray intersects a triangular face on the mesh; otherwise, the value is false.

Remarks

The Intersect method provides a way to understand points in and around a triangle, independent of where the triangle is actually located. This method returns the resulting point by using the following equation:

V1 + U(V2-V1) + V(V3-V1)

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

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

Exceptions
InvalidCallException The method call is invalid. For example, a method's parameter might contain an invalid value.
OutOfMemoryException Leave Site Microsoft Direct3D could not allocate sufficient memory to complete the call.

See Also


Send comments about this topic to Microsoft. © Microsoft Corporation. All rights reserved.

Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center