|
From: <le...@us...> - 2007-01-15 01:42:50
|
Revision: 171
http://svn.sourceforge.net/qcell/?rev=171&view=rev
Author: lessm
Date: 2007-01-14 17:42:48 -0800 (Sun, 14 Jan 2007)
Log Message:
-----------
- Local Observer added
Modified Paths:
--------------
trunk/qcell/baseheaders/CalculationData.h
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/baseheaders/basetools.h
trunk/qcell/baseheaders/basetools.ui
trunk/qcell/baseheaders/simulationwindow.h
trunk/qcell/baseheaders/view3dtools.ui
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/basesources/Renderer.cpp
trunk/qcell/basesources/basetools.cpp
trunk/qcell/basesources/simulationwindow.cpp
Modified: trunk/qcell/baseheaders/CalculationData.h
===================================================================
--- trunk/qcell/baseheaders/CalculationData.h 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/baseheaders/CalculationData.h 2007-01-15 01:42:48 UTC (rev 171)
@@ -28,6 +28,7 @@
public:
CalculationData();
+ CalculationData(CalculationData &cData);
~CalculationData();
int getValueAt_i(int x);
@@ -74,7 +75,7 @@
/*const*/ char *getDataPointer(void);
void fillData(char *dataPointer);
- void setForeignDataPointer(char *dataPointer);
+ void setForeignDataPointer(char *dataPointer, bool silent=0);
QString createXmlHeader(void);
bool setFromXmlString(QString *xmlString);
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-15 01:42:48 UTC (rev 171)
@@ -118,8 +118,15 @@
void setOrtoPerspective(bool noClear=1);
void setRealPerspective(bool noClear=1);
+ void fillSelected(int value);
+
+ QVector<int> getSelectedCoord(void);
+
protected slots:
void resizeDataEvent(void);
+
+signals:
+ void objectSelected(int x, int y, int z);
};
#endif
Modified: trunk/qcell/baseheaders/basetools.h
===================================================================
--- trunk/qcell/baseheaders/basetools.h 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/baseheaders/basetools.h 2007-01-15 01:42:48 UTC (rev 171)
@@ -22,6 +22,8 @@
protected slots:
void modeChangeSelect(void);
void modeChangeEdit(void);
+ void modeChangeGlobalView(void);
+ void modeChangeLocalView(void);
void commandCopy(void);
void commandPaste(void);
void commandFill(void);
Modified: trunk/qcell/baseheaders/basetools.ui
===================================================================
--- trunk/qcell/baseheaders/basetools.ui 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/baseheaders/basetools.ui 2007-01-15 01:42:48 UTC (rev 171)
@@ -6,41 +6,51 @@
<x>0</x>
<y>0</y>
<width>102</width>
- <height>300</height>
+ <height>375</height>
</rect>
</property>
<property name="windowTitle" >
<string>BaseTools</string>
</property>
- <widget class="QGroupBox" name="groupBox" >
+ <widget class="QGroupBox" name="EditToolsGroup" >
<property name="geometry" >
<rect>
<x>1</x>
- <y>0</y>
+ <y>140</y>
<width>100</width>
- <height>71</height>
+ <height>91</height>
</rect>
</property>
<property name="title" >
- <string>Edit Mode</string>
+ <string>Edit Tools</string>
</property>
- <widget class="QToolButton" name="ModeEditButton" >
+ <widget class="QToolButton" name="FillButton" >
<property name="geometry" >
<rect>
<x>10</x>
+ <y>60</y>
+ <width>81</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Fill</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" name="PasteButton" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
<y>40</y>
<width>81</width>
<height>20</height>
</rect>
</property>
<property name="text" >
- <string>Edit</string>
+ <string>Paste</string>
</property>
- <property name="checkable" >
- <bool>true</bool>
- </property>
</widget>
- <widget class="QToolButton" name="ModeSelectButton" >
+ <widget class="QToolButton" name="CopyButton" >
<property name="geometry" >
<rect>
<x>10</x>
@@ -50,42 +60,46 @@
</rect>
</property>
<property name="text" >
- <string>Select</string>
+ <string>Copy</string>
</property>
- <property name="checkable" >
- <bool>true</bool>
- </property>
- <property name="checked" >
- <bool>true</bool>
- </property>
</widget>
</widget>
- <widget class="QGroupBox" name="groupBox_2" >
+ <widget class="QGroupBox" name="ValuesGroup" >
<property name="geometry" >
<rect>
<x>1</x>
- <y>70</y>
+ <y>240</y>
<width>100</width>
- <height>91</height>
+ <height>131</height>
</rect>
</property>
<property name="title" >
- <string>Edit Tools</string>
+ <string>Values</string>
</property>
- <widget class="QToolButton" name="FillButton" >
+ <widget class="QTableWidget" name="valueTable" >
<property name="geometry" >
<rect>
- <x>10</x>
- <y>60</y>
- <width>81</width>
- <height>20</height>
+ <x>5</x>
+ <y>20</y>
+ <width>90</width>
+ <height>101</height>
</rect>
</property>
- <property name="text" >
- <string>Fill</string>
- </property>
</widget>
- <widget class="QToolButton" name="PasteButton" >
+ </widget>
+ <widget class="QGroupBox" name="ViewModeGroup" >
+ <property name="geometry" >
+ <rect>
+ <x>1</x>
+ <y>0</y>
+ <width>100</width>
+ <height>71</height>
+ </rect>
+ </property>
+ <property name="title" >
+ <string>View Mode</string>
+ </property>
+ <widget class="QToolButton" name="LocalViewButton" >
<property name="geometry" >
<rect>
<x>10</x>
@@ -95,10 +109,13 @@
</rect>
</property>
<property name="text" >
- <string>Paste</string>
+ <string>Local</string>
</property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
</widget>
- <widget class="QToolButton" name="CopyButton" >
+ <widget class="QToolButton" name="GlobalVievButton" >
<property name="geometry" >
<rect>
<x>10</x>
@@ -108,31 +125,62 @@
</rect>
</property>
<property name="text" >
- <string>Copy</string>
+ <string>Global</string>
</property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
</widget>
</widget>
- <widget class="QGroupBox" name="groupBox_3" >
+ <widget class="QGroupBox" name="EditModeGroup" >
<property name="geometry" >
<rect>
<x>1</x>
- <y>160</y>
+ <y>70</y>
<width>100</width>
- <height>131</height>
+ <height>71</height>
</rect>
</property>
<property name="title" >
- <string>Values</string>
+ <string>Edit Mode</string>
</property>
- <widget class="QTableWidget" name="valueTable" >
+ <widget class="QToolButton" name="ModeEditButton" >
<property name="geometry" >
<rect>
- <x>5</x>
+ <x>10</x>
+ <y>40</y>
+ <width>81</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Edit</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QToolButton" name="ModeSelectButton" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
<y>20</y>
- <width>90</width>
- <height>101</height>
+ <width>81</width>
+ <height>20</height>
</rect>
</property>
+ <property name="text" >
+ <string>Select</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
</widget>
</widget>
</widget>
Modified: trunk/qcell/baseheaders/simulationwindow.h
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.h 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/baseheaders/simulationwindow.h 2007-01-15 01:42:48 UTC (rev 171)
@@ -18,6 +18,7 @@
#include "view3dtools.h"
#include "view2dtexttools.h"
#include "view1dtexttools.h"
+#include "math.h"
#include <QToolBox>
@@ -61,13 +62,21 @@
int selectedSymbol, workMode;
+ QVector<CalculationData> loclaViewMemory;
+ QVector<int> localObserverPosition;
+ int cycleTable, maxTime, usedSpace;
+ char *storeCurentTable;
+ CalculationData localView;
+ bool localViewFlag;
+
virtual void mouseMoveEvent(QMouseEvent * event);
virtual void mousePressEvent(QMouseEvent * event);
virtual void wheelEvent(QWheelEvent * event);
virtual void resizeEvent(QResizeEvent * event);
virtual void paintEvent(QPaintEvent * event);
-
+ void localViewReinterprete(void);
+ int calculateDistans(int x, int y, int z, bool box=1);
protected:
void update2DTable(bool forceUpdate=0);
@@ -108,11 +117,15 @@
void workModeChange(int mode);
void selectSymbol(int index);
-signals:
- void progressUpdate(int val);
+ void commandExecute(int cmd);
+ void view3DselectedObject(int x, int y, int z);
+//signals:
+// void progressUpdate(int val);
+
+
};
#endif // SIMULATIONWINDOW_H
Modified: trunk/qcell/baseheaders/view3dtools.ui
===================================================================
--- trunk/qcell/baseheaders/view3dtools.ui 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/baseheaders/view3dtools.ui 2007-01-15 01:42:48 UTC (rev 171)
@@ -6,7 +6,7 @@
<x>0</x>
<y>0</y>
<width>102</width>
- <height>80</height>
+ <height>76</height>
</rect>
</property>
<property name="windowTitle" >
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/basesources/CalculationData.cpp 2007-01-15 01:42:48 UTC (rev 171)
@@ -54,6 +54,18 @@
haveForeignDataPointer = 0;
}
+CalculationData::CalculationData(CalculationData &cData)
+{
+ dataType = baseDataTypes::CHAR;
+ sizeX = sizeY = sizeZ = sizeT = 0;
+ dimension = -1;
+ dataSize = sizeof(char);
+ data = NULL;
+ haveForeignDataPointer = 0;
+
+ *this = cData;
+}
+
CalculationData::~CalculationData()
{
dataType = baseDataTypes::NONE;
@@ -713,12 +725,13 @@
}
}
-void CalculationData::setForeignDataPointer(char *dataPointer)
+void CalculationData::setForeignDataPointer(char *dataPointer, bool silent)
{
clearData();
data = dataPointer;
haveForeignDataPointer = 1;
- emit dataUpdated();
+ if(!silent)
+ emit dataUpdated();
}
QString CalculationData::createXmlHeader(void)
Modified: trunk/qcell/basesources/Renderer.cpp
===================================================================
--- trunk/qcell/basesources/Renderer.cpp 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/basesources/Renderer.cpp 2007-01-15 01:42:48 UTC (rev 171)
@@ -278,6 +278,12 @@
if(mouseButtons==Qt::LeftButton)
{
selectOne(event->x(), event->y());
+ if(selectetObjects.size()>0)
+ {
+ QVector<int> sCoord = getSelectedCoord();
+ emit objectSelected(sCoord[0], sCoord[1], sCoord[2]);
+ }
+
}
showSelectRect = 0;
repaint();
@@ -888,3 +894,34 @@
glMatrixMode(GL_MODELVIEW);
corectPerspective = 1;
}
+
+void Renderer::fillSelected(int value)
+{
+ for(int i=0;i<selectetObjects.size();++i)
+ getStorage()->setValueAt(value, selectetObjects[i]);
+ repaint();
+}
+
+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;
+}
Modified: trunk/qcell/basesources/basetools.cpp
===================================================================
--- trunk/qcell/basesources/basetools.cpp 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/basesources/basetools.cpp 2007-01-15 01:42:48 UTC (rev 171)
@@ -7,11 +7,15 @@
editMode = 0;
connect(ui.CopyButton, SIGNAL(clicked(bool)), SLOT(commandCopy()));
connect(ui.PasteButton, SIGNAL(clicked(bool)), SLOT(commandPaste()));
- connect(ui.PasteButton, SIGNAL(clicked(bool)), SLOT(commandFill()));
+ connect(ui.FillButton, SIGNAL(clicked(bool)), SLOT(commandFill()));
connect(ui.ModeSelectButton, SIGNAL(clicked(bool)), SLOT(modeChangeSelect()));
connect(ui.ModeEditButton, SIGNAL(clicked(bool)), SLOT(modeChangeEdit()));
+
+ connect(ui.GlobalVievButton, SIGNAL(clicked(bool)), SLOT(modeChangeGlobalView()));
+ connect(ui.LocalViewButton, SIGNAL(clicked(bool)), SLOT(modeChangeLocalView()));
+
connect(ui.valueTable, SIGNAL(cellClicked(int, int)), SLOT(updateSelectedSymbol(int, int)));
}
@@ -47,6 +51,44 @@
}
}
+void BaseTools::modeChangeGlobalView(void)
+{
+ ui.GlobalVievButton->setChecked(1);
+ ui.LocalViewButton->setChecked(0);
+ ui.EditModeGroup->show();
+ ui.EditToolsGroup->show();
+ ui.ValuesGroup->show();
+ if(editMode!=2)
+ {
+ editMode=2;
+ emit toolsModeUpdate(2);
+ if(ui.ModeEditButton->isChecked())
+ {
+ emit toolsModeUpdate(1);
+ editMode = 1;
+ }
+ else
+ {
+ emit toolsModeUpdate(0);
+ editMode = 0;
+ }
+ }
+}
+
+void BaseTools::modeChangeLocalView(void)
+{
+ ui.GlobalVievButton->setChecked(0);
+ ui.LocalViewButton->setChecked(1);
+ ui.EditModeGroup->hide();
+ ui.EditToolsGroup->hide();
+ ui.ValuesGroup->hide();
+ if(editMode!=3)
+ {
+ editMode=3;
+ emit toolsModeUpdate(3);
+ }
+}
+
void BaseTools::commandCopy(void)
{
emit command(0);
Modified: trunk/qcell/basesources/simulationwindow.cpp
===================================================================
--- trunk/qcell/basesources/simulationwindow.cpp 2007-01-14 22:26:29 UTC (rev 170)
+++ trunk/qcell/basesources/simulationwindow.cpp 2007-01-15 01:42:48 UTC (rev 171)
@@ -104,6 +104,8 @@
view2DTextTools->move(width() - 101, basetools->height() + 1);
view1DTextTools->move(width() - 101, basetools->height() + 1);
+
+
}
void simulationWindow::paintEvent(QPaintEvent * event)
@@ -172,6 +174,71 @@
}
}
+void simulationWindow::localViewReinterprete(void)
+{
+ int dist, index;
+ switch(getStorage()->getDimension())
+ {
+ case 1:
+ for(int x=0;x<getStorage()->getSizeX();++x)
+ {
+ dist = calculateDistans(x, 0, 0);
+ index = (cycleTable - dist);
+ while(index<0)
+ index += maxTime;
+ if(usedSpace<dist)
+ localView.setValueAt(0, x);
+ else
+ localView.setValueAt(loclaViewMemory[index].getValueAt_i(x), x);
+ }
+
+ break;
+ case 2:
+ for(int y=0;y<getStorage()->getSizeY();++y)
+ {
+ for(int x=0;x<getStorage()->getSizeX();++x)
+ {
+ dist = calculateDistans(x, y, 0);
+ index = (cycleTable - dist);
+ while(index<0)
+ index += maxTime;
+ if(usedSpace<dist)
+ localView.setValueAt(0, x, y);
+ else
+ localView.setValueAt(loclaViewMemory[index].getValueAt_i(x, y), x, y);
+ }
+ }
+ break;
+ case 3:
+ for(int z=0;z<getStorage()->getSizeZ();++z)
+ {
+ for(int y=0;y<getStorage()->getSizeY();++y)
+ {
+ for(int x=0;x<getStorage()->getSizeX();++x)
+ {
+ dist = calculateDistans(x, y, z);
+ index = (cycleTable - dist);
+ while(index<0)
+ index += maxTime;
+ if(usedSpace<dist)
+ localView.setValueAt(0, x, y, z);
+ else
+ localView.setValueAt(loclaViewMemory[index].getValueAt_i(x, y, z), x, y, z);
+ }
+ }
+ }
+ break;
+ }
+}
+
+int simulationWindow::calculateDistans(int x, int y, int z, bool box)
+{
+ if(box)
+ return max(max(max(x, localObserverPosition[0]), max(y, localObserverPosition[1])), max(z, localObserverPosition[2]));
+ else
+ return sqrt((float)((x - localObserverPosition[0]) * (x - localObserverPosition[0])) * (float)((y - localObserverPosition[1]) * (y - localObserverPosition[1])) * (float)((z - localObserverPosition[2]) * (z - localObserverPosition[2])));
+}
+
void simulationWindow::update2DTable(bool forceUpdate)
{
bool showProgres=0;
@@ -533,7 +600,7 @@
table2D = new QTableWidget(ui.view2D);
- connect(renderer->getStorage(), SIGNAL(dataUpdated()), SLOT(dataUpdateRequest()));
+ bool ret = connect(renderer->getStorage(), SIGNAL(dataUpdated()), SLOT(dataUpdateRequest()));
connect(renderer->getStorage(), SIGNAL(dataResized()), SLOT(dataResizeRequest()));
@@ -575,6 +642,16 @@
connect(view1DTextTools, SIGNAL(viewModeChenged(int)), SLOT(GrigView1DInterpretationMode(int)));
connect(view1DTextTools, SIGNAL(memoryClear()), SLOT(GridView1DMemClear()));
+
+ connect(basetools, SIGNAL(command(int)), SLOT(commandExecute(int)));
+
+ localObserverPosition.resize(3);
+ maxTime = 0;
+ cycleTable = 0;
+ usedSpace = 0;
+ localViewFlag = 0;
+
+ connect(renderer, SIGNAL(objectSelected(int, int, int)), SLOT(view3DselectedObject(int, int, int)));
}
simulationWindow::~simulationWindow()
@@ -615,6 +692,25 @@
void simulationWindow::dataUpdateRequest(void)
{
+ //********** this part is for local view ************************
+ if(localViewFlag)
+ {
+ if(usedSpace<maxTime)
+ {
+ usedSpace++;
+ cycleTable = usedSpace % maxTime;
+ }
+ else
+ ++cycleTable %= maxTime;
+
+ loclaViewMemory[cycleTable] = *getStorage();
+ localViewReinterprete();
+ storeCurentTable = getStorage()->getDataPointer();
+ getStorage()->setForeignDataPointer(localView.getDataPointer(), 1);
+ }
+
+ //***************************************************************
+
switch(renderer->getStorage()->getDimension())
{
case 1:
@@ -645,6 +741,7 @@
graph2DUpdateRequest = 1;
break;
}
+ //******************************************
}
void simulationWindow::dataResizeRequest(void)
@@ -657,6 +754,10 @@
ui.tabWidget->setTabEnabled(2, 0);
ui.tabWidget->setTabEnabled(3, 1);
table1DUpdateRequest = 2;
+ maxTime = sqrt((float)(getStorage()->getSizeX() * getStorage()->getSizeX()));
+ //maxTime = getStorage()->getSizeX() + 1;
+ loclaViewMemory.resize(maxTime);
+
break;
case 2:
@@ -668,6 +769,9 @@
graph2DUpdateRequest = 1;
view2DTextTools->setZPlaneMax(0);
view2DTextTools->Pure2DMode(1);
+ maxTime = sqrt((float)(getStorage()->getSizeX() * getStorage()->getSizeX()) + (float)(getStorage()->getSizeY() * getStorage()->getSizeY()));
+ //maxTime = max(getStorage()->getSizeX(), getStorage()->getSizeY()) + 1;
+ loclaViewMemory.resize(maxTime);
break;
@@ -680,8 +784,26 @@
graph2DUpdateRequest = 1;
view2DTextTools->setZPlaneMax(getStorage()->getSizeZ()-1);
view2DTextTools->Pure2DMode(0);
+ maxTime = sqrt((float)(getStorage()->getSizeX() * getStorage()->getSizeX()) + (float)(getStorage()->getSizeY() * getStorage()->getSizeY()) + (float)(getStorage()->getSizeZ() * getStorage()->getSizeZ()));
+ //maxTime = max(getStorage()->getSizeZ(), max(getStorage()->getSizeX(), getStorage()->getSizeY())) + 1;
+ loclaViewMemory.resize(maxTime);
break;
}
+ //********** this part is for local view ************************
+ usedSpace = 0;
+ localView = *getStorage();
+ cycleTable = 0;
+ localObserverPosition[0] = 0;
+ localObserverPosition[1] = 0;
+ localObserverPosition[2] = 0;
+ if(localViewFlag)
+ {
+ loclaViewMemory[0] = *getStorage();
+ localViewReinterprete();
+ storeCurentTable = getStorage()->getDataPointer();
+ getStorage()->setForeignDataPointer(localView.getDataPointer(), 1);
+ }
+ //****************************************************
repaint();
}
@@ -832,6 +954,16 @@
}
graph2DUpdateRequest = 1;
}
+
+ if(workMode==3)
+ {
+ localObserverPosition[0] = column;
+ localObserverPosition[1] = row;
+ localObserverPosition[2] = z_plane;
+ localViewReinterprete();
+ update2DTable();
+ graph2DUpdateRequest = 1;
+ }
}
void simulationWindow::GridView1DEdit(int row, int column)
@@ -885,6 +1017,40 @@
void simulationWindow::workModeChange(int mode)
{
workMode = mode;
+ if(mode>1)
+ {
+ if(mode==3)
+ {
+ loclaViewMemory[cycleTable] = *getStorage();
+ storeCurentTable = getStorage()->getDataPointer();
+ localViewReinterprete();
+ getStorage()->setForeignDataPointer(localView.getDataPointer(), 1);
+ localViewFlag = 1;
+ }
+ if(mode==2)
+ {
+ getStorage()->setForeignDataPointer(storeCurentTable, 1);
+ localViewFlag = 0;
+ }
+
+ if(ui.view3D->isVisible())
+ renderer->repaint();
+
+ if(ui.view2D->isVisible())
+ update2DTable();
+ else
+ table2DUpdateRequest = 1;
+
+ if(ui.view2DGraph->isVisible())
+ update2DGraph();
+ else
+ graph2DUpdateRequest = 1;
+
+ if(ui.view1D->isVisible())
+ update1DTable();
+ else
+ table1DUpdateRequest = 1;
+ }
}
void simulationWindow::selectSymbol(int index)
@@ -892,3 +1058,50 @@
selectedSymbol = index;
}
+void simulationWindow::commandExecute(int cmd)
+{
+ QTableWidgetItem *item;
+ switch(cmd)
+ {
+ case 0:
+ break;
+ case 1:
+ break;
+ case 2:
+ if(workMode==0)
+ {
+ if(ui.view3D->isVisible())
+ renderer->fillSelected(selectedSymbol);
+ if(ui.view2D->isVisible())
+ {
+ for(int y=0;y<getStorage()->getSizeY();++y)
+ {
+ for(int x=0;x<getStorage()->getSizeX();++x)
+ {
+ item = table2D->item(y, x);
+ if(item->isSelected())
+ {
+ getStorage()->setValueAt(selectedSymbol, x, y, z_plane);
+ }
+ }
+ }
+ update2DTable();
+ }
+ }
+ break;
+ }
+}
+
+void simulationWindow::view3DselectedObject(int x, int y, int z)
+{
+ if(workMode==3)
+ {
+ localObserverPosition[0] = x;
+ localObserverPosition[1] = y;
+ localObserverPosition[2] = z;
+ localViewReinterprete();
+ table2DUpdateRequest = 1;
+ graph2DUpdateRequest = 1;
+ renderer->repaint();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|