MainWindow::MainWindow(Scene *scene, QWidget *parent) : QMainWindow(parent), ui_(new Ui::MainWindow), scene_(scene) { ui_->setupUi(this); gl_widget_ = new GLWidget(scene_); ui_->opengl_box->layout()->addWidget(gl_widget_); // connect(gl_widget_,SIGNAL(Changed()),this,SLOT(SceneChanged())); outer_view_widget_ = new OuterViewWidget(scene_); ui_->outerview_box->layout()->addWidget(outer_view_widget_); connect(outer_view_widget_,SIGNAL(Changed()),this,SLOT(SceneChanged())); ray_tracing_widget_ = new RayTracingWidget(scene_); ui_->raytracing_box->layout()->addWidget(ray_tracing_widget_); connect(ray_tracing_widget_,SIGNAL(Changed()),this,SLOT(SceneChanged())); connect(ui_->recursion_spinBox,SIGNAL(valueChanged(int)),ray_tracing_widget_,SLOT(RayTracingLevel(int))); const int default_fov_slider = ((100*(kDefaultFov-kMinFov))/(kMaxFov-kMinFov)); ui_->fov_slider->setValue(default_fov_slider); const int default_near_slider = ((100*(kDefaultNear-kMinNear))/(kMaxNear-kMinNear)); ui_->near_slider->setValue(default_near_slider); const int default_far_slider = ((100*(kDefaultFar-kMinFar))/(kMaxFar-kMinFar)); ui_->far_slider->setValue(default_far_slider); connect(ui_->fov_slider,SIGNAL(valueChanged(int)),this,SLOT(SetFov(int))); connect(ui_->near_slider,SIGNAL(valueChanged(int)),this,SLOT(SetNear(int))); connect(ui_->far_slider,SIGNAL(valueChanged(int)),this,SLOT(SetFar(int))); connect(ui_->light_check,SIGNAL(toggled(bool)),this,SLOT(SetLight(bool))); connect(ui_->track_ray_check,SIGNAL(toggled(bool)),this,SLOT(SetTrackRay(bool))); SetTrackRay(ui_->track_ray_check->isChecked()); connect(ui_->fast_render_check,SIGNAL(toggled(bool)),ray_tracing_widget_,SLOT(ToggleFastRenderOnly(bool))); ray_tracing_widget_->ToggleFastRenderOnly(ui_->fast_render_check->isChecked()); // connect(ui_->image_size_comboBox,SIGNAL(currentIndexChanged(int)),ray_tracing_widget_,SLOT(SelectImageSize(int))); // ray_tracing_widget_->SelectImageSize(ui_->image_size_comboBox->currentIndex()); connect(ui_->scene_comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(LoadScene(int))); // connect(ui_->load1_pushButton,SIGNAL(clicked()),this,SLOT(LoadScene1())); // connect(ui_->load2_pushButton_2,SIGNAL(clicked()),this,SLOT(LoadScene2())); // connect(gl_widget_,SIGNAL(Moving(bool)),ray_tracing_widget_,SLOT(SetMoving(bool))); connect(gl_widget_,SIGNAL(MouseMoved(QMouseEvent*)),ray_tracing_widget_,SLOT(MouseMoved(QMouseEvent*))); connect(gl_widget_,SIGNAL(MousePressed(QMouseEvent*)),ray_tracing_widget_,SLOT(MousePressed(QMouseEvent*))); connect(gl_widget_,SIGNAL(MouseReleased(QMouseEvent*)),ray_tracing_widget_,SLOT(MouseReleased(QMouseEvent*))); connect(gl_widget_,SIGNAL(Wheel(QWheelEvent*)),ray_tracing_widget_,SLOT(Wheel(QWheelEvent*))); connect(ui_->render_button,SIGNAL(clicked()),this,SLOT(FinalRender())); SceneChanged(); }
void MainWindow::LoadScene(int s) { scene_->clearScene(); switch(s){ case 1: scene_->loadDefaultScene1(); break; case 2: scene_->loadDefaultScene2(); break; default: scene_->loadScene(ui_->scene_comboBox->currentText()); break; } SceneChanged(); }
/*========================================================================*/ ObjectCallback *ObjectCallbackDefine(PyMOLGlobals * G, ObjectCallback * obj, PyObject * pobj, int state) { #ifdef _PYMOL_NOPY return NULL; #else ObjectCallback *I = NULL; if(!obj) { I = ObjectCallbackNew(G); } else { I = obj; } if(state < 0) state = I->NState; if(I->NState <= state) { VLACheck(I->State, ObjectCallbackState, state); I->NState = state + 1; } if(I->State[state].PObj) { Py_DECREF(I->State[state].PObj); } I->State[state].is_callable = PyCallable_Check(pobj); I->State[state].PObj = pobj; Py_INCREF(pobj); if(I->NState <= state) I->NState = state + 1; if(I) { ObjectCallbackRecomputeExtent(I); } SceneChanged(G); SceneCountFrames(G); return (I); #endif }
void MainWindow::SetTrackRay(const bool value) { scene_->track_one_ray = value; SceneChanged(); }
void MainWindow::SetLight(const bool value) { scene_->calculate_advanced_light = value; SceneChanged(); }
void MainWindow::SetFar(const int value) { scene_->far_plane_z = ((kMaxFar-kMinFar)*(float(value)/100.0f))+kMinFar; scene_->calcFrustum(); SceneChanged(); }
void MainWindow::SetFov(const int value) { scene_->fov = ((kMaxFov-kMinFov)*(float(value)/100.0f))+kMinFov; scene_->calcFrustum(); SceneChanged(); }