2
0
Эх сурвалжийг харах

[*] Refactoring of "draw axes" procedure.
[-] Removed not working part of code for reloading textures. That do nothing, just show checkbox. As Yoda said: "Do. Or do not. There is no try."

smalcom 7 жил өмнө
parent
commit
6093769da1

+ 8 - 31
tools/assimp_qt_viewer/glview.cpp

@@ -560,30 +560,6 @@ void CGLView::Enable_Textures(const bool pEnable)
 	}
 }
 
-void CGLView::Enable_Axes(const bool pEnable){
-	if(pEnable)
-	{
-        this->mAxesEnabled = true;
-    }
-    else
-    {
-        this->mAxesEnabled = false;
-    }
-}
-
-void CGLView::Enable_Reload_Textures(const bool pEnable)
-{
-	if(pEnable)
-	{
-        this->mReloadTexturesEnabled = true;
-//      this->mScene->ImportTextures(this->mScene->pScenePath);
-	}
-    else
-    {
-        this->mReloadTexturesEnabled = false;
-    }
-}
-
 /********************************************************************/
 /*********************** Override functions ************************/
 /********************************************************************/
@@ -619,7 +595,11 @@ void CGLView::resizeGL(int pWidth, int pHeight)
 }
 
 void CGLView::drawCoordSystem() {
-    glBindTexture(GL_TEXTURE_1D, 0);
+	// Disable lighting. Colors must be bright and colorful)
+	if ( mLightingEnabled ) glDisable( GL_LIGHTING );///TODO: display list
+
+	// For same reason - disable textures.
+	glBindTexture(GL_TEXTURE_1D, 0);
     glBindTexture(GL_TEXTURE_2D, 0);
     glBindTexture(GL_TEXTURE_3D, 0);
     glEnable(GL_COLOR_MATERIAL);
@@ -635,6 +615,8 @@ void CGLView::drawCoordSystem() {
     qglColor(QColor(Qt::yellow)), glVertex3f(0.0, 0.0, 0.0), glVertex3f(0.0, 0.0, -100000.0);
     qglColor(QColor(Qt::white));
     glEnd();
+	// Restore previous state of lighting.
+	if(mLightingEnabled) glEnable(GL_LIGHTING);
 }
 
 void CGLView::paintGL()
@@ -651,17 +633,12 @@ void CGLView::paintGL()
 	glTranslatef(-mHelper_Camera.Translation_ToScene.x, -mHelper_Camera.Translation_ToScene.y, -mHelper_Camera.Translation_ToScene.z);
 	glMultMatrixf((GLfloat*)&mHelper_Camera.Rotation_Scene);
 	// Coordinate system
-    if ( mLightingEnabled ) {
-        glDisable( GL_LIGHTING );///TODO: display list
-    }
-    if (this->mAxesEnabled == true)
+	if (mScene_AxesEnabled == true)
     {
         drawCoordSystem();
     }
 
 	glDisable(GL_COLOR_MATERIAL);
-	if(mLightingEnabled) glEnable(GL_LIGHTING);
-
 	// Scene
 	if(mScene != nullptr)
 	{

+ 8 - 8
tools/assimp_qt_viewer/glview.hpp

@@ -75,9 +75,7 @@ private:
 	};
 
 public:
-    bool mAxesEnabled = true;
-	// Textures
-    bool mReloadTexturesEnabled = false; // If true then textures will reload when the window is activated.
+
 	/// \enum ELightType
 	/// Type of light source.
 	enum class ELightType { Directional, Point, Spot };
@@ -146,6 +144,7 @@ private:
 	SBBox mScene_BBox;///< Bounding box of scene.
 	aiVector3D mScene_Center;///< Coordinates of center of the scene.
 	bool mScene_DrawBBox = false;///< Flag which control drawing scene BBox.
+	bool mScene_AxesEnabled = true;///< Flag which control drawing axes of the coordinate system.
 	// Meshes
 	size_t mHelper_Mesh_Quantity = 0;///< Quantity of meshes in scene.
 	SHelper_Mesh** mHelper_Mesh = nullptr;///< Array of pointers to helper objects for drawing mesh. Sequence of meshes are equivalent to \ref aiScene::mMeshes.
@@ -254,7 +253,11 @@ private:
 	/********************************************************************/
 
 protected:
+
+	/// \fn void drawCoordSystem()
+	/// Draw axes of the coordinate system.
     void drawCoordSystem();
+
 	/// \fn void initializeGL() override
 	/// Override function to initialise OpenGL.
 	void initializeGL() override;
@@ -307,11 +310,8 @@ public:
 	/// \param [in] pEnable - if true then enable textures, false - disable textures.
 	void Enable_Textures(const bool pEnable);
 
-	void Enable_Axes(const bool pEnable);
-	/// \fn void Enable_Textures(const bool pEnable)
-	/// Control textures drawing.
-	/// \param [in] pEnable - if true then enable textures, false - disable textures.
-	void Enable_Reload_Textures(const bool pEnable);
+	///TODO: doc
+	void Enable_Axes(const bool pEnable) { this->mScene_AxesEnabled = pEnable; }
 
 	/********************************************************************/
 	/******************** Lighting control functions ********************/

+ 1 - 14
tools/assimp_qt_viewer/mainwindow.cpp

@@ -48,7 +48,7 @@ QTime time_begin = QTime::currentTime();
 		ui->cbxLighting->setChecked(true);	mGLView->Lighting_Enable();
 		ui->cbxBBox->setChecked(false);		mGLView->Enable_SceneBBox(false);
 		ui->cbxTextures->setChecked(true);	mGLView->Enable_Textures(true);
-		ui->cbxReloadTextures->setChecked(true);	mGLView->Enable_Reload_Textures(false);
+
 		//
 		// Fill info labels
 		//
@@ -195,13 +195,6 @@ GLfloat step;
 /********************************************************************/
 /********************** Constructor/Destructor **********************/
 /********************************************************************/
-bool MainWindow::event(QEvent *e)
-{
-    if (e->type() == QEvent::WindowActivate && this->mGLView->mReloadTexturesEnabled == true) {
-	    qInfo() << "Window Activated";
-    }
-    return QWidget::event(e);
-}
 
 MainWindow::MainWindow(QWidget *parent)
 	: QMainWindow(parent), ui(new Ui::MainWindow),
@@ -378,12 +371,6 @@ void MainWindow::on_cbxDrawAxes_clicked(bool checked)
 	mGLView->updateGL();
 }
 
-void MainWindow::on_cbxReloadTextures_clicked(bool checked)
-{
-	mGLView->Enable_Reload_Textures(checked);
-	mGLView->updateGL();
-}
-
 void MainWindow::on_cbxTextures_clicked(bool checked)
 {
 	mGLView->Enable_Textures(checked);

+ 0 - 2
tools/assimp_qt_viewer/mainwindow.hpp

@@ -90,7 +90,6 @@ protected:
 	/// \param [in] pEvent - pointer to event data.
 	void keyPressEvent(QKeyEvent* pEvent) override;
 
-	bool event(QEvent*);
 public:
 
 	/********************************************************************/
@@ -134,5 +133,4 @@ private slots:
 	void on_cbxBBox_clicked(bool checked);
 	void on_cbxTextures_clicked(bool checked);
 	void on_cbxDrawAxes_clicked(bool checked);
-	void on_cbxReloadTextures_clicked(bool checked);
 };