#include <nnsys/g3d/util.h>
int
NNS_G3dScrPosToWorldLine(
int px,
int py,
VecFx32* pNear,
VecFx32* pFar
);
| px | Pointer to the x coordinate on the screen |
| py | Pointer to the y coordinate on the screen |
| pNear | Position in the world coordinate system of the point on the near clip plane corresponding to the screen coordinates |
| pFar | Position in the world coordinate system of the point on the far clip plane corresponding to the screen coordinates |
Returns 0 if px and py are inside the viewport. Returns -1 if they are outside of the viewport.
Returns the point on the near and far clip planes corresponding to the position on the screen in the world coordinate system. When pFar is NULL, the calculation of the point on the far clip plane is omitted. The camera matrix and the projection matrix must be configured in the NNS_G3dGlb structure. Even if the return value is -1, values are stored in *pNear and *pFar, and can be used as a directional guide. Bear in mind that for perspective projections, the *pFar value will have a larger margin of error than *pNear. This is because the far clip plane is bigger than the near clip plane, so when looking for the original point from the point in the normalized screen coordinate system, the far plane is enlarged more than the near plane. When applying a horizontal offset to the 3D plane by using the Nitro-SDK G3X_SetHOffset function, it is necessary to move the x coordinate of the arguments by the amount of the offset, in advance.
NNS_G3dLocalOriginToScrPos, NNS_G3dWorldPosToScrPos
2004/11/01 Initial version.
CONFIDENTIAL