// react to keys
void keyboard(unsigned char k, int OSG_CHECK_ARG(x), int OSG_CHECK_ARG(y))
{
    switch(k)
    {
        case 27:        
        {
            OSG::osgExit();
            exit(0);
        }
        break;
        case 'a':
        {
            OSG::beginEditCP(vol, OSG::DVRVolume::SamplingFieldMask);
            vol->setSampling(vol->getSampling() * 1.1);
            OSG::endEditCP(vol, OSG::DVRVolume::SamplingFieldMask);
            std::cout << "Sampling set to " << vol->getSampling() 
                      << std::endl;
            glutPostRedisplay();
        }
        break;
        case 'z':
        {
            OSG::beginEditCP(vol, OSG::DVRVolume::SamplingFieldMask);
            vol->setSampling(vol->getSampling() * 0.9);
            OSG::endEditCP(vol, OSG::DVRVolume::SamplingFieldMask);
            std::cout << "Sampling set to " << vol->getSampling() 
                      << std::endl;
            glutPostRedisplay();
        }
        break;
    }
}