Wrong Obj.max.x values in camera Coordsys ( Matrix3)
Hi all,
I am trying to measure an object's delta x and delta y values relative to my camera's coordsys but am getting incorrect values for both obj.max.x and obj.min.x
In this little script I am assigning the camera's (camera001's) transform.rotationpart matrix to a variable named c_rot (stands for camera rotation).
I then try measuring the obj.max.x and min.x values in this coordsys.
the delta_x value should be 100 as the box's width, height and length are all 100.
I get the following output from the listener after running the script:
"
C_rot = (matrix3 [0.579717,-0.814818,0] [0.515249,0.366583,0.774684] [-0.631226,-0.449097,0.632349] [0,0,0])
max_x = -16.3928
min_x = 16.3928
delta_x = 32.7856
OK
"
I will be using this for a zoom function in a render script I am working on, should anyone be interested I'd be happy to explain more.
Any help would be greatly appreciated, thank you! :D\
(--start of script scope if (yesnocancelbox "do you want to reset the scene? \n after reset a box and cam will be created and box size \n (in cam coordsys) will be measured" == #yes) do (resetmaxfile #noprompt ) --declaring initial variables local c_rot =0, max_x=0, min_x=0 --Create a Targetcamera -- (I copied the orientation/position from the target cam in my scene) tcam = targetcamera() tcam.transform = (matrix3 [0.579717,-0.814818,0] [0.515249,0.366583,0.774684] [-0.631226,-0.449097,0.632349] [0,0,0]) tcam.pos = [ -197.464, -140.085, 197.174 ] --Assign camera's transform.rotationpart to 'c_rot' variable c_rot = tcam.transform.rotationpart as matrix3 format "C_rot = % \n" c_rot --create box (which will be measured by script) box1 = box length:100 width:100 height:100 --create box box1.pivot = box1.center --center box's pivot box1.transform = c_rot --align box to camera in coordsys c_rot ( max_x = box1.max.x --measure obj.max.x min_x = box1.min.x --measure obj.min.x delta_x =abs ( (-1* min_x) + max_x ) --calculate delta_x format "max_x = % \n min_x = % \n delta_x = % \n" max_x min_x delta_x --print result (check listener/forum post) )--end in coordsys c_rot do )--end of script scope
Attachment | Size |
---|---|
measure_obj_in_cam_coordsys_test_script.ms | 1.35 KB |
Comments
nodeGetBoundingBox
you can use nodeGetBoundingBox
Youtube, Gumroad
Yes, still no clue
Not sure what is causing the weird measurement values in the coordsys, does indeed look like it should be a simple error. Am trying to work around it now but would still like to know what went wrong in the original code.
-Maarten
Still unsolved?
It looks very simple...