#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