Published in: Maxscript
|
|
|
Original code by Borislav 'Bobo' Petrov
Expand |
Embed | Plain Text
( fn mapWorldToScreen thePoint = ( local thePos = thePoint * viewport.getTM() local screenSize = getViewSize() local screen_origin = mapScreenToView [0,0] (thePos.z) screenSize local end_screen = mapScreenToView screenSize (thePos.z) screenSize local world_size = screen_origin-end_screen local x_aspect = screenSize.x/(abs world_size.x) local y_aspect = screenSize.y/(abs world_size.y) point3 (x_aspect*(thePos.x-screen_origin.x)) (-(y_aspect*(thePos.y-screen_origin.y))) 0 ) -- now iterate over each selected object and display it's viewport position for theObj in selection do ( gw.setTransform (matrix3 1) gw.wText (mapWorldToScreen theObj.pos) theObj.name color:green ) gw.enlargeUpdateRect #whole gw.updateScreen() )
Comments
Subscribe to comments
You need to login to post a comment.


An alternative method using the gw struct:
pos = object.pos gw.setTransform(Matrix3 1) screenpos = gw.wTranspoint pos
-- screenpos == [0,0] in the top-left corner
how do you do the opposite?