From: <le...@us...> - 2007-01-15 19:58:17
|
Revision: 178 http://svn.sourceforge.net/qcell/?rev=178&view=rev Author: lessm Date: 2007-01-15 11:57:54 -0800 (Mon, 15 Jan 2007) Log Message: ----------- - edit tools work fully in 3D view Modified Paths: -------------- trunk/qcell/baseheaders/Renderer.h trunk/qcell/basesources/Renderer.cpp trunk/qcell/basesources/simulationwindow.cpp Modified: trunk/qcell/baseheaders/Renderer.h =================================================================== --- trunk/qcell/baseheaders/Renderer.h 2007-01-15 19:26:00 UTC (rev 177) +++ trunk/qcell/baseheaders/Renderer.h 2007-01-15 19:57:54 UTC (rev 178) @@ -80,6 +80,7 @@ virtual void wheelEvent(QWheelEvent * event); void executeSelect(int x, int y, int width=1, int height=1); + QVector<int> indexToCoords(int index); public: @@ -137,6 +138,8 @@ void showObserver(bool flag); void setObserverPosition(int x, int y, int z); + QList< QVector<int> > getSelectData(void); + protected slots: void resizeDataEvent(void); Modified: trunk/qcell/basesources/Renderer.cpp =================================================================== --- trunk/qcell/basesources/Renderer.cpp 2007-01-15 19:26:00 UTC (rev 177) +++ trunk/qcell/basesources/Renderer.cpp 2007-01-15 19:57:54 UTC (rev 178) @@ -396,8 +396,26 @@ setOrtoPerspective(); } +QVector<int> Renderer::indexToCoords(int index) + { + int x=0, y=0, z=0; + QVector<int> out; + out.resize(3); + out[0] = index % getStorage()->getSizeX(); + index /= getStorage()->getSizeX(); + if(index<getStorage()->getSizeY()) + { + out[1] = index; + return out; + } + out[1] = index % getStorage()->getSizeY(); + index /= getStorage()->getSizeY(); + out[2] = index; + return out; + } + Renderer::Renderer(QWidget *parent) : QGLWidget(parent) { discretValues = 1; @@ -969,26 +987,9 @@ QVector<int> Renderer::getSelectedCoord(void) { - int x=0, y=0, z=0, index; - QVector<int> out; if(selectetObjects.size()==0) - return out; - - out.resize(3); - index = selectetObjects[0]; - - out[0] = index % getStorage()->getSizeX(); - index /= getStorage()->getSizeX(); - if(index<getStorage()->getSizeY()) - { - out[1] = index; - return out; - } - out[1] = index % getStorage()->getSizeY(); - index /= getStorage()->getSizeY(); - - out[2] = index; - return out; + return QVector<int>(); + return indexToCoords(selectetObjects[0]); } void Renderer::modeSelect(void) @@ -1017,3 +1018,18 @@ localObserverCoords[1] = y; localObserverCoords[2] = z; } + +QList< QVector<int> > Renderer::getSelectData(void) +{ + int index; + QList< QVector<int> > out; + if(selectetObjects.isEmpty()) + return out; + + foreach(index, selectetObjects) + { + out << indexToCoords(index); + (out.last())<<storage.getValueAt_i(index); + } + return out; +} Modified: trunk/qcell/basesources/simulationwindow.cpp =================================================================== --- trunk/qcell/basesources/simulationwindow.cpp 2007-01-15 19:26:00 UTC (rev 177) +++ trunk/qcell/basesources/simulationwindow.cpp 2007-01-15 19:57:54 UTC (rev 178) @@ -1214,7 +1214,24 @@ if(ui.view3D->isVisible()) { + xofset = getStorage()->getSizeX(); + yofset = getStorage()->getSizeY(); + zofset = getStorage()->getSizeZ(); + dataToCopy = renderer->getSelectData(); + foreach(coords, dataToCopy) + { + xofset = coords[0]<xofset ? coords[0] : xofset; + yofset = coords[1]<yofset ? coords[1] : yofset; + zofset = coords[2]<zofset ? coords[2] : zofset; + } + + for(int i=0;i<dataToCopy.size();++i) + { + (dataToCopy[i])[0] -= xofset; + (dataToCopy[i])[1] -= yofset; + (dataToCopy[i])[2] -= zofset; + } } } @@ -1274,4 +1291,4 @@ renderer->repaint(); repaint(); } -} \ No newline at end of file +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |