|
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.
|