Hi Bob,
I don't know C#, but on the C++ side you can do:
viewer.getCameraManipulator()->setHomePosition(...);
And then
viewer.home();
Robert.
On Thu, Mar 20, 2008 at 11:55 PM, Gallaway, Robert A.
<[EMAIL PROTECTED]> wrote:
>
>
>
> I have issues with initialization of the osgTrackballManipulator. The
> problem appears when using the TaoFramework (coding in C#) so that may be a
> factor. Regardless of what initial conditions I specify for the trackball,
> the scene starts out witht the eyepoint in the XY-plane several hundred
> meters from the origin. Here is the initialization code:
>
> public void InitializeOSG()
> {
> timerRefresh.Enabled = false;
> _timer = new Osg.Timer();
> _viewer = new Viewer();
> _gw = _viewer.setUpViewerAsEmbeddedInWindow(0, 0, Width,
> Height);
>
> // Declare and allocate a trackball manipulator to control the
> view
> TrackballManipulator l_TrackballManipulator = new
> TrackballManipulator();
>
> // Use a quaternion to setup the trackball
> l_TrackballManipulator.setCenter(new Osg.Vec3d(0.0, 0.0, 0.0));
> Osg.Quat initRotation = new Osg.Quat();
> initRotation.makeRotate( DegToRad(45.0), 0.0, 0.0, 1.0 ); //
> Tried both degrees and radians here… no difference
>
> l_TrackballManipulator.setRotation( initRotation ); //
> SEEMS TO DO NOTHING
> l_TrackballManipulator.setDistance(1.0); //
> SEEMS TO DO NOTHING
> l_TrackballManipulator.setMinimumZoomScale(0.0); // Preclude
> pushing the TO point near the target
>
> // Apply the trackball manipulator to the camera manipulator
> _viewer.setCameraManipulator( l_TrackballManipulator);
>
> // Specify single-threaded viewing
> _viewer.setThreadingModel(Viewer.ThreadingModel.SingleThreaded);
> _viewer.setSceneData(new Osg.Group());
> _viewer.realize();
> timerRefresh.Enabled = true;
> _viewer.frame(_timer.time_s()); //!< Draw one time to kick out
> the old OpenGL buffer
>
> // DEBUG: Get trackball manipulators back to see how they are
> really set...
> Osg.Vec3d center = l_TrackballManipulator.getCenter();
> double distance = l_TrackballManipulator.getDistance();
> double zoomScale = l_TrackballManipulator.getMinimumZoomScale();
> }
>
> I would welcome any ideas about why this code does not establish the initial
> view…
>
> Bob Gallaway
> _______________________________________________
> 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