From: <le...@us...> - 2007-01-12 16:12:09
|
Revision: 150 http://svn.sourceforge.net/qcell/?rev=150&view=rev Author: lessm Date: 2007-01-12 08:12:03 -0800 (Fri, 12 Jan 2007) Log Message: ----------- - Simulation in 2D text mode work properly(performance tweak) Modified Paths: -------------- trunk/qcell/baseheaders/Renderer.h trunk/qcell/baseheaders/simulationwindow.h trunk/qcell/basesources/CalculationData.cpp trunk/qcell/basesources/Renderer.cpp trunk/qcell/basesources/simulationwindow.cpp Modified: trunk/qcell/baseheaders/Renderer.h =================================================================== --- trunk/qcell/baseheaders/Renderer.h 2007-01-11 22:13:54 UTC (rev 149) +++ trunk/qcell/baseheaders/Renderer.h 2007-01-12 16:12:03 UTC (rev 150) @@ -18,6 +18,7 @@ { bool hide; QColor color; + QColor textColor; float floatColorDiffuse[4], floatColorSpectacular[4]; int primitiveID; QChar textSybmol; Modified: trunk/qcell/baseheaders/simulationwindow.h =================================================================== --- trunk/qcell/baseheaders/simulationwindow.h 2007-01-11 22:13:54 UTC (rev 149) +++ trunk/qcell/baseheaders/simulationwindow.h 2007-01-12 16:12:03 UTC (rev 150) @@ -38,7 +38,7 @@ QToolBox *tools; - bool table2DUpdateRequest, table1DUpdateRequest, graph2DUpdateRequest; + char table2DUpdateRequest, table1DUpdateRequest, graph2DUpdateRequest; QGraphicsView *graphicsView2D; QGraphicsScene *graphicsScene2D; @@ -54,7 +54,7 @@ protected: - void update2DTable(void); + void update2DTable(bool forceUpdate=0); void update2DGraph(void); void update1DTable(void); void update1DTableMem(void); Modified: trunk/qcell/basesources/CalculationData.cpp =================================================================== --- trunk/qcell/basesources/CalculationData.cpp 2007-01-11 22:13:54 UTC (rev 149) +++ trunk/qcell/basesources/CalculationData.cpp 2007-01-12 16:12:03 UTC (rev 150) @@ -687,6 +687,7 @@ bool CalculationData::setFromXmlString(QString *xmlString) { + return 1; } Modified: trunk/qcell/basesources/Renderer.cpp =================================================================== --- trunk/qcell/basesources/Renderer.cpp 2007-01-11 22:13:54 UTC (rev 149) +++ trunk/qcell/basesources/Renderer.cpp 2007-01-12 16:12:03 UTC (rev 150) @@ -62,8 +62,12 @@ glBegin(GL_LINES); glColor3f(1.0f, 1.0f, 1.0f); - float mx = (float)getStorage()->getSizeX() / 2.0f, my = (float)getStorage()->getSizeY() / 2.0f, mz = (float)getStorage()->getSizeZ() / 2.0f; + //float mx = (float)getStorage()->getSizeX() / 2.0f, my = (float)getStorage()->getSizeY() / 2.0f, mz = (float)getStorage()->getSizeZ() / 2.0f; + float mx = 0.01f; + float my = 0.01f; + float mz = 0.01f; + mov = (float)getStorage()->getSizeY(); for(int y=0;y<getStorage()->getSizeY() + 1;++y) { @@ -499,14 +503,18 @@ if(index<symbolsMap.size()) { symbolsMap[index].color = color; + symbolsMap[index].textColor.setRed(255 - color.red()); + symbolsMap[index].textColor.setGreen(255 - color.green()); + symbolsMap[index].textColor.setBlue(255 - color.blue()); + symbolsMap[index].floatColorSpectacular[0] = symbolsMap[index].floatColorDiffuse[0] = (float)color.red() / 255.0f; symbolsMap[index].floatColorSpectacular[1] = symbolsMap[index].floatColorDiffuse[1] = (float)color.green() / 255.0f; symbolsMap[index].floatColorSpectacular[2] = symbolsMap[index].floatColorDiffuse[2] = (float)color.blue() / 255.0f; symbolsMap[index].floatColorSpectacular[3] = symbolsMap[index].floatColorDiffuse[3] = 1.0f; - symbolsMap[index].floatColorSpectacular[0] += symbolsMap[index].floatColorDiffuse[0] * 0.1f; - symbolsMap[index].floatColorSpectacular[1] += symbolsMap[index].floatColorDiffuse[1] * 0.1f; - symbolsMap[index].floatColorSpectacular[2] += symbolsMap[index].floatColorDiffuse[2] * 0.1f; + symbolsMap[index].floatColorSpectacular[0] += symbolsMap[index].floatColorDiffuse[0] * 0.02f; + symbolsMap[index].floatColorSpectacular[1] += symbolsMap[index].floatColorDiffuse[1] * 0.02f; + symbolsMap[index].floatColorSpectacular[2] += symbolsMap[index].floatColorDiffuse[2] * 0.02f; return 1; } return 0; Modified: trunk/qcell/basesources/simulationwindow.cpp =================================================================== --- trunk/qcell/basesources/simulationwindow.cpp 2007-01-11 22:13:54 UTC (rev 149) +++ trunk/qcell/basesources/simulationwindow.cpp 2007-01-12 16:12:03 UTC (rev 150) @@ -109,9 +109,12 @@ void simulationWindow::paintEvent(QPaintEvent * event) { - if(ui.view2D->isVisible() && table2DUpdateRequest) + if(ui.view2D->isVisible() && table2DUpdateRequest>0) { - update2DTable(); + if(table2DUpdateRequest==1) + update2DTable(); + else + update2DTable(1); table2DUpdateRequest = 0; } if(ui.view2DGraph->isVisible() && graph2DUpdateRequest) @@ -132,17 +135,23 @@ } } -void simulationWindow::update2DTable(void) +void simulationWindow::update2DTable(bool forceUpdate) { + bool showProgres=0; + bool needUpdate=0; int index; + QString tmpString; + SYMBOL symbol; QTableWidgetItem *item; QProgressDialog progresDialog; + if(forceUpdate) + { + progresDialog.setLabelText("Generating view pleas wait..."); + progresDialog.setMaximum(renderer->getStorage()->getSizeY()); + progresDialog.show(); + showProgres = 1; + } - progresDialog.setLabelText("Generating view pleas wait..."); - progresDialog.setMaximum(renderer->getStorage()->getSizeY()); - - progresDialog.show(); - if(table2D->columnCount()!= renderer->getStorage()->getSizeX() || table2D->rowCount()!= renderer->getStorage()->getSizeY()) { ui.Grid2DZplane->setRange(0, renderer->getStorage()->getSizeZ()-1); @@ -162,29 +171,28 @@ index = renderer->getStorage()->getValueAt_i(x, y, z_plane); if(index>=renderer->getSymbolCount()) index = renderer->getSymbolCount() - 1; + symbol = renderer->getSymbol(index); if(ui.Grid2DValues->isChecked()) item = new QTableWidgetItem(tr("%1").arg(index)); else - item = new QTableWidgetItem(tr("%1").arg(renderer->getSymbol(index).textSybmol)); + item = new QTableWidgetItem(symbol.textSybmol); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); item->setTextAlignment(Qt::AlignCenter); - item->setTextColor(Qt::black); + if(ui.Grig2DColors->isChecked()) { - item->setBackgroundColor(renderer->getSymbol(index).color); - if(item->textColor() == item->backgroundColor()) - { - if(item->backgroundColor()==Qt::black) - item->setTextColor(Qt::white); - else - item->setTextColor(Qt::black); - } + item->setBackgroundColor(symbol.color); + item->setTextColor(symbol.textColor); } else + { + item->setTextColor(Qt::black); item->setBackgroundColor(Qt::white); + } table2D->setItem(y, x, item); } - progresDialog.setValue(y); + if(forceUpdate) + progresDialog.setValue(y); } } else @@ -193,31 +201,46 @@ { for(int x=0;x<renderer->getStorage()->getSizeX();++x) { + needUpdate = forceUpdate; index = renderer->getStorage()->getValueAt_i(x, y, z_plane); if(index>=renderer->getSymbolCount()) index = renderer->getSymbolCount() - 1; + symbol = renderer->getSymbol(index); item = table2D->item(y, x); if(ui.Grid2DValues->isChecked()) - item->setText(tr("%1").arg(index)); + { + tmpString.setNum(index); + if(item->text()!=tmpString) + { + item->setText(tmpString); + needUpdate = 1; + } + } else - item->setText(tr("%1").arg(renderer->getSymbol(index).textSybmol)); - - item->setTextColor(Qt::black); - if(ui.Grig2DColors->isChecked()) { - item->setBackgroundColor(renderer->getSymbol(index).color); - if(item->textColor() == item->backgroundColor()) + if(symbol.textSybmol!=(item->text())[0]) { - if(item->backgroundColor()==Qt::black) - item->setTextColor(Qt::white); - else - item->setTextColor(Qt::black); + item->setText(symbol.textSybmol); + needUpdate = 1; } } - else - item->setBackgroundColor(Qt::white); + if(needUpdate) + { + item->setTextColor(Qt::black); + if(ui.Grig2DColors->isChecked()) + { + item->setBackgroundColor(renderer->getSymbol(index).color); + item->setTextColor(renderer->getSymbol(index).textColor); + } + else + { + item->setTextColor(Qt::black); + item->setBackgroundColor(Qt::white); + } + } } - progresDialog.setValue(y); + if(forceUpdate) + progresDialog.setValue(y); } } } @@ -520,7 +543,10 @@ if(ui.view2D->isVisible()) update2DTable(); else - table2DUpdateRequest = 1; + { + if(table2DUpdateRequest<2) + table2DUpdateRequest = 1; + } if(ui.view2DGraph->isVisible()) update2DGraph(); @@ -546,6 +572,7 @@ ui.tabWidget->setTabEnabled(1, 1); ui.tabWidget->setTabEnabled(2, 1); ui.tabWidget->setTabEnabled(3, 0); + table2DUpdateRequest = 2; break; case 3: @@ -553,13 +580,14 @@ ui.tabWidget->setTabEnabled(1, 1); ui.tabWidget->setTabEnabled(2, 1); ui.tabWidget->setTabEnabled(3, 0); + table2DUpdateRequest = 2; break; } } void simulationWindow::GridView2DRepaint() { - update2DTable(); + update2DTable(1); } void simulationWindow::GridView1DRepaint() @@ -585,7 +613,8 @@ temp = (item->text())[0]; renderer->setSymbol(row, temp); item->setText(temp); - table2DUpdateRequest = table1DUpdateRequest = 1; + table2DUpdateRequest = 2; + table1DUpdateRequest = 1; } else if(column==4) @@ -617,7 +646,7 @@ table1DUpdateRequest = 1; if(ui.Grig2DColors->isChecked()) - table2DUpdateRequest = 1; + table2DUpdateRequest = 2; graph2DUpdateRequest = 1; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |