viewport's center point in model space
viewport's center point in model space
i am using the following code to determine viewport's center point in model space:
code:
// model space center of paper space viewport
odgepoint3d camtarget = pviewport->viewtarget();
odgevector3d camtargetvec(camtarget.x,camtarget.y,camtarget.z);
odgevector3d viewdir = pviewport->viewdirection();
odgematrix3d xform = odgematrix3d:

lanetoworld(viewdir) *
odgematrix3d::rotation(pviewport->twistangle(),odgevector3d::kzaxis);
odgevector3d xvec = xform.getcsxaxis();
odgevector3d yvec = xform.getcsyaxis();
odgepoint2d center = pviewport->viewcenter();
odgevector3d wcenter = camtargetvec + viewdir + xvec * center.x + yvec * center.y;
there is something wrong with the code because for the attached file (viewcenter.dwg) wcenter is (-60009,19104,37) when it should be (106474,-11683,0). where is the error?
attached files
solution?
this seems to work:
code:
// model space center of paper space viewport
odabstractviewpeptr pview(pviewport);
odgepoint3d viewcenter = pview->target(pviewport);
viewcenter = viewcenter.project(odgeplane::kxyplane, pview->direction(pviewport));
can i trust that the above code always gives the right center point?