rem: bool amberblue = false;
context: int main(int argc, char **argv){    osgInit(argc,argv);    // GLUT init    glutInit(&argc, argv);        bool stereobuffer = false;    bool amberblue = false;    if(argc >= 2 && !strcmp(argv[1],"-s"))    {        stereobuffer = true;        --argc, ++argv;    }    if(argc >= 2 && !strcmp(argv[1],"-a"))    {        amberblue = true;        --argc, ++argv;    }            glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE |                        (stereobuffer?GLUT_STEREO:0) );        glutCreateWindow("OpenSG");        glutReshapeFunc(reshape);    glutDisplayFunc(display);    glutIdleFunc(display);    glutMouseFunc(mouse);    glutMotionFunc(motion);    glutKeyboardFunc(keyboard);    PassiveWindowPtr pwin=PassiveWindow::create();    pwin->init();    // create the scene    NodePtr scene;        if(argc > 1)    {        scene = SceneFileHandler::the().read(argv[1]);    }    else    {        scene = makeBox(2,2,2, 1,1,1);    }    // create the SimpleSceneManager helper    mgr = new SimpleSceneManager;    // create the window and initial camera/viewport    mgr->setWindow(pwin );    // tell the manager what to manage    mgr->setRoot  (scene);        cam = OffCenterPerspectiveCamera::create();        // now change the camera    ViewportPtr vp = pwin->getPort(0);        PerspectiveCameraPtr ocam = PerspectiveCameraPtr::dcast(vp->getCamera());    beginEditCP(cam);    cam->setFov(ocam->getFov());    cam->setAspect(ocam->getAspect());    cam->setBeacon(ocam->getBeacon());    cam->setNear(ocam->getNear());    cam->setFar(ocam->getFar());    endEditCP  (cam);        beginEditCP(vp);    vp->setCamera(cam);    endEditCP(vp);        mgr->showAll();        // GLUT main loop    glutMainLoop();    return 0;}