[*] 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."pull/1981/head
parent
e201fcf4f4
commit
6093769da1
|
@ -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,6 +595,10 @@ void CGLView::resizeGL(int pWidth, int pHeight)
|
|||
}
|
||||
|
||||
void CGLView::drawCoordSystem() {
|
||||
// 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);
|
||||
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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 ********************/
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue