Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool CMisc::WorldToScreen(Vector3 &vOrigin, Vector3 &vScreen)
- {
- const matrix3x4& worldToScreen = Interfaces.Engine->WorldToScreenMatrix();
- float w = worldToScreen[3][0] * vOrigin[0] + worldToScreen[3][1] * vOrigin[1] + worldToScreen[3][2] * vOrigin[2] + worldToScreen[3][3];
- vScreen.z = 0;
- if(w > 0.01)
- {
- float inverseWidth = 1 / w;
- vScreen.x = (ScreenSize.Width / 2) + (0.5 * ((worldToScreen[0][0] * vOrigin[0] + worldToScreen[0][1] * vOrigin[1] + worldToScreen[0][2] * vOrigin[2] + worldToScreen[0][3]) * inverseWidth) * ScreenSize.Width + 0.5);
- vScreen.y = (ScreenSize.Height / 2) - (0.5 * ((worldToScreen[1][0] * vOrigin[0] + worldToScreen[1][1] * vOrigin[1] + worldToScreen[1][2] * vOrigin[2] + worldToScreen[1][3]) * inverseWidth) * ScreenSize.Height + 0.5);
- return true;
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement