void Viewer::init() { glewInit(); //shader_vert="toon.vert"; shader_frag = "toon.frag"; //shader_vert="vertexshader.txt"; shader_frag = "fragmentshader.txt"; //InitializeProgram(); //initShader_ter(); restoreStateFromFile(); glEnable (GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_LIGHTING); glEnable(GL_NORMALIZE); glCullFace(GL_BACK); glEnable(GL_CULL_FACE); glEnable(GL_TEXTURE_2D); glShadeModel(GL_SMOOTH); glEnable(GL_COLOR_MATERIAL); glPixelStorei(GL_UNPACK_ALIGNMENT, 4); // 4-byte pixel alignment // pretty rendering // fast rendering glEnable(GL_LINE_SMOOTH); glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST); light.setLight(); mat.setMaterial(); mySky.Set( 0,0,0, 300000.0f ); mySky.LoadTextures(":sky"); emit updateTasklabel(QString::number(curTerr+1)+"/"+QString::number(terrains.size())); initShader_phong(); QVector4D ltmp(light.position[0],light.position[1],light.position[2],light.position[3]); ltmp.normalize(); GLfloat lpos[4] = {ltmp.x(),ltmp.y(),ltmp.z(),ltmp.w()}; glProgramEnvParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, 1, lpos); //QVector<QString> tlist; //tlist.push_back("CD.ter"); //tlist.push_back("terr_gcut.ter"); // /addTerrain("CD.ter"); //addTerrain("terr_gcut.ter"); help(); //DrawInit(); //qWarning("start drawing"); }
void QGCodeViewer::init() { setShortcut(DISPLAY_FPS, Qt::CTRL+Qt::Key_F); setShortcut(DRAW_GRID, 0); setManipulatedFrame(new ManipulatedFrame()); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glEnable(GL_DEPTH_TEST); glDrawBuffer(GL_BACK); //glDisable(GL_CULL_FACE); //glLineStipple(2, 0xFFFF); glDisable(GL_LIGHTING); glClearColor(0.25,0.25,0.25,0); //glPixelStorei(GL_UNPACK_ALIGNMENT, 1); //glLineWidth(3); //setGridIsDrawn(); if (!restoreStateFromFile()) { showEntireScene(); } setMouseBinding(Qt::AltModifier, Qt::RightButton, SHOW_ENTIRE_SCENE, true, Qt::MidButton); clear(); //startAnimation(); }
void Viewer::init() { // Restore previous viewer state. restoreStateFromFile(); initializeOpenGLFunctions(); // Define 'Control+Q' as the new exit shortcut (default was 'Escape') setShortcut(CGAL::qglviewer::EXIT_VIEWER, Qt::CTRL+Qt::Key_Q); // Add custom key description (see keyPressEvent). setKeyDescription(Qt::Key_W, "Toggles wire frame display"); setKeyDescription(Qt::Key_F, "Toggles flat shading display"); setKeyDescription(Qt::Key_E, "Toggles edges display"); setKeyDescription(Qt::Key_V, "Toggles vertices display"); setKeyDescription(Qt::Key_N, "Inverse direction of normals"); setKeyDescription(Qt::Key_Plus, "Increase size of edges"); setKeyDescription(Qt::Key_Minus, "Decrease size of edges"); setKeyDescription(Qt::Key_Plus+Qt::ShiftModifier, "Increase size of vertices"); setKeyDescription(Qt::Key_Minus+Qt::ShiftModifier, "Decrease size of vertices"); setKeyDescription(Qt::Key_PageDown, "Increase light (all colors, use shift/alt/ctrl for one rgb component)"); setKeyDescription(Qt::Key_PageUp, "Decrease light (all colors, use shift/alt/ctrl for one rgb component)"); // Light default parameters glLineWidth(size_edges); glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(1.0f,1.0f); glClearColor(1.0f,1.0f,1.0f,0.0f); glDisable(GL_BLEND); glDisable(GL_LINE_SMOOTH); glDisable(GL_POLYGON_SMOOTH_HINT); glBlendFunc(GL_ONE, GL_ZERO); glHint(GL_LINE_SMOOTH_HINT, GL_FASTEST); compile_shaders(); }
void Viewer::init() { // Restore previous viewer state. restoreStateFromFile(); initializeOpenGLFunctions(); // Define 'Control+Q' as the new exit shortcut (default was 'Escape') setShortcut(EXIT_VIEWER, Qt::CTRL+Qt::Key_Q); // Add custom key description (see keyPressEvent). setKeyDescription(Qt::Key_W, "Toggles wire frame display"); setKeyDescription(Qt::Key_F, "Toggles flat shading display"); setKeyDescription(Qt::Key_E, "Toggles edges display"); setKeyDescription(Qt::Key_V, "Toggles vertices display"); // Light default parameters ::glLineWidth(1.4f); ::glPointSize(4.f); ::glEnable(GL_POLYGON_OFFSET_FILL); ::glPolygonOffset(1.0f,1.0f); ::glClearColor(1.0f,1.0f,1.0f,0.0f); ::glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); ::glEnable(GL_LIGHTING); ::glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); ::glShadeModel(GL_FLAT); ::glDisable(GL_BLEND); ::glDisable(GL_LINE_SMOOTH); ::glDisable(GL_POLYGON_SMOOTH_HINT); ::glBlendFunc(GL_ONE, GL_ZERO); ::glHint(GL_LINE_SMOOTH_HINT, GL_FASTEST); compile_shaders(); }
void TrackballViewer::resetCamera() { // assume only one dispObjects MainCanvas exist here Bound* scene_bounds = dynamic_cast<TrackballCanvas*>(dispObjects[0])->getBoundBox(); qglviewer::Vec scene_center; scene_center = qglviewer::Vec((scene_bounds->minX + scene_bounds->maxX) / 2, (scene_bounds->minY + scene_bounds->maxY) / 2, (scene_bounds->minZ + scene_bounds->maxZ) / 2); setSceneCenter(scene_center); float x_span = (scene_bounds->maxX - scene_bounds->minX) / 2; float y_span = (scene_bounds->maxY - scene_bounds->minY) / 2; float z_span = (scene_bounds->maxZ - scene_bounds->minZ) / 2; float scene_radius = x_span>y_span ? (x_span > z_span ? x_span : z_span) : (y_span > z_span ? y_span : z_span); scene_radius *= 1.5; setSceneRadius(scene_radius); camera()->fitSphere(scene_center, scene_radius); setStateFileName(QString((dynamic_cast<TrackballCanvas*>(dispObjects[0])->getFilePath()+"/camera_info.xml").c_str())); if (restoreStateFromFile()) std::cout << "Load camera info successes...\n"; else std::cout << "Load camera info failed...\n"; // set the scene in MainCanvasViewer syncCamera(); main_canvas_viewer->setSceneCenter(sceneCenter()); main_canvas_viewer->setSceneRadius(sceneRadius()); main_canvas_viewer->camera()->setZClippingCoefficient(camera()->zClippingCoefficient()); }
void MyQGLViewer::init() { // call the scene init method restoreStateFromFile(); _myScene->init(); }
void KnotsViewer::init() { glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // Restore previous viewer state. restoreStateFromFile(); setBackgroundColor(QColor(255,255,255,0)); setMouseBinding(Qt::NoModifier, Qt::LeftButton, NO_CLICK_ACTION); setMouseBinding(Qt::ShiftModifier, Qt::LeftButton, CAMERA, SCREEN_ROTATE);//重新设置LeftButton,旋转屏幕或者物体 }
void SFMViewer::init() { // Restore previous viewer state. restoreStateFromFile(); setFPSIsDisplayed(); setSceneBoundingBox(qglviewer::Vec(-50,-50,-50), qglviewer::Vec(50,50,50)); showEntireScene(); }
void ViewerWidget::init() { // Restore previous viewer state. restoreStateFromFile(); // Light initialization: glEnable(GL_LIGHT0); float pos[4] = {-1.0, 1.0, 1.0, 0.0}; // Directional light glLightfv(GL_LIGHT0, GL_POSITION, pos); // background color defaults to white this->setBackgroundColor( QColor(255,255,255) ); this->qglClearColor( this->backgroundColor() ); }
void PointCloudViewer::init() { glEnable(GL_POINT_SMOOTH); glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); glEnable(GL_BLEND); glPointSize(3); glLineWidth(10); setMouseTracking(true); texid = bindTexture(QImage(rgbImg->ptr(), rgbImg->cols, rgbImg->rows, QImage::Format_RGB888), GL_TEXTURE_2D, GL_RGB, QGLContext::LinearFilteringBindOption); initBackground(); initLights(); initBuffers(); restoreStateFromFile(); setAnimationPeriod(10); startAnimation(); }
virtual void init(){ restoreStateFromFile(); glDisable(GL_LIGHTING); setGridIsDrawn(false); //help(); setAnimationPeriod(0); // fast as possible startAnimation(); showEntireScene(); // Make world axis visible setAxisIsDrawn(true); // Move camera according to viewer type (on X, Y or Z axis) camera()->setPosition(qglviewer::Vec(2.0,2.0,2.0)); camera()->setUpVector(qglviewer::Vec(0.0,0.0,1.0)); camera()->lookAt(sceneCenter()); /* // Forbid rotation qglviewer::WorldConstraint* constraint = new qglviewer::WorldConstraint(); constraint->setRotationConstraintType(qglviewer::AxisPlaneConstraint::FORBIDDEN); camera()->frame()->setConstraint(constraint); */ }
int QGLViewer::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QGLWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: viewerInitialized(); break; case 1: drawNeeded(); break; case 2: drawFinished((*reinterpret_cast< bool(*)>(_a[1]))); break; case 3: animateNeeded(); break; case 4: helpRequired(); break; case 5: axisIsDrawnChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 6: gridIsDrawnChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 7: FPSIsDisplayedChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 8: textIsEnabledChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 9: cameraIsEditedChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 10: stereoChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 11: pointSelected((*reinterpret_cast< const QMouseEvent*(*)>(_a[1]))); break; case 12: mouseGrabberChanged((*reinterpret_cast< qglviewer::MouseGrabber*(*)>(_a[1]))); break; case 13: setAxisIsDrawn((*reinterpret_cast< bool(*)>(_a[1]))); break; case 14: setAxisIsDrawn(); break; case 15: setGridIsDrawn((*reinterpret_cast< bool(*)>(_a[1]))); break; case 16: setGridIsDrawn(); break; case 17: setFPSIsDisplayed((*reinterpret_cast< bool(*)>(_a[1]))); break; case 18: setFPSIsDisplayed(); break; case 19: setTextIsEnabled((*reinterpret_cast< bool(*)>(_a[1]))); break; case 20: setTextIsEnabled(); break; case 21: setCameraIsEdited((*reinterpret_cast< bool(*)>(_a[1]))); break; case 22: setCameraIsEdited(); break; case 23: toggleAxisIsDrawn(); break; case 24: toggleGridIsDrawn(); break; case 25: toggleFPSIsDisplayed(); break; case 26: toggleTextIsEnabled(); break; case 27: toggleCameraIsEdited(); break; case 28: setBackgroundColor((*reinterpret_cast< const QColor(*)>(_a[1]))); break; case 29: setForegroundColor((*reinterpret_cast< const QColor(*)>(_a[1]))); break; case 30: setSceneRadius((*reinterpret_cast< float(*)>(_a[1]))); break; case 31: setSceneCenter((*reinterpret_cast< const qglviewer::Vec(*)>(_a[1]))); break; case 32: setSceneBoundingBox((*reinterpret_cast< const qglviewer::Vec(*)>(_a[1])),(*reinterpret_cast< const qglviewer::Vec(*)>(_a[2]))); break; case 33: showEntireScene(); break; case 34: setCamera((*reinterpret_cast< qglviewer::Camera*const(*)>(_a[1]))); break; case 35: setManipulatedFrame((*reinterpret_cast< qglviewer::ManipulatedFrame*(*)>(_a[1]))); break; case 36: setMouseGrabber((*reinterpret_cast< qglviewer::MouseGrabber*(*)>(_a[1]))); break; case 37: setFullScreen((*reinterpret_cast< bool(*)>(_a[1]))); break; case 38: setFullScreen(); break; case 39: setStereoDisplay((*reinterpret_cast< bool(*)>(_a[1]))); break; case 40: setStereoDisplay(); break; case 41: toggleFullScreen(); break; case 42: toggleStereoDisplay(); break; case 43: toggleCameraMode(); break; case 44: saveSnapshot((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 45: saveSnapshot((*reinterpret_cast< bool(*)>(_a[1]))); break; case 46: saveSnapshot(); break; case 47: saveSnapshot((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 48: saveSnapshot((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 49: setSnapshotFileName((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 50: setSnapshotFormat((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 51: setSnapshotCounter((*reinterpret_cast< int(*)>(_a[1]))); break; case 52: setSnapshotQuality((*reinterpret_cast< int(*)>(_a[1]))); break; case 53: { bool _r = openSnapshotFormatDialog(); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 54: snapshotToClipboard(); break; case 55: copyBufferToTexture((*reinterpret_cast< GLint(*)>(_a[1])),(*reinterpret_cast< GLenum(*)>(_a[2]))); break; case 56: copyBufferToTexture((*reinterpret_cast< GLint(*)>(_a[1]))); break; case 57: setAnimationPeriod((*reinterpret_cast< int(*)>(_a[1]))); break; case 58: startAnimation(); break; case 59: stopAnimation(); break; case 60: animate(); break; case 61: toggleAnimation(); break; case 62: help(); break; case 63: aboutQGLViewer(); break; case 64: select((*reinterpret_cast< const QMouseEvent*(*)>(_a[1]))); break; case 65: select((*reinterpret_cast< const QPoint(*)>(_a[1]))); break; case 66: setSelectBufferSize((*reinterpret_cast< int(*)>(_a[1]))); break; case 67: setSelectRegionWidth((*reinterpret_cast< int(*)>(_a[1]))); break; case 68: setSelectRegionHeight((*reinterpret_cast< int(*)>(_a[1]))); break; case 69: setSelectedName((*reinterpret_cast< int(*)>(_a[1]))); break; case 70: setShortcut((*reinterpret_cast< KeyboardAction(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 71: setKeyboardAccelerator((*reinterpret_cast< KeyboardAction(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 72: setKeyDescription((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break; case 73: setKeyFrameKey((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 74: setPlayKeyFramePathStateKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 75: setPlayPathStateKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 76: setAddKeyFrameStateKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 77: setPathKey((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 78: setPathKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 79: setPlayPathKeyboardModifiers((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1]))); break; case 80: setAddKeyFrameKeyboardModifiers((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1]))); break; case 81: setMouseBinding((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3])),(*reinterpret_cast< bool(*)>(_a[4]))); break; case 82: setMouseBinding((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3]))); break; case 83: setWheelBinding((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3])),(*reinterpret_cast< bool(*)>(_a[4]))); break; case 84: setWheelBinding((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3]))); break; case 85: setHandlerKeyboardModifiers((*reinterpret_cast< MouseHandler(*)>(_a[1])),(*reinterpret_cast< QtKeyboardModifiers(*)>(_a[2]))); break; case 86: setHandlerStateKey((*reinterpret_cast< MouseHandler(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 87: setMouseStateKey((*reinterpret_cast< MouseHandler(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 88: initFromDOMElement((*reinterpret_cast< const QDomElement(*)>(_a[1]))); break; case 89: saveStateToFile(); break; case 90: { bool _r = restoreStateFromFile(); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 91: setStateFileName((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 92: saveToFile((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 93: saveToFile(); break; case 94: { bool _r = restoreFromFile((*reinterpret_cast< const QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 95: { bool _r = restoreFromFile(); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 96: resetVisualHints(); break; case 97: delayedFullScreen(); break; case 98: hideMessage(); break; default: ; } _id -= 99; } return _id; }
/****************************************************************************** * Initialize the viewer ******************************************************************************/ void SampleViewer::init() { // GLEW initialization GLenum error = glewInit(); if ( error != GLEW_OK ) { // Problem : glewInit failed fprintf( stderr, "Error: %s\n", glewGetErrorString( error ) ); // Exit program exit( 1 ); } // Initialize the GigaVoxels pipeline _sampleCore = new SampleCore(); _sampleCore->init(); // Initialize the transfer function editor _transferFunctionEditor = new Qtfe( NULL ); // Modify transfer function window flags to always stay on top Qt::WindowFlags windowFlags = _transferFunctionEditor->windowFlags(); windowFlags |= Qt::WindowStaysOnTopHint; #ifndef WIN32 windowFlags |= Qt::X11BypassWindowManagerHint; #endif _transferFunctionEditor->setWindowFlags( windowFlags ); // Do connection(s) connect( _transferFunctionEditor, SIGNAL( functionChanged() ), SLOT( onFunctionChanged() ) ); // Try to load a transfer function from file QString dataRepository = QCoreApplication::applicationDirPath() + QDir::separator() + QString( "Data" ); QString filename = dataRepository + QDir::separator() + QString( "TransferFunctions" ) + QDir::separator() + QString( "TransferFunction_Qtfe_01.xml" ); QFileInfo fileInfo( filename ); if ( ( ! fileInfo.isFile() ) || ( ! fileInfo.isReadable() ) ) { // Idea // Maybe use Qt function : bool QFileInfo::permission ( QFile::Permissions permissions ) const // TO DO // Handle error : free memory and exit // ... std::cout << "ERROR. Check filename : " << filename.toLatin1().constData() << std::endl; } bool hasTransferFunctionBeenLoaded = _transferFunctionEditor->load( filename ); if ( ! hasTransferFunctionBeenLoaded ) { // LOG QString logMessage = tr( "Transfer function has not been loaded..." ); std::cout << logMessage.toLatin1().constData() << std::endl; // Initialize a default transfer function // 4 channels [R,G,B,A] bound to 1 output _transferFunctionEditor->addChannels( 4 ); _transferFunctionEditor->addOutputs( 1 ); _transferFunctionEditor->bindChannelToOutputR( 0, 0 ); _transferFunctionEditor->bindChannelToOutputG( 1, 0 ); _transferFunctionEditor->bindChannelToOutputB( 2, 0 ); _transferFunctionEditor->bindChannelToOutputA( 3, 0 ); // Tell GigaVoxels that transfer function has been modified onFunctionChanged(); // LOG logMessage = tr( "A default one has been created." ); std::cout << logMessage.toLatin1().constData() << std::endl; } // Show the transfer function editor _transferFunctionEditor->resize( 367, 546 ); _transferFunctionEditor->show(); // QGLViewer restoration mechanism restoreStateFromFile(); // Initialize light setLight( 1.08f, 1.99f ); setMouseTracking( true ); setAnimationPeriod( 0 ); startAnimation(); // Viewer settings : // - sets the backgroundColor() of the viewer and calls qglClearColor() setBackgroundColor( QColor( 150, 150, 150 ) ); // Update GigaVoxels clear color _sampleCore->setClearColor( 150, 150, 150, 255 ); }
void init() { restoreStateFromFile(); }