rem: m.setTransform(Pnt3f( osgcos(time / 1500) * (rdia+sdia), ((smax+smin) * .5)[1],
add: m.setTransform(Vec3f( osgcos(time / 1500) * (rdia+sdia), ((smax+smin.subZero()) * .5)[1],
context: void display(void){        Real32 time = glutGet(GLUT_ELAPSED_TIME);          // move the reflector        Pnt3f smin,smax,rmin,rmax;    Real32 sdia,rdia;        scene->updateVolume();    smin = scene->getVolume().getMin();    smax = scene->getVolume().getMax();    sdia = (smax-smin).length();        reflector->updateVolume();    rmin = reflector->getVolume().getMin();    rmax = reflector->getVolume().getMax();    rdia = (rmax-rmin).length();      Matrix m;    m.setTransform(Pnt3f( osgcos(time / 1500) * (rdia+sdia),                          ((smax+smin) * .5)[1],                          osgsin(time / 1500) * (rdia+sdia)));        beginEditCP(rtrans);    rtrans->setMatrix(m);    endEditCP(rtrans);                 // transform the cube reflection texture coords    Matrix n;    NodePtr beacon = camera->getBeacon();    beacon->getToWorld(n);        n.invert();    n[3].setValue(Vec4f(0,0,0,0));        beginEditCP(ttransform);    ttransform->setMatrix(n);    endEditCP(ttransform);        // render        mgr->redraw();    // all done, swap        glutSwapBuffers();}