void keyPressed(unsigned char key,int x,int y) { keyStates[key] = true; if (key=='o') { fp = !fp; printf("First Person %s.\n",fp?"on":"off"); } if (key=='f') toggleHUD(); if (key=='r') Island->Reset(); if (key=='+') Island->setRenderDistance(Island->getRenderDistance()+Island->getRegionSize()); if (key=='-') Island->setRenderDistance(Island->getRenderDistance()-Island->getRegionSize()); if (key=='t') Island->renderDetail++; if (key=='g') Island->renderDetail--; if (key=='x') speed++; if (key=='z') speed--; if (key=='h') { float x,y,z; printf("Enter position to go to <x,y,z>: "); scanf("%f %f %f",&x,&y,&z); camera->SetX(x); camera->SetY(y); camera->SetZ(z); } }
Window::Window( const QString& scene_name, QWidget* parent ) : QMainWindow( parent ) , m_content_widget( nullptr ) { m_content_widget = new ContentWidget{ scene_name, this }; QMenu* file{ menuBar()->addMenu( tr( "File" ) ) }; QMenu* view{ menuBar()->addMenu( tr( "View" ) ) }; QAction* separator{ new QAction{ this } }; separator->setSeparator( true ); // File menu actions // Load the input xml file QAction* open_scene{ new QAction{ tr( "Open..." ), this } }; open_scene->setShortcut( tr( "Ctrl+o" ) ); file->addAction( open_scene ); connect( open_scene, SIGNAL( triggered() ), m_content_widget, SLOT( openScene() ) ); // Reload the current xml file QAction* reload_scene{ new QAction{ tr( "Reload" ), this } }; reload_scene->setShortcut( tr( "Ctrl+r" ) ); file->addAction( reload_scene ); connect( reload_scene, SIGNAL( triggered() ), m_content_widget, SLOT( reloadScene() ) ); // Add a separator file->addAction( separator ); // Export an image of the scene QAction* export_image{ new QAction{ tr( "Export Image..." ), this } }; export_image->setShortcut( tr( "Ctrl+i" ) ); file->addAction( export_image ); connect( export_image, SIGNAL( triggered() ), m_content_widget, SLOT( exportImage() ) ); // Export a movie of the scene QAction* export_movie{ new QAction{ tr( "Export Movie..." ), this } }; export_movie->setShortcut( tr( "Ctrl+m" ) ); file->addAction( export_movie ); connect( export_movie, SIGNAL( triggered() ), m_content_widget, SLOT( exportMovie() ) ); // Add a separator QAction* separator2{ new QAction{ this } }; separator2->setSeparator( true ); file->addAction( separator2 ); // Export the current camera settings QAction* export_camera_settings{ new QAction{ tr( "Export Camera..." ), this } }; file->addAction( export_camera_settings ); connect( export_camera_settings, SIGNAL( triggered() ), m_content_widget, SLOT( exportCameraSettings() ) ); // View menu actions // Toggle the heads up display QAction* toggle_hud{ new QAction{ tr( "Togge HUD" ), this } }; toggle_hud->setShortcut( tr( "h" ) ); view->addAction( toggle_hud ); connect( toggle_hud, SIGNAL( triggered() ), m_content_widget, SLOT( toggleHUD() ) ); // Add a separator view->addAction( separator ); // Center the camera QAction* center_camera{ new QAction( tr( "Center Camera" ), this ) }; center_camera->setShortcut( tr( "c" ) ); view->addAction( center_camera ); connect( center_camera, SIGNAL( triggered() ), m_content_widget, SLOT( centerCamera() ) ); setCentralWidget( m_content_widget ); }