Calculates coordinates of the hit points for a block of rays from the multiple origins.
IppStatus ipprHitPoint3DEpsMO_32f_M(const Ipp32f* const pOrg[3], const Ipp32f* const pDirection[3], const Ipp32f* pDistance, const Ipp32s* pMask, Ipp32f* pSurfHit[3], int len, Ipp32f eps);
pOrg |
Pointer to the array of pointers to separate coordinate (x, y, z) planes of the origin points. |
pDirection |
Pointer to the array of pointers to separate coordinate (x, y, z) planes of the ray's directions. |
pDistance |
Pointer to the generalized distance from origin to intersection point. |
pMask |
Pointer to the array of masks. |
pSurfHit |
Pointer to the array of pointers to a separate coordinate (x, y, z) planes of the intersection points. |
len |
Number of rays in the block. |
eps |
Tolerance value. |
The function ipprHitPoint3DEpsMO is declared in the ippr.h file. For an array of rays from the multiple origins pOrg this function calculates the explicit coordinates of the intersection points where the pMask[ i] is greater than or equal to 0. The array of mask is the array of indexes of the triangles that intersect with the ray.
The tolerance value eps help to avoid the numerical imprecision in the intersection defining.
For example, for reflected rays value eps = 0.999f, and for refracted and transparency rays value eps = 1.001f.
pSurfHit[i][0] = pOrg[i][0] + pDirection [i][0] * eps * pDistance[i][0]
pSurfHit[i][1] = pOrg[i][1] + pDirection [i][1] * eps * pDistance[i][1]
pSurfHit[i][2] = pOrg[i][2] + pDirection [i][2] * eps * pDistance[i][2]
where i = 0..(len - 1).
ippStsNoErr |
Indicates no error. Any other value indicates an error or a warning. |
ippStsNullPtrErr |
Indicates an error condition if one of the specified pointers is NULL. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.