d3dx8: patch1: Implement D3DXBoxBoundProbe

H. Verbeet hverbeet at gmail.com
Mon Jul 28 03:11:56 CDT 2008

2008/7/27 David Adam <david.adam.cnrs at gmail.com>:
> +     ortho = D3DXVec3Dot(praydirection, &normal[i]);
> +     if ( ortho )
> +     {
> +      t = D3DXVec3Dot(praydirection, &normal[i]) / ortho;
This doesn't make much sense, t will always be close to zero this way.

> +    rayposition.x = -3.0f; rayposition.y = 1.0f; rayposition.z = -2.0f;
> +    result = D3DXBoxBoundProbe(&bottom_point, &top_point, &rayposition, &raydirection);
> +    ok(result == TRUE, "expected TRUE, received FALSE\n");
This succeeds because rayposition lies on one of the faces of the box.
I think it would be useful to also add a test where rayposition lies
outside the box but where the ray still intersects the box.

In general, also note that the fact that the box is always
axis-aligned means the normal is always 0 in two of the three
directions. This simplifies the equations a bit.

More information about the wine-devel mailing list