rem: tball.setTranslationMode( OSGTrackball::OSGFree );
add: tball.setTranslationMode( Trackball::OSGFree );
context: int main (int argc, char **argv){	osgInit(argc,argv);	// GLUT init	glutInit(&argc, argv);	glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);	int winid = glutCreateWindow("OpenSG");	glutKeyboardFunc(key);	glutVisibilityFunc(vis);	glutReshapeFunc(reshape);	glutDisplayFunc(display);       	glutMouseFunc(mouse);   	glutMotionFunc(motion); 		glutIdleFunc(display);		// glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );		glEnable( GL_DEPTH_TEST );	glEnable( GL_LIGHTING );	glEnable( GL_LIGHT0 );	// OSG#ifdef WIN32    OSGRAWSceneFileType *pR = &(OSGRAWSceneFileType::staticThe());#endif    OSGSceneFileHandler::the().print();	// create the graph	// beacon for camera and light	    OSGNodePtr b1n = OSGNode::create();    OSGGroupPtr b1 = OSGGroup::create();	osgBeginEditCP(b1n);	b1n->setCore( b1 );	osgEndEditCP(b1n);	// transformation    OSGNodePtr t1n = OSGNode::create();    OSGTransformPtr t1 = OSGTransform::create();	osgBeginEditCP(t1n);	t1n->setCore( t1 );	t1n->addChild( b1n );	osgEndEditCP(t1n);	cam_trans = t1;	// light		OSGNodePtr dlight = OSGNode::create();	OSGDirectionalLightPtr dl = OSGDirectionalLight::create();	osgBeginEditCP(dlight);	dlight->setCore( dl );	osgEndEditCP(dlight);		osgBeginEditCP(dl);	dl->setAmbientColor( .3, .3, .3, 1 );	dl->setDiffuseColor( 1, 1, 1, 1 );	dl->setDirection(0,0,1);	dl->setBeacon( b1n);	osgEndEditCP(dl);	// root    root = OSGNode::create();    OSGGroupPtr gr1 = OSGGroup::create();	osgBeginEditCP(root);	root->setCore( gr1 );	root->addChild( t1n );	root->addChild( dlight );	osgEndEditCP(root);	// Load the file	OSGNodePtr file = OSGSceneFileHandler::the().read(argv[1]);	file->updateVolume();	// should check first. ok for now.	const OSGBoxVolume *vol = (OSGBoxVolume *)&file->getVolume();	OSGVec3f min,max;	vol->getBounds( min, max );		cout << "Volume: from " << min << " to " << max << endl;	osgBeginEditCP(dlight);	dlight->addChild( file );	osgEndEditCP(dlight);	cerr << "Tree: " << endl;	root->print();	// Camera	OSGPerspectiveCameraPtr cam = OSGPerspectiveCamera::create();	cam->setBeacon( b1n );	cam->setDegrees( 60 );	cam->setNear( 0.1 );	cam->setFar( 10000 );	// Background	OSGBackgroundPtr bkgnd = OSGBackground::create();		//bkgnd->setColor( 0,0,1 );	// Viewport	OSGViewportPtr vp = OSGViewport::create();	vp->setCamera( cam );	vp->setBackground( bkgnd );	vp->setRoot( root );	vp->setSize( 0,0, 1,1 );	// Window	cout << "GLUT winid: " << winid << endl;	OSGGLUTWindowPtr gwin;	GLint glvp[4];	glGetIntegerv( GL_VIEWPORT, glvp );	gwin = OSGGLUTWindow::create();	gwin->setWinID(winid);	gwin->setSize( glvp[2], glvp[3] );	win = gwin;	win->addPort( vp );	// Action		ract = new OSGDrawAction;	// tball	OSGVec3f pos( 0, 0, max[2] + ( max[2] - min[2] ) * 1.5 );	tball.setMode( OSGTrackball::OSGObject );	tball.setStartPosition( pos, true );	tball.setSum( true );	tball.setTranslationMode( OSGTrackball::OSGFree );	// run...    OSGFieldContainerPtr pc;    pc.dump();    pc = OSGFieldContainerFactory::the().createFieldContainer("Camera");    pc.dump();		glutMainLoop();	    return 0;}