Robert,

Thank you! That works great!

I (of course) first tried a modification of that by doing the
setHomePosition(...) on the TrackballManipulator before attaching it to
the viewer, then doing the viewer->home() call... This did not work.
Any idea why? 

Thanks again!

Bob Gallaway 

-----Original Message-----
From: Robert Osfield [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 21, 2008 5:07 AM
To: OpenSceneGraph Users
Subject: Re: [osg-users] TrackballManipulator is not responding to
commands...

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

Reply via email to