XMVector4Cross

Computes the 4D cross product.

Syntax

XMVECTOR XMVector4Cross(
         XMVECTOR V1,
         XMVECTOR V2,
         XMVECTOR V3
)  

Parameters

V1
Type: XMVECTOR 

4D vector.

V2
Type: XMVECTOR 

4D vector.

V3
Type: XMVECTOR 

4D vector.

Return value

Type: XMVECTOR 

Returns the 4D cross product of V1, V2, and V3.

Remarks

A 4D cross-product is not well-defined. This function computes a geometric analog to the 3D cross product. XMVector4Orthogonal is another generalized ‘cross-product’ for 4D vectors.

The following pseudocode demonstrates the operation of the function:

XMVECTOR Result;

Result.x = V1.y * (V2.z * V3.w - V3.z * V2.w)
           -  V1.z * (V2.y * V3.w - V3.y * V2.w )
           +  V1.w * (V2.y * V3.z - V3.y * V2.z);

Result.y = V1.x * (V3.z * V2.w - V2.z * V3.w)
           - V1.z * (V3.x * V2.w - V2.x * V3.w)
           + V1.w * (V3.x * V2.z - V2.x * V3.z);
                                    
Result.z = V1.x * (V2.y * V3.w - V3.y * V2.w)
           - V1.y * (V2.x * V3.w - V3.x * V2.w)
           + V1.w * (V2.x * V3.y - V3.x * V2.y);

Result.w = V1.x * (V3.y * V2.z - V2.y * V3.z)
           - V1.y * (V3.x * V2.z - V2.x * V3.z)
           + V1.z * (V3.x * V2.y - V2.x * V3.y);

return Result;  

Requirements

Header: Declared in directxmath.h.