Ok Thank you Robert, >The viewer.run() method is a convenience method that is
only applicable for straight forward usage
I should have catched that one my bad sorry, I would like to know also whether
from that point onward,can I achieve the effect of ortho pan/zooming with view
matrix on my own ? I'd like to emphasize also that it's a bit intimidating for
me to ask that question to you after I've seen all of your responses on net
about that topic,Please bear with us.
One little question, you know there is scribe that can be applied to the
selected in composite viewer exampleobjects which does an overlay of edge lines
+ smooth shading on model. When I select a cow there is slight flickering in
the scene, not on total view but on the model only is this normal if there are
ways to avoid I'd like to know.
Regards,Date: Sat, 19 Jul 2014 11:31:48 +0100
From: [email protected]
To: [email protected]
Subject: Re: [osg-users] Disabling cameramanipulator in CompositeViewer
HI Sonya,
Is your code calling viewer.run()? If so there is a code block in the
CompositeView::run() method that assigns a TrackballManipulator is none is
already assigned. This exists as a fallback in case there is no control over
the camera position.
The viewer.run() method is a convenience method that is only applicable for
straight forward usage, if you want to customize the behaviour then like you
want to do with the custom handling of the view and projection matrices then
your'd what to implement your own frame loop rather than rely upon
viewer.run(), within your own frame loop you can set all the values you want.
i.e.
viewer.realize(); while(!viewer.done()) { // add code here to update the
camera matrices. viewer.frame(); }
Robert.
On 19 July 2014 11:06, Sonya Blade <[email protected]> wrote:
Hi Robert,
>What do you mean by "doesn't help"?
>By default View's are constructed without a CameraManipulator so normally one
>would not need to do a view->setCameraManipulator(0);
I'm directly modifying the compositeview example in OSG page and I only modify
the "view two" code portion
to discard the manipulator, as per your statement there is not even supposed to
be manipulator at all. But in my case trackball is still operating even after I
call "view->setCameraManipulator(NULL);" " view->setCameraManipulator(0);"
consecutively and has drastical effects in ortho view.
Code portion :// view two { osgViewer::View* view = new
osgViewer::View;
view->setName("View two"); viewer.addView(view);
view->setSceneData( rootnode );
view->getCamera()->setName("Cam two");
view->getCamera()->setViewport(new osg::Viewport(traits->width/2,0,
traits->width/2, traits->height/2));
view->getCamera()->setGraphicsContext(gc.get());
view->getCamera()->setProjectionMatrixAsOrtho2D(-50,50,-50,50);
view->setCameraManipulator(NULL);
view->setCameraManipulator(0);
view->addEventHandler(new PickHandler()); }
Regards,
Date: Sat, 19 Jul 2014 10:44:23 +0100
From: [email protected]
To: [email protected]
Subject: Re: [osg-users] Disabling cameramanipulator in CompositeViewer
Hi Sonya,
On 19 July 2014 09:16, Sonya Blade <[email protected]> wrote:
Dear All,I need to switch off the camera manipulator in one of the views in
composite viewer. Setting the view->setCameraManipulator(NULL); doesn't work
in my case, setting camera
manipulator to the 0 value doesn't help also.
What do you mean by "doesn't help"?
If there is no CameraManipulator assigned to a View then View's Camera's
ViewMatrix will be left alone completely and will be up to your application to
update directly. By default View's are constructed without a CameraManipulator
so normally one would not need to do a view->setCameraManipulator(0);
Furthermore, having calling the
view->getCamera()->setProjectionMatrixAsOrtho2D(-newx,newx,-newy,newy);
in each scrolling doesn't cause any wreak havoc or any performance penalty,
right?
It's very lightweight to update Camera's View and Projection matrix on each
frame, there is essentially negligible cost.
The only thing I'd add is that normally one doesn't implementing panning of
view by updating the projection matrix, but by updating the view matrix.
Robert.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org