Mesh.IntersectSubset(Int32,Vector3,Vector3,IntersectInformation) Method (Microsoft.DirectX.Direct3D)
Intersects the specified ray with a given mesh subset.
Definition
Visual Basic Public Function IntersectSubset( _
ByVal attributeId As Integer, _
ByVal rayPos As Vector3, _
ByVal rayDir As Vector3, _
ByRef closestHit As IntersectInformation _
) As BooleanC# public bool IntersectSubset(
int attributeId,
Vector3 rayPos,
Vector3 rayDir,
out IntersectInformation closestHit
);C++ public:
bool IntersectSubset(
int attributeId,
Vector3 rayPos,
Vector3 rayDir,
[Out] IntersectInformation% closestHit
);JScript public function IntersectSubset(
attributeId : int,
rayPos : Vector3,
rayDir : Vector3,
closestHit : IntersectInformation
) : boolean;
Parameters
attributeId System.Int32
Attribute identifier of the subset to intersect with.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
This method provides functionality that is similar to that of Intersect.
The IntersectSubset 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
The method call is invalid. For example, a method's parameter might contain an invalid value.
Microsoft Direct3D could not allocate sufficient memory to complete the call.