|
From: <dhu...@us...> - 2006-12-15 09:57:55
|
Revision: 67
http://svn.sourceforge.net/qcell/?rev=67&view=rev
Author: dhubleizh
Date: 2006-12-15 01:57:50 -0800 (Fri, 15 Dec 2006)
Log Message:
-----------
- added storage maps
- the way of storing Worlds and their changes throughout the experiment needs to be rethinked
Modified Paths:
--------------
trunk/qcell/baseheaders/StorageInterface.h
trunk/qcell/storage/Storage.cpp
trunk/qcell/storage/Storage.h
Modified: trunk/qcell/baseheaders/StorageInterface.h
===================================================================
--- trunk/qcell/baseheaders/StorageInterface.h 2006-12-15 09:23:43 UTC (rev 66)
+++ trunk/qcell/baseheaders/StorageInterface.h 2006-12-15 09:57:50 UTC (rev 67)
@@ -58,6 +58,12 @@
* @return Neighbourhood
*/
virtual Neighbourhood loadNeighbourhood(QString request) = 0;
+ /**
+ * @brief Saves given in XML Neighbourhood to the storage
+ *
+ * @param node XML representing Neighoburhood
+ */
+ virtual void saveNeighbourhood(QDomNode node) = 0;
/**
Modified: trunk/qcell/storage/Storage.cpp
===================================================================
--- trunk/qcell/storage/Storage.cpp 2006-12-15 09:23:43 UTC (rev 66)
+++ trunk/qcell/storage/Storage.cpp 2006-12-15 09:57:50 UTC (rev 67)
@@ -32,7 +32,20 @@
{
}
+void Storage::saveNeighbourhood(QDomNode node)
+{
+ if(node.nodeName != "Neighbourhood")
+ {
+ qDebug(tr("The XML sent to save isn't of Neighbourhood, but of %1 !")
+ .attr(node.nodeName())
+ );
+ return;
+ }
+
+
+}
+
LocalFunction Storage::loadLocalFunction(QString request)
{
Modified: trunk/qcell/storage/Storage.h
===================================================================
--- trunk/qcell/storage/Storage.h 2006-12-15 09:23:43 UTC (rev 66)
+++ trunk/qcell/storage/Storage.h 2006-12-15 09:57:50 UTC (rev 67)
@@ -11,17 +11,36 @@
#include "StorageInterface.h"
#include <QByteArray>
+#include <QDomNode>
class Storage : public QObject, public StorageInterface
{
Q_OBJECT
Q_INTERFACES(StorageInterface)
-
+protected:
+ /// Holds Neighbourhoods in XML indexed by filename
+ QMap<QString, QDomNode> Neighbourhoods;
+ /// Holds LocalFunctions in XML indexed by filename
+ QMap<QString, QDomNode> LocalFunctions;
+ ///
+ /**
+ * @brief Hodls Worlds indexed by random number
+ *
+ * As Worlds are the only things, that really get changed during
+ * an experiment, we need to store each world seperately, thus the
+ * indexing by a random number, to ensure, that even two worlds loaded
+ * from the same file are distinguishable, as experiments change worlds.
+ */
+ /// @todo Find a way of keeping world changes
+ QMap<qint, QDomNode> Worlds;
+
+public:
QByteArray loadData(QString request);
QByteArray loadWholeData();
void saveData(QString request, QByteArray data);
void saveWholeWhole(QByteArray data);
Neighbourhood loadNeighbourhood(QString request);
+ void saveNeighbourhood(QDomNode node);
LocalFunction loadLocalFunction(QString request);
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <le...@us...> - 2006-12-19 15:08:39
|
Revision: 68
http://svn.sourceforge.net/qcell/?rev=68&view=rev
Author: lessm
Date: 2006-12-19 06:58:48 -0800 (Tue, 19 Dec 2006)
Log Message:
-----------
- Calculator and Renderer class add
Modified Paths:
--------------
trunk/qcell/baseheaders/BaseDataTypes.h
trunk/qcell/baseheaders/CalculationData.h
trunk/qcell/baseheaders/LocalFunction.h
trunk/qcell/baseheaders/Neighbourhood.h
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/basesources/Client.cpp
trunk/qcell/basesources/LocalFunction.cpp
trunk/qcell/basesources/Neighbourhood.cpp
trunk/qcell/bin/ServerConfig.xml
trunk/qcell/client/main.cpp
Added Paths:
-----------
trunk/qcell/baseheaders/Calculator.h
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/basesources/Calculator.cpp
trunk/qcell/basesources/Renderer.cpp
Modified: trunk/qcell/baseheaders/BaseDataTypes.h
===================================================================
--- trunk/qcell/baseheaders/BaseDataTypes.h 2006-12-15 09:57:50 UTC (rev 67)
+++ trunk/qcell/baseheaders/BaseDataTypes.h 2006-12-19 14:58:48 UTC (rev 68)
@@ -1,18 +1,23 @@
#ifndef _BASE_DATA_TYPES
#define _BASE_DATA_TYPES
-class baseDataTypes
+#include <QObject>
+
+class baseDataTypes : QObject
{
+ Q_OBJECT
+private:
+protected:
public:
enum DATA_TYPES
{
- BOOL,
- CHAR,
- SHORT,
- INT,
- FLOAT,
- DOUBLE,
- NONE
+ BOOL = 0,
+ CHAR = 1,
+ SHORT = 2,
+ INT = 3,
+ FLOAT = 4,
+ DOUBLE = 5,
+ NONE = 6
};
};
Modified: trunk/qcell/baseheaders/CalculationData.h
===================================================================
--- trunk/qcell/baseheaders/CalculationData.h 2006-12-15 09:57:50 UTC (rev 67)
+++ trunk/qcell/baseheaders/CalculationData.h 2006-12-19 14:58:48 UTC (rev 68)
@@ -1,33 +1,29 @@
#ifndef _CALCULATION_DATA
#define _CALCULATION_DATA
+#include <QObject>
#include <string.h>
#include <QString>
+#include <QVector>
#include <QDomDocument>
#include <QDomElement>
#include "BaseDataTypes.h"
class CalculationData : public baseDataTypes
{
+ Q_OBJECT
private:
+protected:
DATA_TYPES dataType;
int sizeX, sizeY, sizeZ, sizeT;
- int backBufferSizeX, backBufferSizeY, backBufferSizeZ, backBufferSizeT;
- int dimension, size;
- char *data, *dataBorderFree;
+ int dimension, dataSize;
+ char *data;
+ bool haveForeignDataPointer;
- int minX, minY, minZ, minT;
- int maxX, maxY, maxZ, maxT;
-
- bool borderExist;
-
protected:
-//public:
- bool resize(const char *dataPointer=NULL);
+ void clearData(void);
+ bool resize(bool foreignDataPointer=0, char *dataPointer=NULL);
void * getAddressAt(int x, int y, int z, int t);
- void * getAddressAtBackBuffer(int x, int y, int z, int t);
- void calculateBackBufferSize(void);
- void copyData(void);
public:
@@ -38,67 +34,54 @@
int getValueAt_i(int x, int y);
int getValueAt_i(int x, int y, int z);
int getValueAt_i(int x, int y, int z, int t);
+ int getValueAt_i(QVector<int> pos);
- void setValueAt_i(int val, int x);
- void setValueAt_i(int val, int x, int y);
- void setValueAt_i(int val, int x, int y, int z);
- void setValueAt_i(int val, int x, int y, int z, int t);
+ void setValueAt(int val, int x);
+ void setValueAt(int val, int x, int y);
+ void setValueAt(int val, int x, int y, int z);
+ void setValueAt(int val, int x, int y, int z, int t);
+ void setValueAt(int val, QVector<int> pos);
double getValueAt_d(int x);
double getValueAt_d(int x, int y);
double getValueAt_d(int x, int y, int z);
double getValueAt_d(int x, int y, int z, int t);
+ double getValueAt_d(QVector<int> pos);
- void setValueAt_d(double val, int x);
- void setValueAt_d(double val, int x, int y);
- void setValueAt_d(double val, int x, int y, int z);
- void setValueAt_d(double val, int x, int y, int z, int t);
+ void setValueAt(double val, int x);
+ void setValueAt(double val, int x, int y);
+ void setValueAt(double val, int x, int y, int z);
+ void setValueAt(double val, int x, int y, int z, int t);
+ void setValueAt(double val, QVector<int> pos);
- void setDataType(baseDataTypes::DATA_TYPES type = baseDataTypes::DATA_TYPES::CHAR);
+ void setDataType(baseDataTypes::DATA_TYPES type = baseDataTypes::CHAR);
baseDataTypes::DATA_TYPES getDataType(void);
int getDataSize(void);
- bool resize(int x, const char *dataPointer=NULL);
- bool resize(int x, int y, const char *dataPointer=NULL);
- bool resize(int x, int y, int z, const char *dataPointer=NULL);
- bool resize(int x, int y, int z, int t, const char *dataPointer=NULL);
+ bool resize(int x, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(int x, int y, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(int x, int y, int z, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(int x, int y, int z, int t, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
int getSizeX(void);
int getSizeY(void);
int getSizeZ(void);
int getSizeT(void);
int getSizeInByte(void);
+ int getDimension(void);
const char *getDataPointer(void);
- const char *getBackBufferDataPointer(void);
- void fill(const char *dataPointer);
+ void fillData(const char *dataPointer);
+ void setForeignDataPointer(char *dataPointer);
-
- void setCalculationSpace(bool noDataCopy=0);
- void setCalculationSpace(int startX, int endX, bool noDataCopy=0);
- void setCalculationSpace(int startX, int startY, int endX, int endY, bool noDataCopy=0);
- void setCalculationSpace(int startX, int startY, int startZ, int endX, int endY, int endZ, bool noDataCopy=0);
- void setCalculationSpace(int startX, int startY, int startZ, int startT, int endX, int endY, int endZ, int endT, bool noDataCopy=0);
-
- bool haveBorder(void);
-
QString createXmlHeader(void);
- void setFromXmlString(QString *xmlString);
- void parseXmlElement(QDomElement *root);
+ bool setFromXmlString(QString *xmlString);
+ bool parseXmlElement(QDomElement *root);
- void setValueAt_i_Back(int val, int x);
- void setValueAt_i_Back(int val, int x, int y);
- void setValueAt_i_Back(int val, int x, int y, int z);
- void setValueAt_i_Back(int val, int x, int y, int z, int t);
+ CalculationData & operator = (CalculationData &cData);
- void setValueAt_d_Back(double val, int x);
- void setValueAt_d_Back(double val, int x, int y);
- void setValueAt_d_Back(double val, int x, int y, int z);
- void setValueAt_d_Back(double val, int x, int y, int z, int t);
- void fillData_i(int val=0);
- void fillData_d(double val=0.0);
-
};
#endif
Added: trunk/qcell/baseheaders/Calculator.h
===================================================================
--- trunk/qcell/baseheaders/Calculator.h (rev 0)
+++ trunk/qcell/baseheaders/Calculator.h 2006-12-19 14:58:48 UTC (rev 68)
@@ -0,0 +1,41 @@
+#ifndef _CALCULATOR_H
+#define _CALCULATOR_H
+
+#include "CalculationData.h"
+#include "Neighbourhood.h"
+#include "LocalFunction.h"
+#include <QByteArray>
+#include <QVector>
+#include <QObject>
+
+class Calculator : public CalculationData
+{
+ Q_OBJECT
+private:
+protected:
+ char *outData;
+ bool haveForeignOutputDataPointer;
+ QVector<int> outDataSize, calculationSpaceStart, calculationSpaceEnd;
+ Neighbourhood *neighbourhood;
+ LocalFunction *localfunction;
+
+protected:
+ void clearOutputData(void);
+ void copyData(void);
+ bool resizeOutputDataBuffer(bool dataCopy=0, char *dataPointer=NULL);
+
+public:
+ Calculator();
+ ~Calculator();
+
+ void setNeighbourhood(Neighbourhood *n);
+ void setLocalFunction(LocalFunction *f);
+
+ bool setCalculationSpace(QVector<int> start, QVector<int> end, bool dataCopy=0, char *foreignDataPointer=NULL);
+ int getOutputDataSizeInByte(void);
+ const char *getOutputDataPointer(void);
+
+ void calculate(void);
+};
+
+#endif
Modified: trunk/qcell/baseheaders/LocalFunction.h
===================================================================
--- trunk/qcell/baseheaders/LocalFunction.h 2006-12-15 09:57:50 UTC (rev 67)
+++ trunk/qcell/baseheaders/LocalFunction.h 2006-12-19 14:58:48 UTC (rev 68)
@@ -7,9 +7,10 @@
#include <QDomElement>
#include <QDomText>
#include <QStringList>
-
#include <math.h>
+//#include <Python.h>
+
class LocalFunction
{
@@ -19,16 +20,13 @@
{
SWITCH,
SUM,
- MIXED_SUM_SWITCH,
- PRODUCT,
- MIXED_PRODUCT_SWITCH,
+ SUM_AND_SWITCH,
SCRIPT
};
private:
QVector<int> valueTable;
- QVector<int> sumArguments;
- QVector<int> productArguments;
+ QVector< QVector<int> > sumArguments;
QVector<int> freeArguments;
FUNCTION_TYPE functionMode;
int numArg, maxArgVal, numElements;
@@ -38,15 +36,18 @@
//public:
void resizeValueTable(void);
int mostPopularValue(void);
+ QVector<int> calculateSums(QVector<int> &args);
+ QVector<int> calculateSwitchArguments(QVector<int> &args);
+ int calculateSumsIndex(QVector<int> args);
+ int calculateSwitchIndex(QVector<int> args);
+
QString valueTableToString(void);
QString valueTableToString(int fillValue);
-
QString sumArgumentsToString(void);
- QString productArgumentsToString(void);
void valueTableFromString(QString *string);
void sumArgumentsFromString(QString *string);
- void productArgumentsFromString(QString *string);
+
public:
LocalFunction();
@@ -54,11 +55,12 @@
void init(int numberOfArguments, int alphabetSize);
- // args is vector contein index of arguments to sum
+ // args is vector contein index of arguments to sum
+ void addSumArguments(QVector<int> args);
void setSumArguments(QVector<int> args);
+ void setFreeArguments(QVector<int> args);
+ void setFreeArguments(void);
- void setProductArguments(QVector<int> args);
-
void setSwitchFunction(void);
//
@@ -73,12 +75,13 @@
// fill value table with val
void setDefaultValue(int val);
- // first value is sum or product if function have sum or product arguments
- //
- bool addFunctionValue(int value, QVector<int> args);
+ // first value is sum if function have sum arguments
+ bool setFunctionValue(int value, int sum);
+ bool setFunctionValue(int value, QVector<int> args);
+ bool setFunctionValue(int value, int sum, QVector<int> freeArgs);
+ bool setFunctionValue(int value, QVector<int> sums, QVector<int> freeArgs);
int resolve(QVector<int> arg);
-
double resolve(QVector<double> arg);
QString toXmlString(void);
Modified: trunk/qcell/baseheaders/Neighbourhood.h
===================================================================
--- trunk/qcell/baseheaders/Neighbourhood.h 2006-12-15 09:57:50 UTC (rev 67)
+++ trunk/qcell/baseheaders/Neighbourhood.h 2006-12-19 14:58:48 UTC (rev 68)
@@ -58,8 +58,8 @@
void calculateOffsets(int sizeX, int sizeY, int sizeZ, int sizeT, baseDataTypes::DATA_TYPES type);
void resolveValues(const char *address);
+ QVector<int> valuesToVector_i(void);
+ QVector<double> valuesToVector_d(void);
};
-
-
#endif
Added: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h (rev 0)
+++ trunk/qcell/baseheaders/Renderer.h 2006-12-19 14:58:48 UTC (rev 68)
@@ -0,0 +1,49 @@
+#ifndef _RENDERER_H
+#define _RENDERER_H
+
+#include "CalculationData.h"
+#include <QVector>
+#include <QColor>
+#include <QGLPixelBuffer>
+#include <QGLFramebufferObject>
+#include <QGLWidget>
+#include <QImage>
+#include <QPainter>
+#include <QObject>
+
+class Renderer : public CalculationData, public QGLWidget
+{
+ Q_OBJECT
+private:
+protected:
+ QVector<QColor> ColorMap;
+ QGLPixelBuffer *OGLpBuffer;
+ bool discretValues;
+
+ QImage render1D(void);
+ QImage render2D(void);
+ QImage render3D(void);
+
+public:
+ typedef enum RENDER_MODE
+ {
+ TEXT,
+ GRAPHICS
+ };
+
+ Renderer(QWidget *parent);
+ ~Renderer();
+
+ void setDataType(baseDataTypes::DATA_TYPES type = baseDataTypes::CHAR);
+
+ bool resize(int x, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(int x, int y, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(int x, int y, int z, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(int x, int y, int z, int t, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resize(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
+
+ QImage renderToQImage(void);
+ void setColorInMap(int value, QColor color);
+};
+
+#endif
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2006-12-15 09:57:50 UTC (rev 67)
+++ trunk/qcell/basesources/CalculationData.cpp 2006-12-19 14:58:48 UTC (rev 68)
@@ -1,164 +1,51 @@
#include "../baseheaders/CalculationData.h"
-bool CalculationData::resize(const char *dataPointer)
+void CalculationData::clearData(void)
{
- borderExist = 0;
- if(data)
- delete[] data;
+ if(!haveForeignDataPointer && data)
+ delete data;
- data = new char[getSizeInByte()];
- if(!data)
- return 0;
-
- if(dataBorderFree)
- {
- delete[] dataBorderFree;
- dataBorderFree = NULL;
- }
-
- if(dataPointer)
- fill(dataPointer);
- return 1;
+ data = NULL;
}
-void * CalculationData::getAddressAt(int x, int y, int z, int t)
+bool CalculationData::resize(bool foreignDataPointer, char *dataPointer)
{
- int dSize;
- if(dataType==baseDataTypes::DATA_TYPES::NONE)
- return NULL;
- switch(dataType)
+ clearData();
+ if(!foreignDataPointer)
{
- case baseDataTypes::DATA_TYPES::BOOL:
- dSize = sizeof(char);
- break;
+ data = new char[getSizeInByte()];
+ if(!data)
+ return 0;
- case baseDataTypes::DATA_TYPES::CHAR:
- dSize = 1;
- break;
+ if(dataPointer)
+ fillData(dataPointer);
- case baseDataTypes::DATA_TYPES::INT:
- dSize = sizeof(int);
- break;
-
- case baseDataTypes::DATA_TYPES::SHORT:
- dSize = sizeof(short);
- break;
-
- case baseDataTypes::DATA_TYPES::DOUBLE:
- dSize = sizeof(double);
- break;
- case baseDataTypes::DATA_TYPES::FLOAT:
- dSize = sizeof(float);
- break;
+ haveForeignDataPointer = 0;
}
-
- return data + dSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
+ else
+ {
+ data = dataPointer;
+ haveForeignDataPointer = 1;
+ }
+ return 1;
}
-void * CalculationData::getAddressAtBackBuffer(int x, int y, int z, int t)
+void * CalculationData::getAddressAt(int x, int y, int z, int t)
{
int dSize;
if(dataType==baseDataTypes::DATA_TYPES::NONE)
return NULL;
- switch(dataType)
- {
- case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
- break;
-
- case baseDataTypes::DATA_TYPES::CHAR:
- dSize = sizeof(char);
- break;
-
- case baseDataTypes::DATA_TYPES::INT:
- dSize = sizeof(int);
- break;
-
- case baseDataTypes::DATA_TYPES::SHORT:
- dSize = sizeof(short);
- break;
-
- case baseDataTypes::DATA_TYPES::DOUBLE:
- dSize = sizeof(double);
- break;
- case baseDataTypes::DATA_TYPES::FLOAT:
- dSize = sizeof(float);
- break;
- }
-
- x -= minX;
- y -= minY;
- z -= minZ;
- t -= minT;
-
- if(t<0)
- t=0;
- if(z<0)
- z=0;
- if(y<0)
- y=0;
- if(x<0)
- x=0;
-
- //int index = dSize * (x + y * backBufferSizeX + z * backBufferSizeX * backBufferSizeY + t * backBufferSizeX * backBufferSizeY * backBufferSizeZ);
-
- return dataBorderFree + dSize * (x + y * backBufferSizeX + z * backBufferSizeX * backBufferSizeY + t * backBufferSizeX * backBufferSizeY * backBufferSizeZ);
+ return data + dataSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
}
-void CalculationData::calculateBackBufferSize(void)
-{
- switch(dimension)
- {
- case 4:
- backBufferSizeT = (maxT - minT) + 1;
- case 3:
- backBufferSizeZ = (maxZ - minZ) + 1;
- case 2:
- backBufferSizeY = (maxY - minY) + 1;
- case 1:
- backBufferSizeX = (maxX - minX) + 1;
- }
-
- if(maxX<0)
- maxX=0;
-
- if(maxY<0)
- maxY=0;
-
- if(maxZ<0)
- maxZ=0;
-
- if(maxT<0)
- maxT=0;
-}
-
-void CalculationData::copyData(void)
-{
- int counterF=0, counterB=0;
- for(int t=minT;t<=maxT;++t)
- {
- for(int z=minZ;z<=maxZ;++z)
- {
- for(int y=minY;y<=maxY;++y)
- {
- counterF += minX * size;
- memcpy(dataBorderFree + counterB, data + counterF, backBufferSizeX * size);
- counterF += (sizeX - minX) * size;
- counterB += backBufferSizeX * size;
- }
- }
- }
-}
-
CalculationData::CalculationData()
{
dataType = baseDataTypes::DATA_TYPES::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
- size = -1;
+ dataSize = 0;
data = NULL;
- dataBorderFree = NULL;
- borderExist = 0;
+ haveForeignDataPointer = 0;
}
CalculationData::~CalculationData()
@@ -166,17 +53,8 @@
dataType = baseDataTypes::DATA_TYPES::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
- size = -1;
- if(data)
- {
- delete[] data;
- data = NULL;
- }
- if(dataBorderFree)
- {
- delete[] dataBorderFree;
- dataBorderFree = NULL;
- }
+ dataSize = 0;
+ clearData();
}
int CalculationData::getValueAt_i(int x)
@@ -184,19 +62,24 @@
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, 0, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, 0, 0, 0)));
+
+ case baseDataTypes::FLOAT:
+ return (int)(*((float *)(getAddressAt(x, 0, 0, 0))));
+
+ case baseDataTypes::DOUBLE:
+ return (int)(*((double *)(getAddressAt(x, 0, 0, 0))));
}
- return -1;
+ return 0;
}
int CalculationData::getValueAt_i(int x, int y)
@@ -204,7 +87,6 @@
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
case baseDataTypes::DATA_TYPES::CHAR:
@@ -215,8 +97,13 @@
case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, 0, 0)));
+ case baseDataTypes::FLOAT:
+ return (int)(*((float *)(getAddressAt(x, y, 0, 0))));
+
+ case baseDataTypes::DOUBLE:
+ return (int)(*((double *)(getAddressAt(x, y, 0, 0))));
}
- return -1;
+ return 0;
}
int CalculationData::getValueAt_i(int x, int y, int z)
@@ -224,7 +111,6 @@
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
case baseDataTypes::DATA_TYPES::CHAR:
@@ -235,8 +121,14 @@
case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, z, 0)));
+
+ case baseDataTypes::FLOAT:
+ return (int)(*((float *)(getAddressAt(x, y, z, 0))));
+
+ case baseDataTypes::DOUBLE:
+ return (int)(*((double *)(getAddressAt(x, y, z, 0))));
}
- return -1;
+ return 0;
}
int CalculationData::getValueAt_i(int x, int y, int z, int t)
@@ -244,7 +136,6 @@
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
case baseDataTypes::DATA_TYPES::CHAR:
@@ -255,16 +146,38 @@
case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, z, t)));
+
+ case baseDataTypes::FLOAT:
+ return (int)(*((float *)(getAddressAt(x, y, z, t))));
+
+ case baseDataTypes::DOUBLE:
+ return (int)(*((double *)(getAddressAt(x, y, z, t))));
+
}
- return -1;
+ return 0;
}
-void CalculationData::setValueAt_i(int val, int x)
+int CalculationData::getValueAt_i(QVector<int> pos)
{
+ switch(pos.size())
+ {
+ case 1:
+ return getValueAt_i(pos[0]);
+ case 2:
+ return getValueAt_i(pos[0], pos[1]);
+ case 3:
+ return getValueAt_i(pos[0], pos[1], pos[2]);
+ case 4:
+ return getValueAt_i(pos[0], pos[1], pos[2], pos[3]);
+ }
+ return 0;
+}
+
+void CalculationData::setValueAt(int val, int x)
+{
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
case baseDataTypes::DATA_TYPES::CHAR:
@@ -281,12 +194,11 @@
}
}
-void CalculationData::setValueAt_i(int val, int x, int y)
+void CalculationData::setValueAt(int val, int x, int y)
{
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
case baseDataTypes::DATA_TYPES::CHAR:
@@ -303,12 +215,11 @@
}
}
-void CalculationData::setValueAt_i(int val, int x, int y, int z)
+void CalculationData::setValueAt(int val, int x, int y, int z)
{
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
case baseDataTypes::DATA_TYPES::CHAR:
@@ -325,12 +236,11 @@
}
}
-void CalculationData::setValueAt_i(int val, int x, int y, int z, int t)
+void CalculationData::setValueAt(int val, int x, int y, int z, int t)
{
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
break;
case baseDataTypes::DATA_TYPES::CHAR:
@@ -351,56 +261,120 @@
{
switch(dataType)
{
+ case baseDataTypes::DATA_TYPES::BOOL:
+ break;
+
+ case baseDataTypes::DATA_TYPES::CHAR:
+ return (double)*((char *)getAddressAt(x, 0, 0, 0));
+
+ case baseDataTypes::DATA_TYPES::INT:
+ return (double)*((int *)(getAddressAt(x, 0, 0, 0)));
+
+ case baseDataTypes::DATA_TYPES::SHORT:
+ return (double)*((short *)(getAddressAt(x, 0, 0, 0)));
+
case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, 0, 0, 0)));
case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, 0, 0, 0)));
}
- return -1;
+ return 0.0;
}
double CalculationData::getValueAt_d(int x, int y)
{
switch(dataType)
{
+ case baseDataTypes::DATA_TYPES::BOOL:
+ break;
+
+ case baseDataTypes::DATA_TYPES::CHAR:
+ return (double)*((char *)getAddressAt(x, y, 0, 0));
+
+ case baseDataTypes::DATA_TYPES::INT:
+ return (double)*((int *)(getAddressAt(x, y, 0, 0)));
+
+ case baseDataTypes::DATA_TYPES::SHORT:
+ return (double)*((short *)(getAddressAt(x, y, 0, 0)));
+
case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, 0, 0)));
case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, 0, 0)));
}
- return -1;
+ return 0.0;
}
double CalculationData::getValueAt_d(int x, int y, int z)
{
switch(dataType)
{
+ case baseDataTypes::DATA_TYPES::BOOL:
+ break;
+
+ case baseDataTypes::DATA_TYPES::CHAR:
+ return (double)*((char *)getAddressAt(x, y, z, 0));
+
+ case baseDataTypes::DATA_TYPES::INT:
+ return (double)*((int *)(getAddressAt(x, y, z, 0)));
+
+ case baseDataTypes::DATA_TYPES::SHORT:
+ return (double)*((short *)(getAddressAt(x, y, z, 0)));
+
case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, z, 0)));
case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, z, 0)));
}
- return -1;
+ return 0.0;
}
double CalculationData::getValueAt_d(int x, int y, int z, int t)
{
switch(dataType)
{
+ case baseDataTypes::DATA_TYPES::BOOL:
+ break;
+
+ case baseDataTypes::DATA_TYPES::CHAR:
+ return (double)*((char *)getAddressAt(x, y, z, t));
+
+ case baseDataTypes::DATA_TYPES::INT:
+ return (double)*((int *)(getAddressAt(x, y, z, t)));
+
+ case baseDataTypes::DATA_TYPES::SHORT:
+ return (double)*((short *)(getAddressAt(x, y, z, t)));
+
case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, z, t)));
case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, z, t)));
}
- return -1;
+ return 0.0;
}
-void CalculationData::setValueAt_d(double val, int x)
+double CalculationData::getValueAt_d(QVector<int> pos)
{
+ switch(pos.size())
+ {
+ case 1:
+ return getValueAt_d(pos[0]);
+ case 2:
+ return getValueAt_d(pos[0], pos[1]);
+ case 3:
+ return getValueAt_d(pos[0], pos[1], pos[2]);
+ case 4:
+ return getValueAt_d(pos[0], pos[1], pos[2], pos[3]);
+ }
+ return 0.0;
+}
+
+void CalculationData::setValueAt(double val, int x)
+{
switch(dataType)
{
case baseDataTypes::DATA_TYPES::DOUBLE:
@@ -413,7 +387,7 @@
}
}
-void CalculationData::setValueAt_d(double val, int x, int y)
+void CalculationData::setValueAt(double val, int x, int y)
{
switch(dataType)
{
@@ -427,7 +401,7 @@
}
}
-void CalculationData::setValueAt_d(double val, int x, int y, int z)
+void CalculationData::setValueAt(double val, int x, int y, int z)
{
switch(dataType)
{
@@ -441,7 +415,7 @@
}
}
-void CalculationData::setValueAt_d(double val, int x, int y, int z, int t)
+void CalculationData::setValueAt(double val, int x, int y, int z, int t)
{
switch(dataType)
{
@@ -458,31 +432,31 @@
void CalculationData::setDataType(DATA_TYPES type)
{
dataType = type;
- size = -1;
+ dataSize = 0;
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
- size = 0;
+ case baseDataTypes::BOOL:
+ dataSize = 0;
break;
- case baseDataTypes::DATA_TYPES::CHAR:
- size = 1;
+ case baseDataTypes::CHAR:
+ dataSize = sizeof(char);
break;
- case baseDataTypes::DATA_TYPES::DOUBLE:
- size = sizeof(double);
+ case baseDataTypes::DOUBLE:
+ dataSize = sizeof(double);
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
- size = sizeof(float);
+ case baseDataTypes::FLOAT:
+ dataSize = sizeof(float);
break;
- case baseDataTypes::DATA_TYPES::INT:
- size = sizeof(int);
+ case baseDataTypes::INT:
+ dataSize = sizeof(int);
break;
- case baseDataTypes::DATA_TYPES::SHORT:
- size = sizeof(short);
+ case baseDataTypes::SHORT:
+ dataSize = sizeof(short);
break;
}
}
@@ -493,49 +467,65 @@
}
int CalculationData::getDataSize(void)
{
- return size;
+ return dataSize;
}
-bool CalculationData::resize(int x, const char *dataPointer)
+bool CalculationData::resize(int x, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = 0;
sizeZ = 0;
sizeT = 0;
dimension = 1;
- return resize(dataPointer);
+ return resize(foreignDataPointer, dataPointer);
}
-bool CalculationData::resize(int x, int y, const char *dataPointer)
+bool CalculationData::resize(int x, int y, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = y;
sizeZ = 0;
sizeT = 0;
dimension = 2;
- return resize(dataPointer);
+ return resize(foreignDataPointer, dataPointer);;
}
-bool CalculationData::resize(int x, int y, int z, const char *dataPointer)
+bool CalculationData::resize(int x, int y, int z, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = y;
sizeZ = z;
sizeT = 0;
dimension = 3;
- return resize(dataPointer);
+ return resize(foreignDataPointer, dataPointer);;
}
-bool CalculationData::resize(int x, int y, int z, int t, const char *dataPointer)
+bool CalculationData::resize(int x, int y, int z, int t, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = y;
sizeZ = z;
sizeT = t;
dimension = 4;
- return resize(dataPointer);
+ return resize(foreignDataPointer, dataPointer);;
}
+bool CalculationData::resize(QVector<int> newSize, char *dataPointer, bool foreignDataPointer)
+{
+ switch(newSize.size())
+ {
+ case 1:
+ return resize(newSize[0], dataPointer, foreignDataPointer);
+ case 2:
+ return resize(newSize[1], newSize[2], dataPointer, foreignDataPointer);
+ case 3:
+ return resize(newSize[1], newSize[2], newSize[3], dataPointer, foreignDataPointer);
+ case 4:
+ return resize(newSize[1], newSize[2], newSize[3], newSize[4], dataPointer, foreignDataPointer);
+ }
+ return 0;
+}
+
int CalculationData::getSizeX(void)
{
return sizeX;
@@ -561,19 +551,19 @@
switch(dataType)
{
case baseDataTypes::DATA_TYPES::BOOL:
- return (sizeX * sizeY * sizeZ * sizeT)/8;
+ return (sizeX * sizeY * sizeZ * sizeT)/8 + 1;
case baseDataTypes::DATA_TYPES::CHAR:
switch(dimension)
{
case 1:
- return sizeX;
+ return sizeX * sizeof(char);
case 2:
- return sizeX * sizeY;
+ return sizeX * sizeY * sizeof(char);
case 3:
- return sizeX * sizeY * sizeZ;
+ return sizeX * sizeY * sizeZ * sizeof(char);
case 4:
- return sizeX * sizeY * sizeZ * sizeT;
+ return sizeX * sizeY * sizeZ * sizeT * sizeof(char);
}
case baseDataTypes::DATA_TYPES::DOUBLE:
@@ -631,493 +621,64 @@
return 0;
}
-const char *CalculationData::getDataPointer(void)
+int CalculationData::getDimension(void)
{
- return data;
+ return dimension;
}
-const char *CalculationData::getBackBufferDataPointer(void)
+const char *CalculationData::getDataPointer(void)
{
- return dataBorderFree;
+ return data;
}
-void CalculationData::fill(const char *dataPointer)
+void CalculationData::fillData(const char *dataPointer)
{
if(data!=NULL)
- {
memcpy(data, dataPointer, getSizeInByte());
- }
}
-void CalculationData::setCalculationSpace(bool noDataCopy)
+void CalculationData::setForeignDataPointer(char *dataPointer)
{
- minX = 0;
- minY = 0;
- minZ = 0;
- minT = 0;
-
- maxX = sizeX - 1;
- maxY = sizeY - 1;
- maxZ = sizeZ - 1;
- maxT = sizeT - 1;
-
- borderExist = 0;
- if(dataBorderFree)
- {
- delete[] dataBorderFree;
- }
- dataBorderFree = new char[getSizeInByte()];
- calculateBackBufferSize();
- if(!noDataCopy)
- copyData();
+ clearData();
+ data = dataPointer;
}
-void CalculationData::setCalculationSpace(int startX, int endX, bool noDataCopy)
+QString CalculationData::createXmlHeader(void)
{
- minX = startX;
- maxX = endX;
- minY = 0;
- maxY = 0;
- minZ = 0;
- maxZ = 0;
- minT = 0;
- maxT = 0;
- borderExist = 1;
- if(dataBorderFree)
- {
- delete[] dataBorderFree;
- }
- dataBorderFree = new char[((maxX - minX) + 1) * size];
- calculateBackBufferSize();
- if(!noDataCopy)
- copyData();
+ return QString();
}
-void CalculationData::setCalculationSpace(int startX, int startY, int endX, int endY, bool noDataCopy)
+bool CalculationData::setFromXmlString(QString *xmlString)
{
- minX = startX;
- maxX = endX;
- minY = startY;
- maxY = endY;
- minZ = 0;
- maxZ = 0;
- minT = 0;
- maxT = 0;
- borderExist = 1;
- if(dataBorderFree)
- {
- delete[] dataBorderFree;
- }
- dataBorderFree = new char[(((maxX - minX) + 1) * ((maxY - minY) + 1)) * size];
- calculateBackBufferSize();
- if(!noDataCopy)
- copyData();
+ return 1;
}
-void CalculationData::setCalculationSpace(int startX, int startY, int startZ, int endX, int endY, int endZ, bool noDataCopy)
+bool CalculationData::parseXmlElement(QDomElement *root)
{
- minX = startX;
- maxX = endX;
- minY = startY;
- maxY = endY;
- minZ = startZ;
- maxZ = endZ;
- minT = 0;
- maxT = 0;
- borderExist = 1;
- if(dataBorderFree)
- {
- delete[] dataBorderFree;
- }
- dataBorderFree = new char[(((maxX - minX) + 1) * ((maxY - minY) + 1) * ((maxZ - minZ) + 1)) * size];
- calculateBackBufferSize();
- if(!noDataCopy)
- copyData();
+ return 1;
}
-void CalculationData::setCalculationSpace(int startX, in...
[truncated message content] |
|
From: <dhu...@us...> - 2006-12-21 15:51:05
|
Revision: 80
http://svn.sourceforge.net/qcell/?rev=80&view=rev
Author: dhubleizh
Date: 2006-12-21 07:51:01 -0800 (Thu, 21 Dec 2006)
Log Message:
-----------
- updated translations
Modified Paths:
--------------
trunk/qcell/parsers/N/N_pl.qm
trunk/qcell/parsers/N/N_pl.ts
trunk/qcell/visgui/visgui_pl.qm
trunk/qcell/visgui/visgui_pl.ts
Modified: trunk/qcell/parsers/N/N_pl.qm
===================================================================
(Binary files differ)
Modified: trunk/qcell/parsers/N/N_pl.ts
===================================================================
--- trunk/qcell/parsers/N/N_pl.ts 2006-12-21 15:50:38 UTC (rev 79)
+++ trunk/qcell/parsers/N/N_pl.ts 2006-12-21 15:51:01 UTC (rev 80)
@@ -3,49 +3,77 @@
<context>
<name>NParserPlugin</name>
<message>
- <location filename="NParserPlugin.cpp" line="58"/>
+ <location filename="NParserPlugin.cpp" line="41"/>
<source>The input file is to short!</source>
<translation>Plik wejściowy jest za krótki!</translation>
</message>
<message>
- <location filename="NParserPlugin.cpp" line="73"/>
+ <location filename="NParserPlugin.cpp" line="56"/>
<source>Wrong dimensions specificatoin in line %1. It should be of format %2.</source>
<translation>Zła specyfikacja wymiarów w lini %1. Powinna być w formacie %2.</translation>
</message>
<message>
- <location filename="NParserPlugin.cpp" line="104"/>
+ <location filename="NParserPlugin.cpp" line="97"/>
<source>Wrong sizes specification in line %1. It should be of format %2.</source>
<translation>Zła specyfikacja rozmiarów w linii %1. Powinna być w formacie %2.</translation>
</message>
<message>
- <location filename="NParserPlugin.cpp" line="132"/>
+ <location filename="NParserPlugin.cpp" line="135"/>
<source>Wrong zaro point specification in line %1. It should be of format %2.</source>
<translation>Zła specyfikacja punktu zerowego w linii %1. Powinna być w formacie %2.</translation>
</message>
<message>
- <location filename="NParserPlugin.cpp" line="141"/>
+ <location filename="NParserPlugin.cpp" line="144"/>
<source>The number of lines in file doesn't correspond to declared dimensions sizes.</source>
<translation>Liczba linii w pliku nie zgadza się z zadeklarowanymi rozmiarami wymiarów.</translation>
</message>
<message>
<location filename="NParserPlugin.cpp" line="156"/>
<source>Line number %1 isn't of lenght declared in the header: %2.</source>
- <translation>Linia numer %1 nie jest długości zadeklarowanej w nagłówku: %2.</translation>
+ <translation type="obsolete">Linia numer %1 nie jest długości zadeklarowanej w nagłówku: %2.</translation>
</message>
<message>
- <location filename="NParserPlugin.cpp" line="188"/>
+ <location filename="NParserPlugin.cpp" line="203"/>
<source>In line %1 the number of neighbours (%2) exceeded the one declared in the header (%3).</source>
<translation>W linii %1 liczba sąsiadów (%2) przekroczyła tę zadeklarowaną w nagłówku (%3).</translation>
</message>
<message>
- <location filename="NParserPlugin.cpp" line="206"/>
+ <location filename="NParserPlugin.cpp" line="229"/>
<source>The number of neighbours (%1) is smaller then declared in the header(%2).</source>
<translation>Liczba sąsiadów (%1) jest mniejsza niż zadeklarowana w nagłółku (%2).</translation>
</message>
<message>
- <location filename="NParserPlugin.cpp" line="230"/>
+ <location filename="NParserPlugin.cpp" line="244"/>
<source>Neighbours numbers do not ascend in proper manner. There is neighbour nr %1 and then %2.</source>
<translation>Numery sąsiadów nie rosną w odpowiedni sposób. Jest sąsiad nr %1 i potem nr %2.</translation>
</message>
+ <message>
+ <location filename="NParserPlugin.cpp" line="84"/>
+ <source>In line %1 all the values need to be more then 0 for the neighbourhood to be usuable.</source>
+ <translation>W linijce %1 wszystkie wartości muszą być większe niż 0 by sąsiedztwo nadawało się do użytku.</translation>
+ </message>
+ <message>
+ <location filename="NParserPlugin.cpp" line="122"/>
+ <source>In line %1 the zero poin position can't be larger then the dimensions declared in header.</source>
+ <translation>W linijce %1 pozycja odniesienia nie może być większa niż rozmiary wymiarów zadeklarowane w nagłówku.</translation>
+ </message>
+ <message>
+ <location filename="NParserPlugin.cpp" line="159"/>
+ <source>Line number %1 isn't of proper format. It should be %2.</source>
+ <translation>Niepoprawny format linijki numer %1. Powinien być %2.</translation>
+ </message>
+ <message>
+ <location filename="NParserPlugin.cpp" line="190"/>
+ <source>A newly found neighbour in line %1 column %2 already added.</source>
+ <translation>Nowo znaleziony sąsiad w linijce %1 kolumnie %2 wcześniej dodany.</translation>
+ </message>
</context>
+<context>
+ <name>Neighbourhood</name>
+ <message>
+ <location filename="NParserPlugin.cpp" line="40"/>
+ <source>The input file is to short!</source>
+ <translation type="obsolete">Plik wejściowy jest za krótki!</translation>
+ </message>
+</context>
</TS>
Modified: trunk/qcell/visgui/visgui_pl.qm
===================================================================
(Binary files differ)
Modified: trunk/qcell/visgui/visgui_pl.ts
===================================================================
--- trunk/qcell/visgui/visgui_pl.ts 2006-12-21 15:50:38 UTC (rev 79)
+++ trunk/qcell/visgui/visgui_pl.ts 2006-12-21 15:51:01 UTC (rev 80)
@@ -1,6 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="pl">
<context>
+ <name>@default</name>
+ <message>
+ <location filename="main.cpp" line="64"/>
+ <source>Debug</source>
+ <translation type="obsolete">Odpluskwianie</translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="67"/>
+ <source>Warning</source>
+ <translation type="obsolete">Ostrzeżenie</translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="70"/>
+ <source>Critical</source>
+ <translation type="obsolete">Krytyczny</translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="73"/>
+ <source>Fatal</source>
+ <translation type="obsolete">Śmiertelny</translation>
+ </message>
+</context>
+<context>
<name>AboutDialog</name>
<message>
<location filename="AboutDialog.ui" line="13"/>
@@ -21,10 +44,15 @@
<translation>Typ wtyczki %1 nie jest wspierany przez te wtyczkę.</translation>
</message>
<message>
- <location filename="../basesources/GenericParserPlugin.cpp" line="67"/>
+ <location filename="../basesources/GenericParserPlugin.cpp" line="69"/>
<source>This plugin doesn't support parsing of type %1. It supports %2.</source>
<translation>Ta wtyczka nie obsługuję parsowania typu %1. Wspiera typ %2.</translation>
</message>
+ <message>
+ <location filename="../basesources/GenericParserPlugin.cpp" line="34"/>
+ <source>Here I am!</source>
+ <translation>Tutaj jestem!</translation>
+ </message>
</context>
<context>
<name>MainWindow</name>
@@ -135,7 +163,7 @@
<translation>Pokazuje informacje o programie.</translation>
</message>
<message>
- <location filename="MainWindow.cpp" line="71"/>
+ <location filename="MainWindow.cpp" line="105"/>
<source>Open Neighbourhood</source>
<translation>Otwórz Sąsiedztwo</translation>
</message>
@@ -145,9 +173,77 @@
<translation type="obsolete"> pliki</translation>
</message>
<message>
- <location filename="MainWindow.cpp" line="82"/>
+ <location filename="MainWindow.cpp" line="195"/>
<source>files</source>
<translation>pliki</translation>
</message>
+ <message>
+ <location filename="MainWindow.cpp" line="172"/>
+ <source>Plugins warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="97"/>
+ <source>There are no plugins loaded to handle Neighbourhood parsing.</source>
+ <translation>Nie ma załadowanej żadnej wtyczki do obsługi parsowania plików Sąsiedztwa.</translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="136"/>
+ <source>There are no plugins loaded to handle Function parsing.</source>
+ <translation>Nie ma załadowanej żadnej wtyczki do obsługi parsowania Funkcji.</translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="144"/>
+ <source>Open Function</source>
+ <translation>Otwórz Funkcję</translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="174"/>
+ <source>There are no plugins loaded to handle World parsing.</source>
+ <translation>Nie ma załadowanej żadnej wtyczki do parsowania Świata.</translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="182"/>
+ <source>Open World</source>
+ <translation>Otwórz Świat</translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="213"/>
+ <source>Error opening file %1.</source>
+ <translation>Błąd podczas otwierania pliku %1.</translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="251"/>
+ <source>The file extensions %1 isn't supported.</source>
+ <translation>Rozszerzenie pliku %1 nie jest wspierane.</translation>
+ </message>
+ <message>
+ <location filename="MainWindow.cpp" line="261"/>
+ <source>Unsupported file type to parse.</source>
+ <translation>Niewspierany typ pliku do przeczytania.</translation>
+ </message>
</context>
+<context>
+ <name>QApplication</name>
+ <message>
+ <location filename="main.cpp" line="65"/>
+ <source>Debug</source>
+ <translation>Odpluskwianie</translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="68"/>
+ <source>Warning</source>
+ <translation>Ostrzeżenie</translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="71"/>
+ <source>Critical</source>
+ <translation>Krytyczny</translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="74"/>
+ <source>Fatal</source>
+ <translation>Śmiertelny</translation>
+ </message>
+</context>
</TS>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2006-12-29 18:04:43
|
Revision: 81
http://svn.sourceforge.net/qcell/?rev=81&view=rev
Author: dhubleizh
Date: 2006-12-29 10:04:32 -0800 (Fri, 29 Dec 2006)
Log Message:
-----------
- new catalog in doc for thesis writing
- main tex work, two indexes of acronyms and glossaries
- Makefile to build this (complicated build system)
Added Paths:
-----------
trunk/qcell/doc/
trunk/qcell/doc/licenciate_thesis/
trunk/qcell/doc/licenciate_thesis/Makefile
trunk/qcell/doc/licenciate_thesis/acronyms.gdf
trunk/qcell/doc/licenciate_thesis/thesis.bib
trunk/qcell/doc/licenciate_thesis/thesis.gdf
trunk/qcell/doc/licenciate_thesis/thesis.tex
Added: trunk/qcell/doc/licenciate_thesis/Makefile
===================================================================
--- trunk/qcell/doc/licenciate_thesis/Makefile (rev 0)
+++ trunk/qcell/doc/licenciate_thesis/Makefile 2006-12-29 18:04:32 UTC (rev 81)
@@ -0,0 +1,41 @@
+# public domain
+
+thesis=thesis
+acronyms=acronyms
+glossary=glossary
+ids=/usr/share/texmf/tex/latex/glosstex/glosstex.ist
+
+GLOSSARIES=acronyms.gdf thesis.gdf
+TEXFILES=thesis.tex
+tex=pdflatex -interaction=nonstopmode --translate-file=il2-pl
+
+all: compile glossary compile bibliography compile compile
+
+bibliography:
+ bibtex $(thesis)
+ $(tex) $(thesis)
+ $(tex) $(thesis)
+
+glossary:
+ glosstex $(thesis) $(GLOSSARIES)
+ makeindex $(thesis).gxs -o $(thesis).glx -s $(ids)
+ $(tex) $(thesis)
+
+compile: $(TEXFILES)
+ $(tex) $(thesis)
+
+dvi: all
+ platex $(thesis)
+pdf: all
+ $(tex} $(thesis)
+
+clean: clean_pdf clean_dvi clean_bbl
+ rm -f *.{aux,glx,gxg,gxs,ilg,log,out,toc}
+
+clean_bbl:
+ rm -f *.{bbl,blg}
+clean_pdf:
+ rm -f *.pdf
+
+clean_dvi:
+ rm -f *.dvi
Added: trunk/qcell/doc/licenciate_thesis/acronyms.gdf
===================================================================
--- trunk/qcell/doc/licenciate_thesis/acronyms.gdf (rev 0)
+++ trunk/qcell/doc/licenciate_thesis/acronyms.gdf 2006-12-29 18:04:32 UTC (rev 81)
@@ -0,0 +1,7 @@
+@entry{GUI, GUI, Graphical User Interface} cz\xEAsto nazywany te\xBF \xB6rodowiskiem graficznym---og\xF3lne okre\xB6lenie sposobu prezentacji informacji przez komputer oraz interakcji z u\xBFytkownikiem, polegaj\xB1cego na rysowaniu i obs\xB3ugiwaniu widget\xF3w.\citep{plwiki}
+
+@entry{IDE, IDE, Integrated Development Environment} Zintegrowane \xB6rodowisko programistyczne---jest to aplikacja lub zesp\xF3\xB3 aplikacji (\xB6rodowisko) s\xB3u\xBF\xB1cych do tworzenia, modyfikowania, testowania i konserwacji oprogramowania.\citep{plwiki}
+
+@entry{EPS, EPS, Encapsulated PostScript} format plik\xF3w, b\xEAd\xB1cy podzbiorem j\xEAzyka PostScript, kt\xF3rego g\xB3\xF3wnym przeznaczeniem jest przechowywanie pojedynczych stron zawieraj\xB1cych grafik\xEA komputerow\xB1 w postaci umo\xBFliwiajacej osadzanie ich w innych dokumentach.\citep{plwiki}
+
+@entry{SVG, SVG, Scalable Vector Graphics} uniwersalny format dwuwymiarowej, statycznej i animowanej grafiki wektorowej, nieobwarowany licencjami i patentami, stworzony w 1999 roku przez W3C z my\xB6l\xB1 o zastosowaniu go na stronach WWW. U\xBFywany r\xF3wnie\xBF jako niezale\xBFny od platformy systemowej format grafiki. SVG nale\xBFy do rodziny XML, wi\xEAc mo\xBFe by\xE6 integrowany z innymi j\xEAzykami, jak na przyk\xB3ad XHTML.\citep{plwiki}
Added: trunk/qcell/doc/licenciate_thesis/thesis.bib
===================================================================
--- trunk/qcell/doc/licenciate_thesis/thesis.bib (rev 0)
+++ trunk/qcell/doc/licenciate_thesis/thesis.bib 2006-12-29 18:04:32 UTC (rev 81)
@@ -0,0 +1,16 @@
+@MISC{plwiki,
+ title = {Wikipedia, wydanie polskie},
+ howpublished = {\url{http://pl.wikipedia.org}},
+ month = {listopad},
+ year = {2006},
+ organization = {Wikimedia Foundation Inc.}
+}
+
+@MISC{enwiki,
+ title = {Wikipedia, wydanie anglielskie},
+ howpublished = {\url{http://en.wikipedia.org}},
+ month = {listopad},
+ year = {2006},
+ organization = {Wikimedia Foundation Inc.}
+}
+
Added: trunk/qcell/doc/licenciate_thesis/thesis.gdf
===================================================================
--- trunk/qcell/doc/licenciate_thesis/thesis.gdf (rev 0)
+++ trunk/qcell/doc/licenciate_thesis/thesis.gdf 2006-12-29 18:04:32 UTC (rev 81)
@@ -0,0 +1,4 @@
+@entry{debugger, debugger} (pol. odpluskwiacz, polskie t\xB3umaczenie u\xBFywane tak\xBFe w slangu polskich programist\xF3w) ---- program komputerowy s\xB3u\xBF\xB1cy do analizy kodu \xBCr\xF3d\xB3owego lub kodu maszynowego w celu znalezienia w nim b\xB3\xEAd\xF3w programistycznych (bug\xF3w). Proces naprawy kodu za pomoc\xB1 debugera okre\xB6la si\xEA mianem debugowania, lub bardziej po polsku --- uruchamiania.\citep{plwiki}
+
+@entry{GNOME, GNOME, GNU Network Object Model Environment} jest graficznym \xB6rodowiskiem u\xBFytkownika opartym na systemie X Window System oraz widgetach GTK+ i GDK. Dzia\xB3a na wi\xEAkszo\xB6ci system\xF3w typu Unix.\citep{plwiki}
+
Added: trunk/qcell/doc/licenciate_thesis/thesis.tex
===================================================================
--- trunk/qcell/doc/licenciate_thesis/thesis.tex (rev 0)
+++ trunk/qcell/doc/licenciate_thesis/thesis.tex 2006-12-29 18:04:32 UTC (rev 81)
@@ -0,0 +1,91 @@
+% File: thesis.tex
+% Created: czw gru 28 06:00 2006 C
+% Last Change: czw gru 28 06:00 2006 C
+%
+% TODO:
+% - Rozbi\xE6 rozdzia\xB3y na osobne pliki (u\xB3atwi r\xF3wnoczesn\xB1 prac\xEA)
+% - Zrobi\xE6 stron\xEA tytu\xB3ow\xB1 (omin\xB1\xE6 problem numerowania stron i hypertex-a
+% - Pozbiera\xE6 do kupy bibliografi\xEA
+% - Okre\xB6li\xE6 format drukowania bibliografii
+%
+%&glosstex thesis thesis.gdf
+%&makeindex thesis.gxs -o thesis.glx -s /usr/share/texmf/tex/latex/glosstex/glosstex.ist
+
+% Typ rekomendowany na prac\xEA PhD
+\documentclass[12pt,a4paper]{report}
+
+% Po polsku
+\usepackage{polski}
+
+% \xAFeby mo\xBFna by\xB3o dawa\xE6 linki
+\usepackage{url}
+
+% Bibliografia w dowolnym formacie
+\usepackage{natbib}
+
+% Korzystamy z bajer\xF3w pdf'a, jak kolorowe linki
+\pdfcompresslevel=9
+% Na razie wy\xB3\xB1czam, dop\xF3ki nie wymy\xB6l\xEA, jak poradzi\xE6 sobie ze stron\xB1 tytu\xB3ow\xB1
+\usepackage[colorlinks,hyperindex,plainpages=false]{hyperref}
+
+% Skr\xF3ty i terminy u\xBFywane
+\usepackage[footnote,refpage]{glosstex}
+
+\begin{document}
+\title{Wizualizacja przetwarzania w automacie kom\xF3rkowym z wybranym obserwatorem}
+% Sorry - po prostu czysto alfabetycznie
+\author{Cezary Krzy\xBFanowski,\\
+Leszek Smentek}
+\date{\today}
+%\maketitle
+
+% Spis tre\xB6ci augomagicznie generowany z tytu\xB3\xF3w rozdzia\xB3\xF3w i sekcji
+\tableofcontents
+
+%Jedziemy z koksem
+\chapter{Wprowadzenie}
+\section{Uzasadnienie tematu}
+\section{Cel i zakres pracy}
+
+\chapter{Zakres problematyki}
+
+\chapter{Koncepcja rozwi\xB1zania}
+
+\chapter{Implementacja}
+\section{Stosowane narz\xEAdzia}
+
+\subsection{Przy pisaniu projektu}
+\begin{description}
+ \item[gcc] Wieloplatformowy zestaw kompilator\xF3w. W szczeg\xF3lno\xB6ci u\xBFywany by\xB3 kompilator j\xEAzyka C++~--- gcc-c++ w wersji 4.2.\\\url{http://gcc.gnu.org/}
+ \item[gdb] Wieloplatformowy \gls{debugger} w wersji 6.6.\\\url{http://www.gnu.org/software/gdb/}
+ \item[Qt] Zestaw bibliotek firmy Trolltech\textsuperscript{\textregistered} do wieloplatformowego tworzenia oprogramowania, w szczeg\xF3lno\xB6ci do tworzenia \ac{GUI} o natywnym, dla danej platoformy, wygl\xB1dzie. Biblioteki te zawieraj\xB1 szerok\xB1 gam\xEA klas og\xF3lnego zastosowania, oraz w\xB3asny system kompilacji. U\xBFyto wersji 4.2.\\\url{http://www.trolltech.com/products/qt/}
+ \item[Vim] Niezwykle rozszerzalny, wieloplatformowy edytor tekstu (i nie tylko) z szerok\xB1 gam\xB1 wtyczek do pracy z niemal\xBFe dowolnym typem plik\xF3w. Stanowi\xB3 na zmian\xEA \ac{IDE}, \gls{debugger} oraz program do sk\xB3adu tekstu. Pisz\xB1cy te s\xB3owa pozwoli sobie w tym miejscu na drobn\xB1 reklam\xEA, gdy\xBF przekonany jeset, i\xBF interfejs vim-a, b\xEAd\xB1cy powodem wielu nieprzespanych nocy pocz\xB1tkuj\xB1cych u\xBFytkownik\xF3w, przy odrobinie wprawy i nauki pozwoli\xB3 zaoszcz\xEAdzi\xE6 godziny pracy. U\xBFyto wersji 7.0.\\\url{http://www.vim.org/}
+\end{description}
+
+\subsection{Przy pisaniu pracy}
+\begin{description}
+ \item [AcrobatReader] Interpreter plik\xF3w pdf.\\\url{http://www.adobe.com/products/acrobat/readstep2.html}.
+ \item [aspell] Wolnodost\xEApny program do sprawdzania pisowni i gramatyki wraz ze s\xB3ownikami w wielu j\xEAzykach.\\\url{http://aspell.sourceforge.net/}
+ \item [Evince] Interpreter plik\xF3w pdf w \xB6rodowisku \gls{GNOME} na platformie Linux.\\\url{http://www.gnome.org/projects/evince/}
+ \item [GIMP] Program do tworzenia grafiki rastrowej i przekszta\xB3cania obraz\xF3w do formatu \ac{EPS} wykorzystywanego w \TeX{}ie.\\\url{http://www.gimp.org/}
+ \item [Inkspace] Program do tworzenia grafiki wektorowej, g\xB3\xF3wnie w formacie \ac{SVG}.\\\url{http://www.inkscape.org/}
+ \item [\TeX{}] \xA6rodowisko wieloplatformowego sk\xB3adania tekstu, wraz z zainstalowanym systemem mark \LaTeXe{}.\\\url{http://www.tug.org/}
+\end{description}
+
+\section{Projekt}
+\section{Plan test\xF3w}
+
+\chapter{Wyniki}
+
+\chapter{Zako\xF1czenie}
+
+% Bibliografia w zewn\xEAtrznym pliku w/g standardu natbib
+\bibliographystyle{plain}
+\bibliography{thesis}
+
+% indeksy i spisy
+\printglosstex(acr)
+\printglosstex(glo)
+
+\end{document}
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <le...@us...> - 2006-12-31 10:41:28
|
Revision: 87
http://svn.sourceforge.net/qcell/?rev=87&view=rev
Author: lessm
Date: 2006-12-31 02:41:23 -0800 (Sun, 31 Dec 2006)
Log Message:
-----------
- method resize in CalculationData change to resizeData
- Renderer class can render 1D,2D,3D data
Modified Paths:
--------------
trunk/qcell/baseheaders/CalculationData.h
trunk/qcell/baseheaders/Calculator.h
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/basesources/Calculator.cpp
trunk/qcell/basesources/LocalFunction.cpp
trunk/qcell/basesources/Neighbourhood.cpp
trunk/qcell/basesources/Renderer.cpp
Modified: trunk/qcell/baseheaders/CalculationData.h
===================================================================
--- trunk/qcell/baseheaders/CalculationData.h 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/baseheaders/CalculationData.h 2006-12-31 10:41:23 UTC (rev 87)
@@ -22,7 +22,7 @@
protected:
void clearData(void);
- bool resize(bool foreignDataPointer=0, char *dataPointer=NULL);
+ bool resizeData(bool foreignDataPointer=0, char *dataPointer=NULL);
void * getAddressAt(int x, int y, int z, int t);
public:
@@ -58,14 +58,14 @@
baseDataTypes::DATA_TYPES getDataType(void);
int getDataSize(void);
- bool resize(int x, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(int x, int y, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(int x, int y, int z, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(int x, int y, int z, int t, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, int y, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, int y, int z, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, int y, int z, int t, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
int getSizeX(void);
- int getSizeY(void);
+ int getSizeY(void);
int getSizeZ(void);
int getSizeT(void);
int getSizeInByte(void);
Modified: trunk/qcell/baseheaders/Calculator.h
===================================================================
--- trunk/qcell/baseheaders/Calculator.h 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/baseheaders/Calculator.h 2006-12-31 10:41:23 UTC (rev 87)
@@ -33,7 +33,7 @@
bool setCalculationSpace(QVector<int> start, QVector<int> end, bool dataCopy=0, char *foreignDataPointer=NULL);
int getOutputDataSizeInByte(void);
- const char *getOutputDataPointer(void);
+ /*const*/ char *getOutputDataPointer(void);
void calculate(void);
};
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/baseheaders/Renderer.h 2006-12-31 10:41:23 UTC (rev 87)
@@ -10,40 +10,62 @@
#include <QImage>
#include <QPainter>
#include <QObject>
+#include <QtOpengl>
+struct SYMBOL
+{
+ bool hide;
+ QColor color;
+ float floatColorDiffuse[4], floatColorSpectacular[4];
+ int primitiveID;
+};
+
class Renderer : public CalculationData, public QGLWidget
{
Q_OBJECT
private:
protected:
- QVector<QColor> ColorMap;
+ QVector<SYMBOL> symbolsMap;
QGLPixelBuffer *OGLpBuffer;
bool discretValues;
+ QVector<GLuint> primitives;
+ QVector<double> rotation, translation;
+
+ GLuint generateBox(void);
+
QImage render1D(void);
- QImage render2D(void);
+ QImage render2D(int zval=0);
QImage render3D(void);
+protected:
+ void initializeGL();
+ void paintGL();
+ void resizeGL(int width, int height);
+
public:
- typedef enum RENDER_MODE
- {
- TEXT,
- GRAPHICS
- };
Renderer(QWidget *parent);
~Renderer();
void setDataType(baseDataTypes::DATA_TYPES type = baseDataTypes::CHAR);
- bool resize(int x, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(int x, int y, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(int x, int y, int z, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(int x, int y, int z, int t, char *dataPointer=NULL, bool foreignDataPointer=0);
- bool resize(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, int y, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, int y, int z, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(int x, int y, int z, int t, char *dataPointer=NULL, bool foreignDataPointer=0);
+ bool resizeData(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
+ void render(void);
QImage renderToQImage(void);
- void setColorInMap(int value, QColor color);
+ bool setSymbolColor(int index, QColor color);
+ bool hideSymbol(int index);
+ bool showSymbol(int index);
+ bool setSymbolPrimitive(int index, int primitiveId);
+ void addSymbol(SYMBOL symbol);
+
+ void setTranslation(float x, float y, float z);
+ void setRotation(float x, float y, float z);
};
#endif
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/basesources/CalculationData.cpp 2006-12-31 10:41:23 UTC (rev 87)
@@ -8,7 +8,7 @@
data = NULL;
}
-bool CalculationData::resize(bool foreignDataPointer, char *dataPointer)
+bool CalculationData::resizeData(bool foreignDataPointer, char *dataPointer)
{
clearData();
if(!foreignDataPointer)
@@ -33,14 +33,14 @@
void * CalculationData::getAddressAt(int x, int y, int z, int t)
{
int dSize;
- if(dataType==baseDataTypes::NONE)
+ if(dataType==baseDataTypes::DATA_TYPES::NONE)
return NULL;
return data + dataSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
}
CalculationData::CalculationData()
{
- dataType = baseDataTypes::NONE;
+ dataType = baseDataTypes::DATA_TYPES::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -50,7 +50,7 @@
CalculationData::~CalculationData()
{
- dataType = baseDataTypes::NONE;
+ dataType = baseDataTypes::DATA_TYPES::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -61,7 +61,7 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
case baseDataTypes::CHAR:
@@ -86,16 +86,16 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return *((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return *((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, 0, 0)));
case baseDataTypes::FLOAT:
return (int)(*((float *)(getAddressAt(x, y, 0, 0))));
@@ -110,16 +110,16 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return *((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return *((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, z, 0)));
case baseDataTypes::FLOAT:
@@ -135,16 +135,16 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return *((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return *((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, z, t)));
case baseDataTypes::FLOAT:
@@ -177,18 +177,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, 0, 0, 0)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, 0, 0, 0))) = (short)val;
break;
}
@@ -198,18 +198,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, y, 0, 0)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, y, 0, 0))) = (short)val;
break;
}
@@ -219,18 +219,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, y, z, 0)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, y, z, 0))) = (short)val;
break;
}
@@ -240,18 +240,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, y, z, t)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, y, z, t))) = (short)val;
break;
}
@@ -261,22 +261,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, 0, 0, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, 0, 0, 0)));
}
return 0.0;
@@ -286,22 +286,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, 0, 0)));
}
return 0.0;
@@ -311,22 +311,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, z, 0)));
}
return 0.0;
@@ -336,22 +336,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, z, t)));
}
return 0.0;
@@ -377,11 +377,11 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, 0, 0, 0))) = (float)val;
break;
}
@@ -391,11 +391,11 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, y, 0, 0))) = (float)val;
break;
}
@@ -405,11 +405,11 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, y, z, 0))) = (float)val;
break;
}
@@ -419,17 +419,17 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, y, z, t))) = (float)val;
break;
}
}
-void CalculationData::setDataType(baseDataTypes::DATA_TYPES type)
+void CalculationData::setDataType(DATA_TYPES type)
{
dataType = type;
dataSize = 0;
@@ -470,58 +470,58 @@
return dataSize;
}
-bool CalculationData::resize(int x, char *dataPointer, bool foreignDataPointer)
+bool CalculationData::resizeData(int x, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = 0;
sizeZ = 0;
sizeT = 0;
dimension = 1;
- return resize(foreignDataPointer, dataPointer);
+ return resizeData(foreignDataPointer, dataPointer);
}
-bool CalculationData::resize(int x, int y, char *dataPointer, bool foreignDataPointer)
+bool CalculationData::resizeData(int x, int y, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = y;
sizeZ = 0;
sizeT = 0;
dimension = 2;
- return resize(foreignDataPointer, dataPointer);;
+ return resizeData(foreignDataPointer, dataPointer);;
}
-bool CalculationData::resize(int x, int y, int z, char *dataPointer, bool foreignDataPointer)
+bool CalculationData::resizeData(int x, int y, int z, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = y;
sizeZ = z;
sizeT = 0;
dimension = 3;
- return resize(foreignDataPointer, dataPointer);;
+ return resizeData(foreignDataPointer, dataPointer);;
}
-bool CalculationData::resize(int x, int y, int z, int t, char *dataPointer, bool foreignDataPointer)
+bool CalculationData::resizeData(int x, int y, int z, int t, char *dataPointer, bool foreignDataPointer)
{
sizeX = x;
sizeY = y;
sizeZ = z;
sizeT = t;
dimension = 4;
- return resize(foreignDataPointer, dataPointer);;
+ return resizeData(foreignDataPointer, dataPointer);
}
-bool CalculationData::resize(QVector<int> newSize, char *dataPointer, bool foreignDataPointer)
+bool CalculationData::resizeData(QVector<int> newSize, char *dataPointer, bool foreignDataPointer)
{
switch(newSize.size())
{
case 1:
- return resize(newSize[0], dataPointer, foreignDataPointer);
+ return resizeData(newSize[0], dataPointer, foreignDataPointer);
case 2:
- return resize(newSize[1], newSize[2], dataPointer, foreignDataPointer);
+ return resizeData(newSize[1], newSize[2], dataPointer, foreignDataPointer);
case 3:
- return resize(newSize[1], newSize[2], newSize[3], dataPointer, foreignDataPointer);
+ return resizeData(newSize[1], newSize[2], newSize[3], dataPointer, foreignDataPointer);
case 4:
- return resize(newSize[1], newSize[2], newSize[3], newSize[4], dataPointer, foreignDataPointer);
+ return resizeData(newSize[1], newSize[2], newSize[3], newSize[4], dataPointer, foreignDataPointer);
}
return 0;
}
@@ -550,10 +550,10 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
return (sizeX * sizeY * sizeZ * sizeT)/8 + 1;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
switch(dimension)
{
case 1:
@@ -566,7 +566,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(char);
}
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
switch(dimension)
{
case 1:
@@ -579,7 +579,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(double);
}
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
switch(dimension)
{
case 1:
@@ -592,7 +592,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(float);
}
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
switch(dimension)
{
case 1:
@@ -605,7 +605,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(int);
}
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
switch(dimension)
{
case 1:
@@ -666,16 +666,16 @@
switch(cData.getDimension())
{
case 1:
- resize(cData.getSizeX());
+ resizeData(cData.getSizeX());
break;
case 2:
- resize(cData.getSizeX(), cData.getSizeY());
+ resizeData(cData.getSizeX(), cData.getSizeY());
break;
case 3:
- resize(cData.getSizeX(), cData.getSizeY(), cData.getSizeZ());
+ resizeData(cData.getSizeX(), cData.getSizeY(), cData.getSizeZ());
break;
case 4:
- resize(cData.getSizeX(), cData.getSizeY(), cData.getSizeZ(), cData.getSizeT());
+ resizeData(cData.getSizeX(), cData.getSizeY(), cData.getSizeZ(), cData.getSizeT());
break;
}
Modified: trunk/qcell/basesources/Calculator.cpp
===================================================================
--- trunk/qcell/basesources/Calculator.cpp 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/basesources/Calculator.cpp 2006-12-31 10:41:23 UTC (rev 87)
@@ -177,7 +177,7 @@
return 0;
}
-const char *Calculator::getOutputDataPointer(void)
+/*const*/ char *Calculator::getOutputDataPointer(void)
{
return outData;
}
Modified: trunk/qcell/basesources/LocalFunction.cpp
===================================================================
--- trunk/qcell/basesources/LocalFunction.cpp 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/basesources/LocalFunction.cpp 2006-12-31 10:41:23 UTC (rev 87)
@@ -5,20 +5,20 @@
switch(functionMode)
{
- case LocalFunction::SUM:
+ case LocalFunction::FUNCTION_TYPE::SUM:
numElements = 1;
for(int i=0;i<sumArguments.size();++i)
numElements *= sumArguments[i].size() * (maxArgVal - 1) + 1;
break;
- case LocalFunction::SUM_AND_SWITCH:
+ case LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH:
numElements = 1;
for(int i=0;i<sumArguments.size();++i)
numElements *= sumArguments[i].size() * (maxArgVal - 1) + 1;
numElements *= freeArguments.size() * maxArgVal;
break;
- case LocalFunction::SWITCH:
+ case LocalFunction::FUNCTION_TYPE::SWITCH:
numElements = numArg * maxArgVal;
break;
}
@@ -32,7 +32,7 @@
int i, t, out;
QVector<int> temp;
- if(functionMode==LocalFunction::SCRIPT)
+ if(functionMode==LocalFunction::FUNCTION_TYPE::SCRIPT)
return -1;
temp.resize(maxArgVal);
@@ -130,12 +130,12 @@
LocalFunction::LocalFunction()
{
- functionMode = LocalFunction::SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
}
LocalFunction::~LocalFunction()
{
- functionMode = LocalFunction::SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
}
void LocalFunction::init(int numberOfArguments, int alphabetSize)
@@ -145,7 +145,7 @@
valueTable.clear();
sumArguments.clear();
freeArguments.clear();
- functionMode = LocalFunction::SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
}
void LocalFunction::addSumArguments(QVector<int> args)
@@ -162,12 +162,12 @@
}
if(freeArguments.size()==0)
- functionMode = LocalFunction::SUM;
+ functionMode = LocalFunction::FUNCTION_TYPE::SUM;
else
if(freeArguments.size()==numArg)
- functionMode = LocalFunction::SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
else
- functionMode = LocalFunction::SUM_AND_SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH;
}
}
@@ -184,12 +184,12 @@
freeArguments<<i;
if(freeArguments.size()==0)
- functionMode = LocalFunction::SUM;
+ functionMode = LocalFunction::FUNCTION_TYPE::SUM;
else
if(freeArguments.size()==numArg)
- functionMode = LocalFunction::SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
else
- functionMode = LocalFunction::SUM_AND_SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH;
}
}
@@ -198,13 +198,13 @@
sumArguments.clear();
freeArguments.clear();
valueTable.clear();
- functionMode = LocalFunction::SWITCH;
+ functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
}
void LocalFunction::setScript(QString scriptData)
{
script = scriptData;
- functionMode = LocalFunction::SCRIPT;
+ functionMode = LocalFunction::FUNCTION_TYPE::SCRIPT;
}
void LocalFunction::setFunctonType(LocalFunction::FUNCTION_TYPE type)
@@ -221,13 +221,13 @@
{
switch(functionMode)
{
- case LocalFunction::SUM:
+ case LocalFunction::FUNCTION_TYPE::SUM:
return 1;
- case LocalFunction::SUM_AND_SWITCH:
+ case LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH:
return freeArguments.size() + 1;
- case LocalFunction::SWITCH:
+ case LocalFunction::FUNCTION_TYPE::SWITCH:
return freeArguments.size();
}
@@ -256,11 +256,11 @@
resizeValueTable();
switch(functionMode)
{
- case LocalFunction::SUM:
+ case LocalFunction::FUNCTION_TYPE::SUM:
valueTable[sum] = value;
break;
- case LocalFunction::SUM_AND_SWITCH:
+ case LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH:
offset = sum * freeArguments.size() * maxArgVal;
for(int i=offset;i<freeArguments.size() * maxArgVal + offset;++i)
valueTable[i] = value;
@@ -333,7 +333,7 @@
int i, index = 0, temp;
if(valueTable.empty())
resizeValueTable();
- if(functionMode==LocalFunction::SCRIPT)
+ if(functionMode==LocalFunction::FUNCTION_TYPE::SCRIPT)
return -1;
QVector<int> sums, freeArgs;
@@ -342,7 +342,7 @@
switch(functionMode)
{
- case LocalFunction::SCRIPT:
+ case LocalFunction::FUNCTION_TYPE::SCRIPT:
break;
default:
index = calculateSumsIndex(sums) + calculateSwitchIndex(freeArgs);
@@ -357,12 +357,12 @@
double out = 0.0;
switch(functionMode)
{
- case LocalFunction::SUM:
+ case LocalFunction::FUNCTION_TYPE::SUM:
for (i=0;i<args.size();++i)
out += args[i];
break;
- case LocalFunction::SCRIPT:
+ case LocalFunction::FUNCTION_TYPE::SCRIPT:
break;
}
Modified: trunk/qcell/basesources/Neighbourhood.cpp
===================================================================
--- trunk/qcell/basesources/Neighbourhood.cpp 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/basesources/Neighbourhood.cpp 2006-12-31 10:41:23 UTC (rev 87)
@@ -282,22 +282,22 @@
dType = type;
switch(dType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
dataSize = sizeof(char);
break;
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
dataSize = sizeof(double);
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
dataSize = sizeof(float);
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
dataSize = sizeof(int);
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
dataSize = sizeof(short);
break;
}
@@ -311,38 +311,38 @@
int i;
switch(dType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.iValue = *((char *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.dValue = *((double *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.dValue = *((float *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.iValue = *((int *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.iValue = *((short *)(address + neighbourVector[i].offset));
Modified: trunk/qcell/basesources/Renderer.cpp
===================================================================
--- trunk/qcell/basesources/Renderer.cpp 2006-12-31 10:15:35 UTC (rev 86)
+++ trunk/qcell/basesources/Renderer.cpp 2006-12-31 10:41:23 UTC (rev 87)
@@ -1,24 +1,71 @@
#include "../baseheaders/Renderer.h"
+GLuint Renderer::generateBox()
+{
+ GLuint list = glGenLists(1);
+ glNewList(list, GL_COMPILE);
+ glBegin(GL_QUADS);
+
+ glNormal3f( 0.0f, 0.0f, 1.0f);
+ glVertex3f(-1.0f, 1.0f, 1.0f);
+ glVertex3f(-1.0f, -1.0f, 1.0f);
+ glVertex3f( 1.0f, -1.0f, 1.0f);
+ glVertex3f( 1.0f, 1.0f, 1.0f);
+
+ glNormal3f( 0.0f, 0.0f, -1.0f);
+ glVertex3f( 1.0f, 1.0f, -1.0f);
+ glVertex3f( 1.0f, -1.0f, -1.0f);
+ glVertex3f(-1.0f, -1.0f, -1.0f);
+ glVertex3f(-1.0f, 1.0f, -1.0f);
+
+ glNormal3f( 0.0f, -1.0f, 0.0f);
+ glVertex3f(-1.0f, -1.0f, 1.0f);
+ glVertex3f(-1.0f, -1.0f, -1.0f);
+ glVertex3f( 1.0f, -1.0f, -1.0f);
+ glVertex3f( 1.0f, -1.0f, 1.0f);
+
+ glNormal3f( 0.0f, 1.0f, 0.0f);
+ glVertex3f( 1.0f, 1.0f, 1.0f);
+ glVertex3f( 1.0f, 1.0f, -1.0f);
+ glVertex3f(-1.0f, 1.0f, -1.0f);
+ glVertex3f(-1.0f, 1.0f, 1.0f);
+
+ glNormal3f( 1.0f, 0.0f, 0.0f);
+ glVertex3f( 1.0f, -1.0f, -1.0f);
+ glVertex3f( 1.0f, 1.0f, -1.0f);
+ glVertex3f( 1.0f, 1.0f, 1.0f);
+ glVertex3f( 1.0f, -1.0f, 1.0f);
+
+ glNormal3f(-1.0f, 0.0f, 0.0f);
+ glVertex3f(-1.0f, 1.0f, 1.0f);
+ glVertex3f(-1.0f, 1.0f, -1.0f);
+ glVertex3f(-1.0f, -1.0f, -1.0f);
+ glVertex3f(-1.0f, -1.0f, 1.0f);
+
+ glEnd();
+ glEndList();
+ return list;
+}
+
QImage Renderer::render1D(void)
{
QPainter painter(OGLpBuffer);
for(int x=0;x<sizeX;++x)
{
- painter.setPen(ColorMap[getValueAt_i(x)]);
+ painter.setPen(symbolsMap[getValueAt_i(x)].color);
painter.drawPoint(x, 0);
}
return OGLpBuffer->toImage();
}
-QImage Renderer::render2D(void)
+QImage Renderer::render2D(int zval)
{
QPainter painter(OGLpBuffer);
for(int y=0;y<sizeY;++y)
{
for(int x=0;x<sizeX;++x)
{
- painter.setPen(ColorMap[getValueAt_i(x, y)]);
+ painter.setPen(symbolsMap[getValueAt_i(x, y, zval)].color);
painter.drawPoint(x, y);
}
}
@@ -27,18 +74,95 @@
QImage Renderer::render3D(void)
{
- return QImage();
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ glTranslated(translation[0], translation[1], translation[2]);
+ glRotatef(rotation[0], 1.0f, 0.0f, 0.0f);
+ glRotatef(rotation[1], 0.0f, 1.0f, 0.0f);
+ glRotatef(rotation[2], 0.0f, 0.0f, 1.0f);
+ render();
+ return grabFrameBuffer();
}
+void Renderer::initializeGL()
+ {
+ qglClearColor(QColor(0,0,0));
+ glShadeModel(GL_SMOOTH);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_CULL_FACE);
+
+ //glEnable(GL_COLOR_MATERIAL);
+
+ //glEnable(GL_NORMALIZE);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ float ambient[] = {0.02f, 0.02f, 0.02f, 1.0f};
+ float diffuse[] = {0.9f, 0.9f, 0.9f, 1.0f};
+ float spectacular[] = {1.0f, 1.0f, 1.0f, 1.0f};
+ float position[] = { -1000.0f, 1000.0f, 1000.0f, 1.0f};
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, spectacular);
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+
+ primitives<<generateBox();
+ }
+
+ void Renderer::paintGL()
+ {
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glLoadIdentity();
+
+ glTranslated(translation[0], translation[1], translation[2]);
+ glRotatef(rotation[0], 1.0f, 0.0f, 0.0f);
+ glRotatef(rotation[1], 0.0f, 1.0f, 0.0f);
+ glRotatef(rotation[2], 0.0f, 0.0f, 1.0f);
+
+ render();
+ }
+
+ void Renderer::resizeGL(int width, int height)
+ {
+ glViewport(0, 0, width, height);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ //glOrtho(-10.0, 10.0, 10.0, -10.0, 0.1, 15.0);
+ gluPerspective(75.0f, (GLdouble)width / (GLdouble)height, 0.1f, 1000.0f);
+ glMatrixMode(GL_MODELVIEW);
+ glTranslated(0.0, 0.0, -10.0);
+ }
+
Renderer::Renderer(QWidget *parent) : QGLWidget(parent)
{
discretValues = 1;
OGLpBuffer = ...
[truncated message content] |
|
From: <le...@us...> - 2007-01-04 09:32:55
|
Revision: 92
http://svn.sourceforge.net/qcell/?rev=92&view=rev
Author: lessm
Date: 2007-01-04 01:32:52 -0800 (Thu, 04 Jan 2007)
Log Message:
-----------
- 2d rendering have software rendering mode
Modified Paths:
--------------
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/basesources/Renderer.cpp
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-02 16:29:31 UTC (rev 91)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-04 09:32:52 UTC (rev 92)
@@ -27,6 +27,8 @@
protected:
QVector<SYMBOL> symbolsMap;
QGLPixelBuffer *OGLpBuffer;
+ QImage *imageBuffer;
+ QPainter painter;
bool discretValues;
QVector<GLuint> primitives;
@@ -57,7 +59,7 @@
bool resizeData(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
void render(void);
- QImage renderToQImage(void);
+ QImage renderToQImage(int zplane=-1);
bool setSymbolColor(int index, QColor color);
bool hideSymbol(int index);
bool showSymbol(int index);
Modified: trunk/qcell/basesources/Renderer.cpp
===================================================================
--- trunk/qcell/basesources/Renderer.cpp 2007-01-02 16:29:31 UTC (rev 91)
+++ trunk/qcell/basesources/Renderer.cpp 2007-01-04 09:32:52 UTC (rev 92)
@@ -49,18 +49,28 @@
QImage Renderer::render1D(void)
{
- QPainter painter(OGLpBuffer);
+ if(OGLpBuffer)
+ painter.begin(OGLpBuffer);
+ else
+ painter.begin(imageBuffer);
for(int x=0;x<sizeX;++x)
{
painter.setPen(symbolsMap[getValueAt_i(x)].color);
painter.drawPoint(x, 0);
}
- return OGLpBuffer->toImage();
+ painter.end();
+ if(OGLpBuffer)
+ return OGLpBuffer->toImage();
+
+ return *imageBuffer;
}
QImage Renderer::render2D(int zval)
{
- QPainter painter(OGLpBuffer);
+ if(OGLpBuffer)
+ painter.begin(OGLpBuffer);
+ else
+ painter.begin(imageBuffer);
for(int y=0;y<sizeY;++y)
{
for(int x=0;x<sizeX;++x)
@@ -69,7 +79,11 @@
painter.drawPoint(x, y);
}
}
- return OGLpBuffer->toImage();
+ painter.end();
+ if(OGLpBuffer)
+ return OGLpBuffer->toImage();
+
+ return *imageBuffer;
}
QImage Renderer::render3D(void)
@@ -140,21 +154,22 @@
{
discretValues = 1;
OGLpBuffer = NULL;
-
+ imageBuffer = NULL;
+// painter = NULL;
- SYMBOL baseSymbols;
- baseSymbols.hide = 1;
- baseSymbols.primitiveID = 0;
- addSymbol(baseSymbols);
- setSymbolColor(0, QColor(0,0,0));
+ SYMBOL baseSymbols;
+ baseSymbols.hide = 1;
+ baseSymbols.primitiveID = 0;
+ addSymbol(baseSymbols);
+ setSymbolColor(0, QColor(0,0,0));
- baseSymbols.hide = 0;
- baseSymbols.primitiveID = 0;
- addSymbol(baseSymbols);
- setSymbolColor(1, QColor(255,255,255));
+ baseSymbols.hide = 0;
+ baseSymbols.primitiveID = 0;
+ addSymbol(baseSymbols);
+ setSymbolColor(1, QColor(255,255,255));
- translation.resize(3);
- rotation.resize(3);
+ translation.resize(3);
+ rotation.resize(3);
}
Renderer::~Renderer()
@@ -163,9 +178,17 @@
for(int i=0;i<primitives.size();++i)
glDeleteLists(primitives[i], 1);
+ // if(painter)
+ // delete painter;
+ // painter = NULL;
+
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = NULL;
+
+ if(imageBuffer)
+ delete imageBuffer;
+ imageBuffer = NULL;
}
void Renderer::setDataType(baseDataTypes::DATA_TYPES type)
@@ -193,9 +216,28 @@
if(CalculationData::resizeData(x, dataPointer, foreignDataPointer))
{
+ //if(painter)
+ // delete painter;
+
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = new QGLPixelBuffer(sizeX, 1, format(), this);
+ if(!OGLpBuffer->hasOpenGLPbuffers())
+ {
+ // painter = new QPainter(OGLpBuffer);
+ //}
+ //else
+ //{
+ if(OGLpBuffer)
+ delete OGLpBuffer;
+ OGLpBuffer = NULL;
+
+ if(imageBuffer)
+ delete imageBuffer;
+ imageBuffer = new QImage(sizeX, 1, QImage::Format_RGB32);
+ //painter = new QPainter(imageBuffer);
+
+ }
return 1;
}
return 0;
@@ -205,9 +247,28 @@
{
if(CalculationData::resizeData(x, y, dataPointer, foreignDataPointer))
{
+ //if(painter)
+ // delete painter;
+
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = new QGLPixelBuffer(sizeX, sizeY, format(), this);
+
+ if(!OGLpBuffer->hasOpenGLPbuffers())
+ {
+ // painter = new QPainter(OGLpBuffer);
+ //}
+ //else
+ //{
+ if(OGLpBuffer)
+ delete OGLpBuffer;
+ OGLpBuffer = NULL;
+
+ if(imageBuffer)
+ delete imageBuffer;
+ imageBuffer = new QImage(sizeX, sizeY, QImage::Format_RGB32);
+ //painter = new QPainter(imageBuffer);
+ }
return 1;
}
return 0;
@@ -215,7 +276,34 @@
bool Renderer::resizeData(int x, int y, int z, char *dataPointer, bool foreignDataPointer)
{
- return CalculationData::resizeData(x, y, z, dataPointer, foreignDataPointer);
+
+ if(CalculationData::resizeData(x, y, z, dataPointer, foreignDataPointer))
+ {
+ //if(painter)
+ // delete painter;
+
+ if(OGLpBuffer)
+ delete OGLpBuffer;
+ OGLpBuffer = new QGLPixelBuffer(sizeX, sizeY, format(), this);
+
+ if(!OGLpBuffer->hasOpenGLPbuffers())
+ {
+ //painter = new QPainter(OGLpBuffer);
+ //}
+ //else
+ //{
+ if(OGLpBuffer)
+ delete OGLpBuffer;
+ OGLpBuffer = NULL;
+
+ if(imageBuffer)
+ delete imageBuffer;
+ imageBuffer = new QImage(sizeX, sizeY, QImage::Format_RGB32);
+ //painter = new QPainter(imageBuffer);
+ }
+ return 1;
+ }
+ return 0;
}
bool Renderer::resizeData(int x, int y, int z, int t, char *dataPointer, bool foreignDataPointer)
@@ -260,7 +348,6 @@
{
glPushMatrix();
glTranslatef(mx + (float)x * 2.0f , my + (float)y * 2.0f, mz + (float)z * 2.0f);
- //glColor3ub(symbolsMap[index].color.red(), symbolsMap[index].color.green(), symbolsMap[index].color.blue());
glMaterialfv(GL_FRONT, GL_DIFFUSE, symbolsMap[index].floatColorDiffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, symbolsMap[index].floatColorSpectacular);
glCallList(primitives[symbolsMap[index].primitiveID]);
@@ -271,17 +358,25 @@
}
}
-QImage Renderer::renderToQImage(void)
+QImage Renderer::renderToQImage(int zplane)
{
- switch(dimension)
+ if(zplane==-1)
{
- case 1:
- return render1D();
- case 2:
- return render2D();
- case 3:
- return render3D();
+ switch(dimension)
+ {
+ case 1:
+ return render1D();
+ case 2:
+ return render2D();
+ case 3:
+ return render3D();
+ }
}
+ else
+ {
+ if(dimension>1)
+ return render2D(zplane);
+ }
return QImage();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-05 10:41:17
|
Revision: 93
http://svn.sourceforge.net/qcell/?rev=93&view=rev
Author: dhubleizh
Date: 2007-01-05 02:41:09 -0800 (Fri, 05 Jan 2007)
Log Message:
-----------
- no Cass::Enum::value !!!!!!!
Modified Paths:
--------------
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/basesources/LocalFunction.cpp
trunk/qcell/basesources/Neighbourhood.cpp
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-04 09:32:52 UTC (rev 92)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-05 10:41:09 UTC (rev 93)
@@ -10,7 +10,7 @@
#include <QImage>
#include <QPainter>
#include <QObject>
-#include <QtOpengl>
+#include <QtOpenGL>
struct SYMBOL
{
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2007-01-04 09:32:52 UTC (rev 92)
+++ trunk/qcell/basesources/CalculationData.cpp 2007-01-05 10:41:09 UTC (rev 93)
@@ -33,14 +33,14 @@
void * CalculationData::getAddressAt(int x, int y, int z, int t)
{
int dSize;
- if(dataType==baseDataTypes::DATA_TYPES::NONE)
+ if(dataType==baseDataTypes::NONE)
return NULL;
return data + dataSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
}
CalculationData::CalculationData()
{
- dataType = baseDataTypes::DATA_TYPES::NONE;
+ dataType = baseDataTypes::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -50,7 +50,7 @@
CalculationData::~CalculationData()
{
- dataType = baseDataTypes::DATA_TYPES::NONE;
+ dataType = baseDataTypes::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -61,7 +61,7 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
case baseDataTypes::CHAR:
@@ -86,16 +86,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, 0, 0)));
case baseDataTypes::FLOAT:
return (int)(*((float *)(getAddressAt(x, y, 0, 0))));
@@ -110,16 +110,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, z, 0)));
case baseDataTypes::FLOAT:
@@ -135,16 +135,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, z, t)));
case baseDataTypes::FLOAT:
@@ -177,18 +177,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, 0, 0, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, 0, 0, 0))) = (short)val;
break;
}
@@ -198,18 +198,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, 0, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, 0, 0))) = (short)val;
break;
}
@@ -219,18 +219,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, z, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, z, 0))) = (short)val;
break;
}
@@ -240,18 +240,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, z, t)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, z, t))) = (short)val;
break;
}
@@ -261,22 +261,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, 0, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, 0, 0, 0)));
}
return 0.0;
@@ -286,22 +286,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, 0, 0)));
}
return 0.0;
@@ -311,22 +311,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, z, 0)));
}
return 0.0;
@@ -336,22 +336,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, z, t)));
}
return 0.0;
@@ -377,11 +377,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, 0, 0, 0))) = (float)val;
break;
}
@@ -391,11 +391,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, 0, 0))) = (float)val;
break;
}
@@ -405,11 +405,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, z, 0))) = (float)val;
break;
}
@@ -419,11 +419,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, z, t))) = (float)val;
break;
}
@@ -550,10 +550,10 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
return (sizeX * sizeY * sizeZ * sizeT)/8 + 1;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
switch(dimension)
{
case 1:
@@ -566,7 +566,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(char);
}
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
switch(dimension)
{
case 1:
@@ -579,7 +579,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(double);
}
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
switch(dimension)
{
case 1:
@@ -592,7 +592,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(float);
}
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
switch(dimension)
{
case 1:
@@ -605,7 +605,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(int);
}
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
switch(dimension)
{
case 1:
Modified: trunk/qcell/basesources/LocalFunction.cpp
===================================================================
--- trunk/qcell/basesources/LocalFunction.cpp 2007-01-04 09:32:52 UTC (rev 92)
+++ trunk/qcell/basesources/LocalFunction.cpp 2007-01-05 10:41:09 UTC (rev 93)
@@ -5,20 +5,20 @@
switch(functionMode)
{
- case LocalFunction::FUNCTION_TYPE::SUM:
+ case LocalFunction::SUM:
numElements = 1;
for(int i=0;i<sumArguments.size();++i)
numElements *= sumArguments[i].size() * (maxArgVal - 1) + 1;
break;
- case LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH:
+ case LocalFunction::SUM_AND_SWITCH:
numElements = 1;
for(int i=0;i<sumArguments.size();++i)
numElements *= sumArguments[i].size() * (maxArgVal - 1) + 1;
numElements *= freeArguments.size() * maxArgVal;
break;
- case LocalFunction::FUNCTION_TYPE::SWITCH:
+ case LocalFunction::SWITCH:
numElements = numArg * maxArgVal;
break;
}
@@ -32,7 +32,7 @@
int i, t, out;
QVector<int> temp;
- if(functionMode==LocalFunction::FUNCTION_TYPE::SCRIPT)
+ if(functionMode==LocalFunction::SCRIPT)
return -1;
temp.resize(maxArgVal);
@@ -130,12 +130,12 @@
LocalFunction::LocalFunction()
{
- functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
+ functionMode = LocalFunction::SWITCH;
}
LocalFunction::~LocalFunction()
{
- functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
+ functionMode = LocalFunction::SWITCH;
}
void LocalFunction::init(int numberOfArguments, int alphabetSize)
@@ -145,7 +145,7 @@
valueTable.clear();
sumArguments.clear();
freeArguments.clear();
- functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
+ functionMode = LocalFunction::SWITCH;
}
void LocalFunction::addSumArguments(QVector<int> args)
@@ -162,12 +162,12 @@
}
if(freeArguments.size()==0)
- functionMode = LocalFunction::FUNCTION_TYPE::SUM;
+ functionMode = LocalFunction::SUM;
else
if(freeArguments.size()==numArg)
- functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
+ functionMode = LocalFunction::SWITCH;
else
- functionMode = LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH;
+ functionMode = LocalFunction::SUM_AND_SWITCH;
}
}
@@ -184,12 +184,12 @@
freeArguments<<i;
if(freeArguments.size()==0)
- functionMode = LocalFunction::FUNCTION_TYPE::SUM;
+ functionMode = LocalFunction::SUM;
else
if(freeArguments.size()==numArg)
- functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
+ functionMode = LocalFunction::SWITCH;
else
- functionMode = LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH;
+ functionMode = LocalFunction::SUM_AND_SWITCH;
}
}
@@ -198,13 +198,13 @@
sumArguments.clear();
freeArguments.clear();
valueTable.clear();
- functionMode = LocalFunction::FUNCTION_TYPE::SWITCH;
+ functionMode = LocalFunction::SWITCH;
}
void LocalFunction::setScript(QString scriptData)
{
script = scriptData;
- functionMode = LocalFunction::FUNCTION_TYPE::SCRIPT;
+ functionMode = LocalFunction::SCRIPT;
}
void LocalFunction::setFunctonType(LocalFunction::FUNCTION_TYPE type)
@@ -221,13 +221,13 @@
{
switch(functionMode)
{
- case LocalFunction::FUNCTION_TYPE::SUM:
+ case LocalFunction::SUM:
return 1;
- case LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH:
+ case LocalFunction::SUM_AND_SWITCH:
return freeArguments.size() + 1;
- case LocalFunction::FUNCTION_TYPE::SWITCH:
+ case LocalFunction::SWITCH:
return freeArguments.size();
}
@@ -256,11 +256,11 @@
resizeValueTable();
switch(functionMode)
{
- case LocalFunction::FUNCTION_TYPE::SUM:
+ case LocalFunction::SUM:
valueTable[sum] = value;
break;
- case LocalFunction::FUNCTION_TYPE::SUM_AND_SWITCH:
+ case LocalFunction::SUM_AND_SWITCH:
offset = sum * freeArguments.size() * maxArgVal;
for(int i=offset;i<freeArguments.size() * maxArgVal + offset;++i)
valueTable[i] = value;
@@ -333,7 +333,7 @@
int i, index = 0, temp;
if(valueTable.empty())
resizeValueTable();
- if(functionMode==LocalFunction::FUNCTION_TYPE::SCRIPT)
+ if(functionMode==LocalFunction::SCRIPT)
return -1;
QVector<int> sums, freeArgs;
@@ -342,7 +342,7 @@
switch(functionMode)
{
- case LocalFunction::FUNCTION_TYPE::SCRIPT:
+ case LocalFunction::SCRIPT:
break;
default:
index = calculateSumsIndex(sums) + calculateSwitchIndex(freeArgs);
@@ -357,12 +357,12 @@
double out = 0.0;
switch(functionMode)
{
- case LocalFunction::FUNCTION_TYPE::SUM:
+ case LocalFunction::SUM:
for (i=0;i<args.size();++i)
out += args[i];
break;
- case LocalFunction::FUNCTION_TYPE::SCRIPT:
+ case LocalFunction::SCRIPT:
break;
}
Modified: trunk/qcell/basesources/Neighbourhood.cpp
===================================================================
--- trunk/qcell/basesources/Neighbourhood.cpp 2007-01-04 09:32:52 UTC (rev 92)
+++ trunk/qcell/basesources/Neighbourhood.cpp 2007-01-05 10:41:09 UTC (rev 93)
@@ -282,22 +282,22 @@
dType = type;
switch(dType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
dataSize = sizeof(char);
break;
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
dataSize = sizeof(double);
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
dataSize = sizeof(float);
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
dataSize = sizeof(int);
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
dataSize = sizeof(short);
break;
}
@@ -311,38 +311,38 @@
int i;
switch(dType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.iValue = *((char *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.dValue = *((double *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.dValue = *((float *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.iValue = *((int *)(address + neighbourVector[i].offset));
}
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
for(i=0;i<neighbourVector.size();++i)
{
neighbourVector[i].value.iValue = *((short *)(address + neighbourVector[i].offset));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-05 12:49:48
|
Revision: 98
http://svn.sourceforge.net/qcell/?rev=98&view=rev
Author: dhubleizh
Date: 2007-01-05 04:49:45 -0800 (Fri, 05 Jan 2007)
Log Message:
-----------
- preliminary parsing out things
- generic interfaces updated for parse out
- started KI saving implementation
Modified Paths:
--------------
trunk/qcell/baseheaders/GenericParserPlugin.h
trunk/qcell/baseheaders/interfaces.h
trunk/qcell/basesources/GenericParserPlugin.cpp
trunk/qcell/parsers/KI/KIParserPlugin.cpp
trunk/qcell/parsers/KI/KIParserPlugin.h
Modified: trunk/qcell/baseheaders/GenericParserPlugin.h
===================================================================
--- trunk/qcell/baseheaders/GenericParserPlugin.h 2007-01-05 10:45:54 UTC (rev 97)
+++ trunk/qcell/baseheaders/GenericParserPlugin.h 2007-01-05 12:49:45 UTC (rev 98)
@@ -68,7 +68,7 @@
QString parse(const QByteArray content, const QString type, const QString subtype="");
-
+ QByteArray parseOut(QString content, const QString type, const QString subtype="") = 0;
};
#endif
Modified: trunk/qcell/baseheaders/interfaces.h
===================================================================
--- trunk/qcell/baseheaders/interfaces.h 2007-01-05 10:45:54 UTC (rev 97)
+++ trunk/qcell/baseheaders/interfaces.h 2007-01-05 12:49:45 UTC (rev 98)
@@ -50,6 +50,9 @@
* @return A xml string containing the parsed data in common format
*/
virtual QString parse(const QByteArray content, const QString type, const QString subtype) = 0;
+
+ virtual QByteArray parseOut(QString content, const QString type, const QString subtype) = 0;
+
};
Q_DECLARE_INTERFACE(ParserInterface,
Modified: trunk/qcell/basesources/GenericParserPlugin.cpp
===================================================================
--- trunk/qcell/basesources/GenericParserPlugin.cpp 2007-01-05 10:45:54 UTC (rev 97)
+++ trunk/qcell/basesources/GenericParserPlugin.cpp 2007-01-05 12:49:45 UTC (rev 98)
@@ -77,3 +77,50 @@
}
+void GenericParserPlugin::parseOut(const QByteArray content, const QString type, const QString subtype)
+{
+ if(!supported_parser_types.contains(type))
+ {
+ // Constructing supported parser types
+ QString types;
+ for(int i =0 ; i < supported_parser_types.count()-1; i++)
+ {
+ types.append(supported_parser_types[i]);
+ types.append(',');
+
+ };
+ types.append(supported_parser_types.last());
+
+ qDebug(tr("This plugin doesn't support saving type %1. It supports %2.")
+ .arg(type)
+ .arg(types)
+ .toAscii()
+ );
+
+ return;
+ }
+ else if(!supported_file_types.contains(subtype)){
+
+ // Constructing supported file types
+ QString subtypes;
+ for(int i =0 ; i < supported_file_types.count()-1; i++)
+ {
+ subtypes.append(supported_file_types[i]);
+ subtypes.append(',');
+
+ };
+ subtypes.append(supported_file_types.last());
+
+ qDebug(tr("This plugin doesn't support saving type %1. It supports %2.")
+ .arg(type)
+ .arg(subtypes)
+ .toAscii()
+ );
+
+ return;
+
+ }
+
+ return realParserOut(content, type, subtype);
+}
+
Modified: trunk/qcell/parsers/KI/KIParserPlugin.cpp
===================================================================
--- trunk/qcell/parsers/KI/KIParserPlugin.cpp 2007-01-05 10:45:54 UTC (rev 97)
+++ trunk/qcell/parsers/KI/KIParserPlugin.cpp 2007-01-05 12:49:45 UTC (rev 98)
@@ -136,5 +136,78 @@
return cd.createXmlHeader();
}
+QByteArray KIParserPlugin::parseOut(QString content, const QString type, const QString subtype)
+{
+ // The resulting array to write to file by the backend
+ QByteArray result;
+ // Generic type to parse XML request
+ CalculationData cd;
+ // Number of dimensions we are dealing with
+ int dimensions;
+
+ // Check if we can use the generic type from the XML string
+ if(!cd.setFromXmlString(&content))
+ {
+ qDebug(tr("Unable to parse out internal data!").toAscii());
+ }
+
+ dimensions = cd.getDimension();
+
+ /// @todo header
+
+ switch (dimensions)
+ {
+ case 1:
+ {
+ for (int x = 0; x < cd.getDataSize(); x++)
+ {
+ result.append(cd.getValueAt_i(x));
+ }
+
+ break;
+ }
+ case 2:
+ {
+ for(int y = 0; y < cd.getSizeY(); y++)
+ {
+ for (int x = 0; x < cd.getSizeX(); x++)
+ {
+ result.append(cd.getValueAt_i(x,y));
+ }
+
+ result.append('\n');
+ }
+
+ break;
+ }
+ case 3:
+ {
+ for(int z = 0; z < cd.getSizeZ(); z++)
+ {
+ for (int y = 0; y < cd.getSizeY(); y++)
+ {
+ for (int x = 0; x < cd.getSizeX(); x++)
+ {
+ result.append(cd.getValueAt_d(x, y, z));
+ }
+
+ result.append('\n');
+ }
+
+ result.append('\n');
+ }
+
+ break;
+ }
+ default:
+ {
+ qDebug(tr("Unable to parse out Calculation Data: Wrong number of dimensions!").toAscii());
+ return QByteArray();
+ }
+ }
+
+ return result;
+}
+
Q_EXPORT_PLUGIN2(KIFileParser, KIParserPlugin)
Modified: trunk/qcell/parsers/KI/KIParserPlugin.h
===================================================================
--- trunk/qcell/parsers/KI/KIParserPlugin.h 2007-01-05 10:45:54 UTC (rev 97)
+++ trunk/qcell/parsers/KI/KIParserPlugin.h 2007-01-05 12:49:45 UTC (rev 98)
@@ -19,7 +19,7 @@
{
protected:
QString realParser(QByteArray content, QString type, QString subtype);
-
+ QByteArray parseOut(QString content, const QString type, const QString subtype="");
public:
KIParserPlugin();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-05 16:05:34
|
Revision: 100
http://svn.sourceforge.net/qcell/?rev=100&view=rev
Author: dhubleizh
Date: 2007-01-05 08:05:33 -0800 (Fri, 05 Jan 2007)
Log Message:
-----------
- getNeighbours to save file
Modified Paths:
--------------
trunk/qcell/baseheaders/Neighbourhood.h
trunk/qcell/basesources/Neighbourhood.cpp
Modified: trunk/qcell/baseheaders/Neighbourhood.h
===================================================================
--- trunk/qcell/baseheaders/Neighbourhood.h 2007-01-05 16:04:44 UTC (rev 99)
+++ trunk/qcell/baseheaders/Neighbourhood.h 2007-01-05 16:05:33 UTC (rev 100)
@@ -51,6 +51,7 @@
bool fromDomElement(QDomElement *xmlElement);
QString toXmlString();
int getNeighbourNumber(void);
+ QVector<NContainer> getNeighbours();
bool getBoolValueOf(int index);
int getIntValueOf(int index);
double getDoubleValueOf(int index);
Modified: trunk/qcell/basesources/Neighbourhood.cpp
===================================================================
--- trunk/qcell/basesources/Neighbourhood.cpp 2007-01-05 16:04:44 UTC (rev 99)
+++ trunk/qcell/basesources/Neighbourhood.cpp 2007-01-05 16:05:33 UTC (rev 100)
@@ -261,6 +261,11 @@
return neighbourVector.size();
}
+QVector<NContainer> Neighbourhood::getNeighbours()
+{
+ return QVector<NContainer>(neighbourVector);
+}
+
bool Neighbourhood::getBoolValueOf(int index)
{
return neighbourVector[index].value.bValue;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-05 16:06:14
|
Revision: 101
http://svn.sourceforge.net/qcell/?rev=101&view=rev
Author: dhubleizh
Date: 2007-01-05 08:06:12 -0800 (Fri, 05 Jan 2007)
Log Message:
-----------
- generic saving facilty (parsingOut)
- KI parsingOut implementation
Modified Paths:
--------------
trunk/qcell/basesources/GenericParserPlugin.cpp
trunk/qcell/parsers/KI/KIParserPlugin.cpp
Modified: trunk/qcell/basesources/GenericParserPlugin.cpp
===================================================================
--- trunk/qcell/basesources/GenericParserPlugin.cpp 2007-01-05 16:05:33 UTC (rev 100)
+++ trunk/qcell/basesources/GenericParserPlugin.cpp 2007-01-05 16:06:12 UTC (rev 101)
@@ -77,7 +77,7 @@
}
-void GenericParserPlugin::parseOut(const QByteArray content, const QString type, const QString subtype)
+QByteArray GenericParserPlugin::parseOut(const QString content, const QString type, const QString subtype)
{
if(!supported_parser_types.contains(type))
{
@@ -97,7 +97,7 @@
.toAscii()
);
- return;
+ return QByteArray();
}
else if(!supported_file_types.contains(subtype)){
@@ -117,10 +117,10 @@
.toAscii()
);
- return;
+ return QByteArray();
}
- return realParserOut(content, type, subtype);
+ return parseOut(content, type, subtype);
}
Modified: trunk/qcell/parsers/KI/KIParserPlugin.cpp
===================================================================
--- trunk/qcell/parsers/KI/KIParserPlugin.cpp 2007-01-05 16:05:33 UTC (rev 100)
+++ trunk/qcell/parsers/KI/KIParserPlugin.cpp 2007-01-05 16:06:12 UTC (rev 101)
@@ -142,8 +142,6 @@
QByteArray result;
// Generic type to parse XML request
CalculationData cd;
- // Number of dimensions we are dealing with
- int dimensions;
// Check if we can use the generic type from the XML string
if(!cd.setFromXmlString(&content))
@@ -151,11 +149,7 @@
qDebug(tr("Unable to parse out internal data!").toAscii());
}
- dimensions = cd.getDimension();
-
- /// @todo header
-
- switch (dimensions)
+ switch (cd.getDimension())
{
case 1:
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-05 16:06:43
|
Revision: 102
http://svn.sourceforge.net/qcell/?rev=102&view=rev
Author: dhubleizh
Date: 2007-01-05 08:06:41 -0800 (Fri, 05 Jan 2007)
Log Message:
-----------
- NParser Fucked inability to parseOut
Modified Paths:
--------------
trunk/qcell/parsers/N/NParserPlugin.cpp
trunk/qcell/parsers/N/NParserPlugin.h
trunk/qcell/visgui/MainWindow.cpp
trunk/qcell/visgui/MainWindow.h
trunk/qcell/visgui/MainWindow.ui
Modified: trunk/qcell/parsers/N/NParserPlugin.cpp
===================================================================
--- trunk/qcell/parsers/N/NParserPlugin.cpp 2007-01-05 16:06:12 UTC (rev 101)
+++ trunk/qcell/parsers/N/NParserPlugin.cpp 2007-01-05 16:06:41 UTC (rev 102)
@@ -257,5 +257,59 @@
return N.toXmlString();
}
+QByteArray NParserPlugin::parseOut(QString content, const QString type, const QString subtype)
+{
+ // The resulting array to write to file by the end backend
+ QByteArray result;
+ // Generic class for parsing out XMLString
+ Neighbourhood N;
+ QVector<NContainer> neighbours;
+ // Maximum found dimensions
+ int max_x, max_y,max_z;
+ // Needs to be set to 1, as there needs to be at least one of each
+ // dimensions for this implementation
+ max_x = max_y = max_z = 1;
+
+ if(!N.fromXmlString(&content))
+ {
+ qDebug(tr("Unable to parse out internal data!").toAscii());
+ }
+
+ // Filetype and dimensions declaration
+ result.append('N');
+ result.append(N.getDimension());
+ result.append('\n');
+
+ // Sizes of dimensions
+
+ //Od tego momentu le\xBF\xEA
+
+ //Determin the maximum of each supported dimension
+ foreach(NContainer tmp, neighbours)
+ {
+ if(tmp.x > max_x)
+ {
+ max_x = tmp.x;
+ }
+ else if(tmp.y > max_y)
+ {
+ max_y = tmp.y;
+ }
+ else if (tmp.z > max_z)
+ {
+ max_z = tmp.z;
+ }
+ }
+
+ // Construct a space of max_x x max_y x max_z filled with '-';
+ // At least one is needed always, even when the rest of dimensions is 0
+ QVector<QVector<QVector<char> > > table(max_z, QVector<QVector<char> >(max_y, QVector<char>(max_x, '-')));
+
+ foreach(NContainer tmp, neighbours)
+ {
+
+ }
+}
+
Q_EXPORT_PLUGIN2(NFileParser, NParserPlugin)
Modified: trunk/qcell/parsers/N/NParserPlugin.h
===================================================================
--- trunk/qcell/parsers/N/NParserPlugin.h 2007-01-05 16:06:12 UTC (rev 101)
+++ trunk/qcell/parsers/N/NParserPlugin.h 2007-01-05 16:06:41 UTC (rev 102)
@@ -19,7 +19,7 @@
{
protected:
QString realParser(const QByteArray content, const QString type, const QString subtype);
-
+ QByteArray parseOut(QString content, const QString type, const QString subtype);
public:
NParserPlugin();
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-05 16:06:12 UTC (rev 101)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-05 16:06:41 UTC (rev 102)
@@ -274,14 +274,114 @@
}
+void MainWindow::callSaver(const QString filename, const QString type)
+{
+// QFile file(filename);
+ QString XMLString;
+// QString subtype = filename.section('.', -1);
+ QString subtype;
+
+// if (!file.open(QIODevice::Truncate | QIODevice::Text))
+// {
+// qDebug(tr("Error opnening file %1.")
+// .arg(filename)
+// .toAscii()
+// );
+//
+// return;
+// }
+
+ if (type == "Neighbourhood")
+ {
+// if (!neighbourhood_parsers.contains(subtype))
+// {
+// qDebug(tr("The file extensions %1 isn't supported.")
+// .arg(subtype)
+// .toAscii()
+// );
+// return;
+// }
+
+// neighbourhood_parsers[subtype]->parseOut(neighbourhood->toXmlString(), type, subtype);
+ neighbourhood_parsers["N"]->parseOut("Kupa", "typ", "subtyp");
+
+ }
+ else if (type == "LocalFunction")
+ {
+ if (!function_parsers.contains(subtype))
+ {
+ qDebug(tr("The file extensions %1 isn't supported.")
+ .arg(subtype)
+ .toAscii()
+ );
+ return;
+ }
+
+ qDebug("Przed");
+ function_parsers[subtype]->parseOut(local_function->toXmlString(), type, subtype);
+ }
+ else if (type == "World")
+ {
+ if (!world_parsers.contains(subtype))
+ {
+ qDebug(tr("The file extensions %1 isn't supported.")
+ .arg(subtype)
+ .toAscii()
+ );
+ return;
+ }
+
+ /// @todo Wait for toXmlString
+// world_parsers[subtype]->parseOut(data.last().toXmlString(), type, subtype);
+ }
+ else
+ {
+ qDebug(tr("Unsupported file type to parse.").toAscii());
+ return;
+ }
+}
+
void MainWindow::setupEngine()
{
working = false;
+ iteration = 0;
}
-void MainWindow::oneStep()
+void MainWindow::oneStep(int direction)
{
/// @todo Write oneStep
+ switch (direction)
+ {
+ case Forward:
+ {
+ if(iteration < (data.count()-1))
+ {
+ /// @todo moving through the list
+ }
+ else
+ {
+ /// @todo processing
+ }
+
+ iteration++;
+ break;
+
+ }
+ case Back:
+ {
+ if(iteration == 0)
+ {
+ qDebug(tr("You cannot step back beyond the beginning of the experiment!").toAscii());
+ return;
+ }
+
+ /// @todo actuall going back
+
+ iteration--;
+ }
+
+ }
+ iterationLCD->display(iteration);
}
void MainWindow::stepForward(int step)
@@ -327,6 +427,7 @@
void MainWindow::on_action_Back_activated()
{
/// @todo Handle back movement
+ oneStep( Back);
}
void MainWindow::on_action_Start_activated()
@@ -358,6 +459,67 @@
void MainWindow::on_action_Restart_activated()
{
/// @todo Handle restarting the experiment
- CalculationData backup = data.first();
+ iteration = 0;
+ this->iterationLCD->display(iteration);
+
+// CalculationData backup = data.first();
}
+void MainWindow::on_action_World_save_activated()
+{
+ if(world_parsers.count() == 0)
+ {
+ QMessageBox::warning(
+ /*parent*/ this,
+ /*title*/ tr("Plugins warning"),
+ /*message*/ tr("There are no plugins loaded to handle World saving.")
+ );
+
+ return;
+
+ }
+
+ QFileDialog fd(
+ /*parent*/ this,
+ /*cation*/ tr("Save World"),
+ /*dir*/ "."
+ );
+
+ fd.setAcceptMode(QFileDialog::AcceptSave);
+ fd.setFileMode(QFileDialog::AnyFile);
+
+ QStringList filters;
+ QString filter;
+ // Add filter in format %{name} files (*.%{name})
+ foreach(QString key, world_parsers.keys())
+ {
+ // Don't shorten this, as it is made for translations
+ // purposes
+ filter = key + " " + tr("files") + " (*." + key + ")";
+ filters << filter;
+ }
+ fd.setFilters(filters);
+
+ fd.exec();
+
+ if(!fd.selectedFiles().isEmpty())
+ {
+ callSaver(fd.selectedFiles().first(), "World");
+
+ }
+
+}
+
+void MainWindow::on_action_Neighbourhood_save_activated()
+{
+ qDebug("UngaBunga!!!!!");
+ callSaver("A cokolwiek", "Neighbourhood");
+
+
+}
+
+void MainWindow::on_action_Function_save_activated()
+{
+
+}
+
Modified: trunk/qcell/visgui/MainWindow.h
===================================================================
--- trunk/qcell/visgui/MainWindow.h 2007-01-05 16:06:12 UTC (rev 101)
+++ trunk/qcell/visgui/MainWindow.h 2007-01-05 16:06:41 UTC (rev 102)
@@ -41,6 +41,10 @@
void on_action_Function_activated();
void on_action_World_activated();
+ void on_action_World_save_activated();
+ void on_action_Neighbourhood_save_activated();
+ void on_action_Function_save_activated();
+
/// @todo not here!
void on_action_Forward_activated();
void on_action_Back_activated();
@@ -55,9 +59,17 @@
void callParser(QString filename, QString type);
+ void callSaver(const QString filename, const QString type);
/// @todo Not in here!
+ enum Direction
+ {
+ Forward = 1,
+ Back,
+ };
+
bool working;
+ int iteration;
QList<CalculationData> data;
LocalFunction* local_function;
@@ -66,7 +78,7 @@
void setupEngine();
- void oneStep();
+ void oneStep(int direction = Forward);
void stepForward(int step);
void continousSteps();
Modified: trunk/qcell/visgui/MainWindow.ui
===================================================================
--- trunk/qcell/visgui/MainWindow.ui 2007-01-05 16:06:12 UTC (rev 101)
+++ trunk/qcell/visgui/MainWindow.ui 2007-01-05 16:06:41 UTC (rev 102)
@@ -5,7 +5,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>553</width>
+ <width>532</width>
<height>538</height>
</rect>
</property>
@@ -23,6 +23,59 @@
<property name="spacing" >
<number>6</number>
</property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>321</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="iterationLabel" >
+ <property name="text" >
+ <string>Iteration</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLCDNumber" name="iterationLCD" >
+ <property name="numDigits" >
+ <number>5</number>
+ </property>
+ <property name="segmentStyle" >
+ <enum>QLCDNumber::Flat</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</widget>
<widget class="QMenuBar" name="mainMenubar" >
@@ -30,10 +83,26 @@
<rect>
<x>0</x>
<y>0</y>
- <width>553</width>
+ <width>532</width>
<height>30</height>
</rect>
</property>
+ <widget class="QMenu" name="menu_Edit" >
+ <property name="title" >
+ <string>&Edit</string>
+ </property>
+ </widget>
+ <widget class="QMenu" name="menu_Experiment" >
+ <property name="title" >
+ <string>&Experiment</string>
+ </property>
+ <addaction name="action_Start" />
+ <addaction name="action_Stop" />
+ <addaction name="action_Restart" />
+ <addaction name="separator" />
+ <addaction name="action_Forward" />
+ <addaction name="action_Back" />
+ </widget>
<widget class="QMenu" name="menu_Help" >
<property name="title" >
<string>&Help</string>
@@ -41,11 +110,6 @@
<addaction name="separator" />
<addaction name="action_About" />
</widget>
- <widget class="QMenu" name="menu_Edit" >
- <property name="title" >
- <string>&Edit</string>
- </property>
- </widget>
<widget class="QMenu" name="menu_File" >
<property name="title" >
<string>&File</string>
@@ -57,27 +121,25 @@
<property name="title" >
<string>&Open</string>
</property>
+ <addaction name="action_World" />
<addaction name="action_Neighbourhood" />
<addaction name="action_Function" />
- <addaction name="action_World" />
</widget>
+ <widget class="QMenu" name="menu_Save_experiment" >
+ <property name="title" >
+ <string>&Save experiment</string>
+ </property>
+ <addaction name="action_World_save" />
+ <addaction name="action_Neighbourhood_save" />
+ <addaction name="action_Function_save" />
+ </widget>
<addaction name="menu_Open" />
<addaction name="action_Open_experiment" />
<addaction name="action_Continiue_experiment" />
+ <addaction name="menu_Save_experiment" />
<addaction name="separator" />
<addaction name="action_Quit" />
</widget>
- <widget class="QMenu" name="menu_Experiment" >
- <property name="title" >
- <string>&Experiment</string>
- </property>
- <addaction name="action_Start" />
- <addaction name="action_Stop" />
- <addaction name="action_Restart" />
- <addaction name="separator" />
- <addaction name="action_Forward" />
- <addaction name="action_Back" />
- </widget>
<addaction name="menu_File" />
<addaction name="menu_Edit" />
<addaction name="menu_Experiment" />
@@ -95,8 +157,8 @@
<addaction name="action_Stop" />
<addaction name="action_Restart" />
<addaction name="separator" />
+ <addaction name="action_Back" />
<addaction name="action_Forward" />
- <addaction name="action_Back" />
</widget>
<action name="action_Quit" >
<property name="text" >
@@ -212,6 +274,21 @@
<string>Iterates one setp back.</string>
</property>
</action>
+ <action name="action_World_save" >
+ <property name="text" >
+ <string>&World</string>
+ </property>
+ </action>
+ <action name="action_Neighbourhood_save" >
+ <property name="text" >
+ <string>&Neighbourhood</string>
+ </property>
+ </action>
+ <action name="action_Function_save" >
+ <property name="text" >
+ <string>&Function</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-05 20:28:54
|
Revision: 103
http://svn.sourceforge.net/qcell/?rev=103&view=rev
Author: dhubleizh
Date: 2007-01-05 12:28:52 -0800 (Fri, 05 Jan 2007)
Log Message:
-----------
- added a bunch of get functions to LocalFucntion for getting out info needed when saving
- written some almost complete saving function for FQTParserPlugin
Modified Paths:
--------------
trunk/qcell/baseheaders/LocalFunction.h
trunk/qcell/basesources/LocalFunction.cpp
trunk/qcell/parsers/FQT/FQTParserPlugin.cpp
trunk/qcell/parsers/FQT/FQTParserPlugin.h
Modified: trunk/qcell/baseheaders/LocalFunction.h
===================================================================
--- trunk/qcell/baseheaders/LocalFunction.h 2007-01-05 16:06:41 UTC (rev 102)
+++ trunk/qcell/baseheaders/LocalFunction.h 2007-01-05 20:28:52 UTC (rev 103)
@@ -29,7 +29,7 @@
QVector< QVector<int> > sumArguments;
QVector<int> freeArguments;
FUNCTION_TYPE functionMode;
- int numArg, maxArgVal, numElements;
+ int numArg, maxArgVal, numElements, maxRetVal;
QString script;
protected:
@@ -53,7 +53,7 @@
LocalFunction();
~LocalFunction();
- void init(int numberOfArguments, int alphabetSize);
+ void init(int numberOfArguments, int alphabetSize, int returnValues);
// args is vector contein index of arguments to sum
void addSumArguments(QVector<int> args);
@@ -69,6 +69,10 @@
// method set type of function (normally function type is set automatically when setSumArguments, setProductArguments, setSwitchFunction or setScript methosd ar used)
void setFunctonType(LocalFunction::FUNCTION_TYPE type);
LocalFunction::FUNCTION_TYPE getFunctonType(void);
+ int getNumberOfArgs();
+ int getAlphabetSize();
+ int getMaxReturnValues();
+ QVector<int> getSummedArguments();
int addFunctionValueArgumentsNumberRequest(void);
Modified: trunk/qcell/basesources/LocalFunction.cpp
===================================================================
--- trunk/qcell/basesources/LocalFunction.cpp 2007-01-05 16:06:41 UTC (rev 102)
+++ trunk/qcell/basesources/LocalFunction.cpp 2007-01-05 20:28:52 UTC (rev 103)
@@ -138,10 +138,11 @@
functionMode = LocalFunction::SWITCH;
}
-void LocalFunction::init(int numberOfArguments, int alphabetSize)
+void LocalFunction::init(int numberOfArguments, int alphabetSize, int returnValues)
{
numArg = numberOfArguments;
maxArgVal = alphabetSize;
+ maxRetVal = returnValues;
valueTable.clear();
sumArguments.clear();
freeArguments.clear();
@@ -217,6 +218,26 @@
return functionMode;
}
+int LocalFunction::getNumberOfArgs()
+{
+ return maxArgVal;
+}
+
+int LocalFunction::getAlphabetSize()
+{
+ return maxArgVal;
+}
+
+int LocalFunction::getMaxReturnValues()
+{
+ return maxRetVal;
+}
+
+QVector<int> LocalFunction::getSummedArguments()
+{
+ return sumArguments.first();
+}
+
int LocalFunction::addFunctionValueArgumentsNumberRequest(void)
{
switch(functionMode)
Modified: trunk/qcell/parsers/FQT/FQTParserPlugin.cpp
===================================================================
--- trunk/qcell/parsers/FQT/FQTParserPlugin.cpp 2007-01-05 16:06:41 UTC (rev 102)
+++ trunk/qcell/parsers/FQT/FQTParserPlugin.cpp 2007-01-05 20:28:52 UTC (rev 103)
@@ -30,6 +30,9 @@
QMap<int, QVector<int> > results;
// The maximum achivable sum of arguments
int max_sum;
+ // After parsing the header one can determin how many possibilities does the
+ // free arguments post
+ int free_args_columns;
// Generic class for generating XML
LocalFunction lf;
@@ -72,7 +75,6 @@
values_nr = tmp_split[1].toLong();
return_values_nr = tmp_split[2].toLong();
- max_sum = arguments_nr * (values_nr - 1);
if((arguments_nr == 0) || (values_nr == 0) || (return_values_nr == 0))
{
@@ -110,7 +112,7 @@
// Index of arguments gettins summed up
lines[0] = lines[0].trimmed();
- format = QRegExp("^((\\d)+,){" + QString::number(arguments_nr-1) + "}(\\d)+$");
+ format = QRegExp("^((\\d)+,){1-" + QString::number(arguments_nr-2) + "}(\\d)+$");
if(format.exactMatch(lines[0]))
{
int arg_index, arg_nr;
@@ -137,6 +139,9 @@
arg_nr++;
}
+ // Now we can calculate the maximal sum value
+ max_sum = arg_nr * (values_nr - 1);
+ free_args_columns = values_nr^arg_nr;
lines.removeFirst();
line_nr++;
@@ -154,7 +159,7 @@
// Main function parsing
lines[0] = lines[0].trimmed();
- format = QRegExp("^(\\d)+:([0-9a-Z]){" + QString::number(arguments_nr-1) + "}[0-9a-Z]$");
+ format = QRegExp("^(\\d)+:([0-9a-Z]){" + QString::number(free_args_columns-1) + "}[0-9a-Z]$");
QStringList tmp;
int tmp_sum,value_index;
QVector<int> tmp_values;
@@ -228,15 +233,71 @@
line_nr++;
}
+ // All possible permutations of values of free arguments in lexographical order
+ QVector<QVector<int> > permutations;
+
// setting the type of function
lf.setFunctonType(LocalFunction::SUM);
// setting the number of arguments the function will take
// and the alphabet size
- lf.init(arguments_nr, values_nr);
+ lf.init(arguments_nr, values_nr, return_values_nr);
+
+ // Set the arguments numbers tu sum
+ lf.setSumArguments(arguments);
+
/// @todo How the fuck set FQT function parameters eh?
+ foreach(int sum, results.keys())
+ {
+
+ }
return lf.toXmlString();
}
+
+QByteArray FQTParserPlugin::parseOut(QString content, const QString type, const QString subtype)
+{
+ // The resulting array to write to file by the backend
+ QByteArray result;
+ // Generic type to parse XML request
+ LocalFunction lf;
+
+ // Check if we can use the generic type from the XML string
+ if(!lf.fromXmlString(&content));
+ {
+ qDebug(tr("Unable to parse out internal data!").toAscii());
+ }
+
+ // Header
+ result.append("FQT");
+ result.append('\n');
+
+ // Second line
+ // Num of args
+ result.append(lf.getNumberOfArgs());
+ result.append(' ');
+ // Num of arg values
+ result.append(lf.getAlphabetSize());
+ result.append(' ');
+ // Num of return values
+ result.append(lf.getMaxReturnValues());
+ result.append(' ');
+ result.append('\n');
+
+ // Third line - summed args
+ foreach(int arg, lf.getSummedArguments())
+ {
+ result.append(QString::number(arg)[0].toAscii());
+ result.append(',');
+ }
+ // Get rid of the penging `,'
+ result.chop(1);
+ result.append('\n');
+
+ /// @todo Main function writing
+
+ return result;
+}
+
Q_EXPORT_PLUGIN2(FQTFileParser, FQTParserPlugin)
Modified: trunk/qcell/parsers/FQT/FQTParserPlugin.h
===================================================================
--- trunk/qcell/parsers/FQT/FQTParserPlugin.h 2007-01-05 16:06:41 UTC (rev 102)
+++ trunk/qcell/parsers/FQT/FQTParserPlugin.h 2007-01-05 20:28:52 UTC (rev 103)
@@ -21,7 +21,7 @@
{
protected:
QString realParser(const QByteArray content, const QString type, const QString subtype);
-
+ QByteArray parseOut(QString content, const QString type, const QString subtype="");
public:
FQTParserPlugin();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-06 15:21:41
|
Revision: 106
http://svn.sourceforge.net/qcell/?rev=106&view=rev
Author: dhubleizh
Date: 2007-01-06 07:21:38 -0800 (Sat, 06 Jan 2007)
Log Message:
-----------
- preliminary debugged and checked N in parsing
- uncommented some test things in MainWindow
- bugs during parsing in MainWindow
Modified Paths:
--------------
trunk/qcell/parsers/N/NParserPlugin.cpp
trunk/qcell/visgui/MainWindow.cpp
Modified: trunk/qcell/parsers/N/NParserPlugin.cpp
===================================================================
--- trunk/qcell/parsers/N/NParserPlugin.cpp 2007-01-06 13:39:10 UTC (rev 105)
+++ trunk/qcell/parsers/N/NParserPlugin.cpp 2007-01-06 15:21:38 UTC (rev 106)
@@ -35,6 +35,8 @@
// Basic sanity check
result = QString(content).split('\n');
+ // Trim empty last line
+ result.removeLast();
if(result.count() < 4)
{
qDebug(tr("The input file is to short!").toAscii());
@@ -64,14 +66,14 @@
format = QRegExp("^([0-9a-Z] ){" + QString::number(dimensions) + "}[0-9a-Z]$");
if(format.exactMatch(result[0]))
{
- neighbours_nr = result[0][result.count()].toAscii() - '0';
- columns = result[0][0].toAscii() - '0';
+ neighbours_nr = result[0][result[0].count()-1].toAscii() - '0';
+ lines = (int)result[0][0].toAscii() - '0';
- if(result.count() > 3 )
+ if(result[0].count() > 3 )
{
- lines = result[0][2].toAscii() - '0';
+ columns = result[0][2].toAscii() - '0';
- if(result.count() == 7)
+ if(result[0].count() == 7)
{
walls = result[0][4].toAscii() - '0';
}
@@ -101,7 +103,7 @@
// Zero point coordinates
result[0] = result[0].trimmed();
- format.setPattern("^(([0-9a-Z] ){" + QString::number(dimensions-1) + "}[0-9a-Z]$");
+ format.setPattern("^([0-9a-Z] ){" + QString::number(dimensions-1) + "}[0-9a-Z]$");
if(format.exactMatch(result[0]))
{
pos0_x = result[0][0].toAscii() - '0';
@@ -135,10 +137,12 @@
.arg(format.pattern())
.toAscii()
);
+
+ return QString();
}
// Further sanity check
- if(result.count() != lines * walls)
+ if(result.count() != (lines * walls))
{
qDebug(tr("The number of lines in file doesn't correspond to declared dimensions sizes.").toAscii());
return QString();
@@ -148,6 +152,7 @@
result[0] = result[0].trimmed();
format.setPattern("^([\\-1-9a-Z]){" + QString::number(columns) + "}$");
int tmp_neighbour;
+ QVector<int> coordinates(3,0);
foreach(QString line, result)
{
x = 0;
@@ -165,18 +170,18 @@
// Adding to a map is so much cool, as we can get the values sorted
// instatly
- foreach(QChar sign, result.first())
+ foreach(QChar sign, line)
{
if(sign.toAscii() != '-')
{
- QVector<int> coordinates(x);
+ coordinates[0] = x - pos0_x;
if(dimensions > 1)
{
- coordinates.append(y);
+ coordinates[1] = y - pos0_y;
if(dimensions == 3)
{
- coordinates.append(z);
+ coordinates[2] = z - pos0_z;
}
}
@@ -193,10 +198,10 @@
return QString();
}
- neighbours[sign.toAscii()-'0'] = coordinates;
+ neighbours[tmp_neighbour] = coordinates;
// Sanity check - number of neighbours exceeding declared one
- if(neighbours_nr > neighbours.count())
+ if(neighbours.count() > neighbours_nr)
{
qDebug(tr("In line %1 the number of neighbours (%2) exceeded the one declared in the header (%3).")
.arg(line_nr)
@@ -254,6 +259,7 @@
N.addNeighbour(difs);
}
+ qDebug(N.toXmlString().toAscii());
return N.toXmlString();
}
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-06 13:39:10 UTC (rev 105)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-06 15:21:38 UTC (rev 106)
@@ -226,6 +226,8 @@
);
}
+ file_content = file.readAll();
+
if (type == "Neighbourhood")
{
if (!neighbourhood_parsers.contains(subtype))
@@ -276,34 +278,32 @@
void MainWindow::callSaver(const QString filename, const QString type)
{
-// QFile file(filename);
+ QFile file(filename);
QString XMLString;
-// QString subtype = filename.section('.', -1);
- QString subtype;
+ QString subtype = filename.section('.', -1);
-// if (!file.open(QIODevice::Truncate | QIODevice::Text))
-// {
-// qDebug(tr("Error opnening file %1.")
-// .arg(filename)
-// .toAscii()
-// );
-//
-// return;
-// }
+ if (!file.open(QIODevice::Truncate | QIODevice::Text))
+ {
+ qDebug(tr("Error opnening file %1.")
+ .arg(filename)
+ .toAscii()
+ );
+ return;
+ }
+
if (type == "Neighbourhood")
{
-// if (!neighbourhood_parsers.contains(subtype))
-// {
-// qDebug(tr("The file extensions %1 isn't supported.")
-// .arg(subtype)
-// .toAscii()
-// );
-// return;
-// }
+ if (!neighbourhood_parsers.contains(subtype))
+ {
+ qDebug(tr("The file extensions %1 isn't supported.")
+ .arg(subtype)
+ .toAscii()
+ );
+ return;
+ }
-// neighbourhood_parsers[subtype]->parseOut(neighbourhood->toXmlString(), type, subtype);
- neighbourhood_parsers["N"]->parseOut("Kupa", "typ", "subtyp");
+ neighbourhood_parsers[subtype]->parseOut(neighbourhood->toXmlString(), type, subtype);
}
else if (type == "LocalFunction")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-07 12:32:34
|
Revision: 111
http://svn.sourceforge.net/qcell/?rev=111&view=rev
Author: dhubleizh
Date: 2007-01-07 04:32:30 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- typo in CalculationData
- nasty hack in Calculating data enablign createXmlHeader (NASTY!)
- KIParserPlugin debugged (1-3d, save; load)
- MainWindow is able to call proper parser(in and out) and finally save every format
Modified Paths:
--------------
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/parsers/KI/KIParserPlugin.cpp
trunk/qcell/visgui/MainWindow.cpp
trunk/qcell/visgui/MainWindow.h
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2007-01-06 20:18:51 UTC (rev 110)
+++ trunk/qcell/basesources/CalculationData.cpp 2007-01-07 12:32:30 UTC (rev 111)
@@ -531,7 +531,7 @@
return sizeX;
}
-int CalculationData::getSizeY(void)
+int CalculationData::getSizeY(void)
{
return sizeY;
}
@@ -645,7 +645,8 @@
QString CalculationData::createXmlHeader(void)
{
- return QString();
+ /// @todo The nasties thing to do - change that!!!
+ return QString::number((int)this);
}
bool CalculationData::setFromXmlString(QString *xmlString)
Modified: trunk/qcell/parsers/KI/KIParserPlugin.cpp
===================================================================
--- trunk/qcell/parsers/KI/KIParserPlugin.cpp 2007-01-06 20:18:51 UTC (rev 110)
+++ trunk/qcell/parsers/KI/KIParserPlugin.cpp 2007-01-07 12:32:30 UTC (rev 111)
@@ -7,6 +7,7 @@
*/
#include "KIParserPlugin.h"
+#include <QDebug>
KIParserPlugin::KIParserPlugin()
{
@@ -30,7 +31,10 @@
// dimensions and how large it is, so we need to track counts
QVector<QVector<QVector <int> > > world;
// Generic type for outputing XML strings
- CalculationData cd;
+ CalculationData* cd = new CalculationData();
+ // Maximum dimensions values
+ int max_x, max_y, max_z;
+ max_x = max_y = max_z = 0;
// Basic sanity check
lines = QString(content).split('\n');
@@ -53,7 +57,6 @@
}
else
{
-
// A new verse for each line
world.last().append(QVector<int>());
// Reset columnt ocunter for each line
@@ -84,9 +87,11 @@
// Keep track of line nr
line_nr++;
}
+ // Pending line
+ world.remove(world.count()-1);
// Char is the maximum value we can get from this file type
- cd.setDataType(baseDataTypes::CHAR);
+ cd->setDataType(baseDataTypes::CHAR);
// no Z dimenzion
if ( world.count() == 1 )
@@ -94,20 +99,28 @@
// no Y dimension
if (world.first().count() == 1 )
{
+ cd->resizeData(world.first().first().count());
for (int i = 0; i < world.first().first().count(); i++)
{
- cd.setValueAt(world.first().first()[i], i);
+ cd->setValueAt(world.first().first()[i], i);
}
}
// X and Y dimensions present
else
{
+ max_y = world.first().count();
+ cd->resizeData(max_x, max_y);
for ( int i = 0; i < world.first().count(); i++ )
{
for ( int j = 0; j < world.first().first().count(); j++ )
{
- cd.setValueAt(world.first()[i][j], j, i);
+ if (world.first()[i].count() > max_x)
+ {
+ max_x = world.first()[i].count();
+ cd->resizeData(max_x, max_y);
+ }
+ cd->setValueAt(world.first()[i][j], j, i);
}
}
@@ -118,13 +131,27 @@
// X, Y and Z present
else
{
+ max_z = world.count();
+ cd->resizeData(max_x, max_y, max_z);
for ( int i = 0; i < world.count(); i++ )
{
- for ( int j = 0; j < world.first().count(); j++ )
+ if (world[i].count() > max_y)
{
- for ( int k; k < world.first().first().count(); k++ )
+ max_y = world[i].count();
+ cd->resizeData(max_x, max_y, max_z);
+ }
+
+ for ( int j = 0; j < world[i].count(); j++ )
+ {
+ for ( int k = 0; k < world[i][j].count(); k++ )
{
- cd.setValueAt(world[i][j][k], k, j, i);
+ if (world[i][j].count() > max_x)
+ {
+ max_x = world[i][j].count();
+ cd->resizeData(max_x, max_y, max_z);
+ }
+
+ cd->setValueAt(world[i][j][k], k, j, i);
}
}
@@ -133,7 +160,7 @@
}
- return cd.createXmlHeader();
+ return cd->createXmlHeader();
}
QByteArray KIParserPlugin::parseOut(QString content, const QString type, const QString subtype)
@@ -141,32 +168,35 @@
// The resulting array to write to file by the backend
QByteArray result;
// Generic type to parse XML request
- CalculationData cd;
+ CalculationData* cd = (CalculationData*)content.toInt();
// Check if we can use the generic type from the XML string
- if(!cd.setFromXmlString(&content))
+ /// @todo Unhack this!
+// if(!cd.setFromXmlString(&content))
+ if(cd == NULL)
{
qDebug(tr("Unable to parse out internal data!").toAscii());
}
- switch (cd.getDimension())
+ switch (cd->getDimension())
{
case 1:
{
- for (int x = 0; x < cd.getDataSize(); x++)
+ for (int x = 0; x < cd->getSizeX(); x++)
{
- result.append(cd.getValueAt_i(x));
+ result.append((char)('0' + cd->getValueAt_i(x)));
}
+ result.append('\n');
break;
}
case 2:
{
- for(int y = 0; y < cd.getSizeY(); y++)
+ for(int y = 0; y < cd->getSizeY(); y++)
{
- for (int x = 0; x < cd.getSizeX(); x++)
+ for (int x = 0; x < cd->getSizeX(); x++)
{
- result.append(cd.getValueAt_i(x,y));
+ result.append((char)('0' + cd->getValueAt_i(x,y)));
}
result.append('\n');
@@ -176,13 +206,13 @@
}
case 3:
{
- for(int z = 0; z < cd.getSizeZ(); z++)
+ for(int z = 0; z < cd->getSizeZ(); z++)
{
- for (int y = 0; y < cd.getSizeY(); y++)
+ for (int y = 0; y < cd->getSizeY(); y++)
{
- for (int x = 0; x < cd.getSizeX(); x++)
+ for (int x = 0; x < cd->getSizeX(); x++)
{
- result.append(cd.getValueAt_d(x, y, z));
+ result.append((char)('0' + cd->getValueAt_d(x, y, z)));
}
result.append('\n');
@@ -190,6 +220,8 @@
result.append('\n');
}
+ // Remove last pending '\n'
+ result.chop(1);
break;
}
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-06 20:18:51 UTC (rev 110)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-07 12:32:30 UTC (rev 111)
@@ -272,11 +272,9 @@
return;
}
-// data.clear();
/// @todo Fix that!
-// CalculationData* tmp_cd = new CalculationData();
-// data.append(*tmp_cd);
- world_parsers[subtype]->parse(file_content, type, subtype);
+ data.clear();
+ data.append((CalculationData*)world_parsers[subtype]->parse(file_content, type, subtype).toInt());
}
else
{
@@ -327,8 +325,7 @@
return;
}
- qDebug("Przed");
- function_parsers[subtype]->parseOut(local_function->toXmlString(), type, subtype);
+ file.write(function_parsers[subtype]->parseOut(local_function->toXmlString(), type, subtype));
}
else if (type == "World")
{
@@ -342,7 +339,7 @@
}
/// @todo Wait for toXmlString
-// world_parsers[subtype]->parseOut(data.last().toXmlString(), type, subtype);
+ file.write(world_parsers[subtype]->parseOut(data.last()->createXmlHeader(), type, subtype));
}
else
{
@@ -509,13 +506,16 @@
filters << filter;
}
fd.setFilters(filters);
+ /// @todo Forge some real suffix adding
+ fd.setDefaultSuffix("KI");
- fd.exec();
-
- if(!fd.selectedFiles().isEmpty())
+ if(fd.exec())
{
- callSaver(fd.selectedFiles().first(), "World");
+ if(!fd.selectedFiles().isEmpty())
+ {
+ callSaver(fd.selectedFiles().first(), "World");
+ }
}
}
Modified: trunk/qcell/visgui/MainWindow.h
===================================================================
--- trunk/qcell/visgui/MainWindow.h 2007-01-06 20:18:51 UTC (rev 110)
+++ trunk/qcell/visgui/MainWindow.h 2007-01-07 12:32:30 UTC (rev 111)
@@ -22,9 +22,6 @@
#include <Neighbourhood.h>
#include <Renderer.h>
-#include <iostream>
-using namespace std;
-
typedef QString (*parser_fun)(QByteArray content, QString type, QString subtype);
class MainWindow : public QMainWindow, private Ui::MainWindow
@@ -71,7 +68,7 @@
bool working;
int iteration;
- QList<CalculationData> data;
+ QList<CalculationData*> data;
LocalFunction* local_function;
Neighbourhood* neighbourhood;
Renderer* renderer;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <le...@us...> - 2007-01-07 13:25:12
|
Revision: 112
http://svn.sourceforge.net/qcell/?rev=112&view=rev
Author: lessm
Date: 2007-01-07 05:25:06 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- Renderer class updated
- Some changes in CalculationData class (backward compatible a think)
- simulationWindow class added
Modified Paths:
--------------
trunk/qcell/baseheaders/CalculationData.h
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/basesources/Renderer.cpp
Added Paths:
-----------
trunk/qcell/baseheaders/simulationwindow.h
trunk/qcell/baseheaders/simulationwindow.ui
trunk/qcell/basesources/simulationwindow.cpp
Modified: trunk/qcell/baseheaders/CalculationData.h
===================================================================
--- trunk/qcell/baseheaders/CalculationData.h 2007-01-07 12:32:30 UTC (rev 111)
+++ trunk/qcell/baseheaders/CalculationData.h 2007-01-07 13:25:06 UTC (rev 112)
@@ -65,7 +65,7 @@
bool resizeData(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
int getSizeX(void);
- int getSizeY(void);
+ int getSizeY(void);
int getSizeZ(void);
int getSizeT(void);
int getSizeInByte(void);
@@ -82,6 +82,10 @@
CalculationData & operator = (CalculationData &cData);
+signals:
+ void dataUpdated();
+ void dataResized();
+
};
#endif
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-07 12:32:30 UTC (rev 111)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-07 13:25:06 UTC (rev 112)
@@ -10,7 +10,9 @@
#include <QImage>
#include <QPainter>
#include <QObject>
-#include <QtOpenGL>
+#include <QtOpengl>
+#include <QPixmap>
+#include <QChar>
struct SYMBOL
{
@@ -18,9 +20,10 @@
QColor color;
float floatColorDiffuse[4], floatColorSpectacular[4];
int primitiveID;
+ QChar textSybmol;
};
-class Renderer : public CalculationData, public QGLWidget
+class Renderer : /*public CalculationData,*/ public QGLWidget
{
Q_OBJECT
private:
@@ -40,6 +43,8 @@
QImage render2D(int zval=0);
QImage render3D(void);
+ CalculationData storage;
+
protected:
void initializeGL();
void paintGL();
@@ -49,7 +54,7 @@
Renderer(QWidget *parent);
~Renderer();
-
+/*
void setDataType(baseDataTypes::DATA_TYPES type = baseDataTypes::CHAR);
bool resizeData(int x, char *dataPointer=NULL, bool foreignDataPointer=0);
@@ -57,17 +62,28 @@
bool resizeData(int x, int y, int z, char *dataPointer=NULL, bool foreignDataPointer=0);
bool resizeData(int x, int y, int z, int t, char *dataPointer=NULL, bool foreignDataPointer=0);
bool resizeData(QVector<int> newSize, char *dataPointer=NULL, bool foreignDataPointer=0);
-
+*/
void render(void);
QImage renderToQImage(int zplane=-1);
+ void renderToPixmap(QPixmap *pixmap, int zval);
bool setSymbolColor(int index, QColor color);
bool hideSymbol(int index);
bool showSymbol(int index);
bool setSymbolPrimitive(int index, int primitiveId);
void addSymbol(SYMBOL symbol);
+ SYMBOL getSymbol(int index);
void setTranslation(float x, float y, float z);
void setRotation(float x, float y, float z);
+ void rotateX(float rot);
+ void rotateY(float rot);
+ void rotateZ(float rot);
+
+ void translateX(float trans);
+ void translateY(float trans);
+ void translateZ(float trans);
+
+ CalculationData * getStorage(void);
};
#endif
Added: trunk/qcell/baseheaders/simulationwindow.h
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.h (rev 0)
+++ trunk/qcell/baseheaders/simulationwindow.h 2007-01-07 13:25:06 UTC (rev 112)
@@ -0,0 +1,77 @@
+#ifndef SIMULATIONWINDOW_H
+#define SIMULATIONWINDOW_H
+
+#include <QPainter>
+#include <QWidget>
+#include <QMouseEvent>
+#include <QBrush>
+#include <QTableWidget>
+#include <QTableWidgetItem>
+#include <QGraphicsView>
+#include <QPixmap>
+#include <QGraphicsPixmapItem>
+#include <QProgressDialog>
+#include "ui_simulationwindow.h"
+#include "../baseheaders/Renderer.h"
+
+// this is widget make visualization of world data
+
+class simulationWindow : public QWidget
+{
+ Q_OBJECT
+
+private:
+ Ui::simulationWindowClass ui;
+
+protected:
+ Renderer *renderer;
+ int cursor_x, cursor_y;
+ int z_plane;
+ float zoom;
+ QTableWidget *table2D;
+ QTableWidget *table1D;
+ QTableWidget *table1DMem;
+
+ bool table2DUpdateRequest, table1DUpdateRequest, graph2DUpdateRequest;
+
+ QGraphicsView *graphicsView2D;
+ QGraphicsScene *graphicsScene2D;
+ QGraphicsPixmapItem *graphicsScene2DPixmap;
+ QPixmap *pixmap;
+
+ 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);
+
+
+
+protected:
+ void update2DTable(void);
+ void update2DGraph(void);
+ void update1DTable(void);
+ void update1DTableMem(void);
+
+public:
+ simulationWindow(QWidget *parent = 0);
+ ~simulationWindow();
+
+ Renderer *getRenderer();
+ CalculationData *getStorage();
+
+protected slots:
+ void zPlaneChange(int i);
+ void dataUpdateRequest(void);
+ void dataResizeRequest(void);
+ void GridView2DRepaint(void);
+ void GridView1DRepaint(void);
+ void GridView1DMemClear(void);
+signals:
+ void progressUpdate(int val);
+
+
+
+};
+
+#endif // SIMULATIONWINDOW_H
Added: trunk/qcell/baseheaders/simulationwindow.ui
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.ui (rev 0)
+++ trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 13:25:06 UTC (rev 112)
@@ -0,0 +1,176 @@
+<ui version="4.0" >
+ <class>simulationWindowClass</class>
+ <widget class="QWidget" name="simulationWindowClass" >
+ <property name="windowTitle" >
+ <string>simulationWindow</string>
+ </property>
+ <widget class="QTabWidget" name="tabWidget" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>620</width>
+ <height>460</height>
+ </rect>
+ </property>
+ <property name="tabPosition" >
+ <enum>QTabWidget::North</enum>
+ </property>
+ <property name="tabShape" >
+ <enum>QTabWidget::Rounded</enum>
+ </property>
+ <property name="currentIndex" >
+ <number>3</number>
+ </property>
+ <widget class="QWidget" name="view3D" >
+ <attribute name="title" >
+ <string>3D View</string>
+ </attribute>
+ </widget>
+ <widget class="QWidget" name="view2D" >
+ <attribute name="title" >
+ <string>2D Text View</string>
+ </attribute>
+ <widget class="QSpinBox" name="Grid2DZplane" >
+ <property name="geometry" >
+ <rect>
+ <x>500</x>
+ <y>10</y>
+ <width>91</width>
+ <height>22</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label" >
+ <property name="geometry" >
+ <rect>
+ <x>440</x>
+ <y>10</y>
+ <width>35</width>
+ <height>14</height>
+ </rect>
+ </property>
+ <property name="lineWidth" >
+ <number>3</number>
+ </property>
+ <property name="text" >
+ <string>Z Plane</string>
+ </property>
+ <property name="textFormat" >
+ <enum>Qt::AutoText</enum>
+ </property>
+ </widget>
+ <widget class="QRadioButton" name="Grid2DValues" >
+ <property name="geometry" >
+ <rect>
+ <x>140</x>
+ <y>10</y>
+ <width>83</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Values</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QRadioButton" name="Grid2DSybmols" >
+ <property name="geometry" >
+ <rect>
+ <x>240</x>
+ <y>10</y>
+ <width>83</width>
+ <height>18</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Symbols</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" name="Grig2DColors" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>91</width>
+ <height>18</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Enable Colors</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QWidget" name="view2DGraph" >
+ <attribute name="title" >
+ <string>2D Graphics View</string>
+ </attribute>
+ </widget>
+ <widget class="QWidget" name="view1D" >
+ <attribute name="title" >
+ <string>1D View</string>
+ </attribute>
+ <widget class="QRadioButton" name="Grid1DSybmols" >
+ <property name="geometry" >
+ <rect>
+ <x>240</x>
+ <y>10</y>
+ <width>83</width>
+ <height>18</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Symbols</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton" name="Grid1DValues" >
+ <property name="geometry" >
+ <rect>
+ <x>140</x>
+ <y>10</y>
+ <width>83</width>
+ <height>18</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Values</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QCheckBox" name="Grig1DColors" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>91</width>
+ <height>18</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Enable Colors</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="memClr" >
+ <property name="geometry" >
+ <rect>
+ <x>350</x>
+ <y>10</y>
+ <width>75</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Clear Memory</string>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2007-01-07 12:32:30 UTC (rev 111)
+++ trunk/qcell/basesources/CalculationData.cpp 2007-01-07 13:25:06 UTC (rev 112)
@@ -11,6 +11,10 @@
bool CalculationData::resizeData(bool foreignDataPointer, char *dataPointer)
{
clearData();
+
+ if(getSizeInByte()==0)
+ return 0;
+
if(!foreignDataPointer)
{
data = new char[getSizeInByte()];
@@ -21,11 +25,13 @@
fillData(dataPointer);
haveForeignDataPointer = 0;
+ emit dataResized();
}
else
{
data = dataPointer;
haveForeignDataPointer = 1;
+ emit dataUpdated();
}
return 1;
}
@@ -33,14 +39,14 @@
void * CalculationData::getAddressAt(int x, int y, int z, int t)
{
int dSize;
- if(dataType==baseDataTypes::NONE)
+ if(dataType==baseDataTypes::DATA_TYPES::NONE)
return NULL;
return data + dataSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
}
CalculationData::CalculationData()
{
- dataType = baseDataTypes::NONE;
+ dataType = baseDataTypes::DATA_TYPES::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -50,7 +56,7 @@
CalculationData::~CalculationData()
{
- dataType = baseDataTypes::NONE;
+ dataType = baseDataTypes::DATA_TYPES::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -61,7 +67,7 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
case baseDataTypes::CHAR:
@@ -86,16 +92,16 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return *((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return *((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, 0, 0)));
case baseDataTypes::FLOAT:
return (int)(*((float *)(getAddressAt(x, y, 0, 0))));
@@ -110,16 +116,16 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return *((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return *((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, z, 0)));
case baseDataTypes::FLOAT:
@@ -135,16 +141,16 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return *((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return *((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return *((short *)(getAddressAt(x, y, z, t)));
case baseDataTypes::FLOAT:
@@ -177,18 +183,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, 0, 0, 0)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, 0, 0, 0))) = (short)val;
break;
}
@@ -198,18 +204,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, y, 0, 0)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, y, 0, 0))) = (short)val;
break;
}
@@ -219,18 +225,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, y, z, 0)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, y, z, 0))) = (short)val;
break;
}
@@ -240,18 +246,18 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
*((char *)getAddressAt(x, y, z, t)) = (char)val;
break;
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
*((int *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
*((short *)(getAddressAt(x, y, z, t))) = (short)val;
break;
}
@@ -261,22 +267,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, 0, 0, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, 0, 0, 0)));
}
return 0.0;
@@ -286,22 +292,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, 0, 0)));
}
return 0.0;
@@ -311,22 +317,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, z, 0)));
}
return 0.0;
@@ -336,22 +342,22 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
break;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
return (double)*((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
return (double)*((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
return *((double *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
return *((float *)(getAddressAt(x, y, z, t)));
}
return 0.0;
@@ -377,11 +383,11 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, 0, 0, 0))) = (float)val;
break;
}
@@ -391,11 +397,11 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, y, 0, 0))) = (float)val;
break;
}
@@ -405,11 +411,11 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, y, z, 0))) = (float)val;
break;
}
@@ -419,11 +425,11 @@
{
switch(dataType)
{
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
*((double *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
*((float *)(getAddressAt(x, y, z, t))) = (float)val;
break;
}
@@ -431,33 +437,37 @@
void CalculationData::setDataType(DATA_TYPES type)
{
- dataType = type;
- dataSize = 0;
- switch(dataType)
+ if(type!=dataType)
{
- case baseDataTypes::BOOL:
+ dataType = type;
dataSize = 0;
- break;
+ switch(dataType)
+ {
+ case baseDataTypes::BOOL:
+ dataSize = 0;
+ break;
- case baseDataTypes::CHAR:
- dataSize = sizeof(char);
- break;
+ case baseDataTypes::CHAR:
+ dataSize = sizeof(char);
+ break;
- case baseDataTypes::DOUBLE:
- dataSize = sizeof(double);
- break;
+ case baseDataTypes::DOUBLE:
+ dataSize = sizeof(double);
+ break;
- case baseDataTypes::FLOAT:
- dataSize = sizeof(float);
- break;
+ case baseDataTypes::FLOAT:
+ dataSize = sizeof(float);
+ break;
- case baseDataTypes::INT:
- dataSize = sizeof(int);
- break;
+ case baseDataTypes::INT:
+ dataSize = sizeof(int);
+ break;
- case baseDataTypes::SHORT:
- dataSize = sizeof(short);
- break;
+ case baseDataTypes::SHORT:
+ dataSize = sizeof(short);
+ break;
+ }
+ resizeData();
}
}
@@ -472,42 +482,58 @@
bool CalculationData::resizeData(int x, char *dataPointer, bool foreignDataPointer)
{
- sizeX = x;
- sizeY = 0;
- sizeZ = 0;
- sizeT = 0;
- dimension = 1;
- return resizeData(foreignDataPointer, dataPointer);
+ if(sizeX!=x || dimension!=1)
+ {
+ sizeX = x;
+ sizeY = 0;
+ sizeZ = 0;
+ sizeT = 0;
+ dimension = 1;
+ return resizeData(foreignDataPointer, dataPointer);
+ }
+ return 1;
}
bool CalculationData::resizeData(int x, int y, char *dataPointer, bool foreignDataPointer)
{
- sizeX = x;
- sizeY = y;
- sizeZ = 0;
- sizeT = 0;
- dimension = 2;
- return resizeData(foreignDataPointer, dataPointer);;
+ if(sizeX!=x || sizeY!=y || dimension!=2)
+ {
+ sizeX = x;
+ sizeY = y;
+ sizeZ = 0;
+ sizeT = 0;
+ dimension = 2;
+ return resizeData(foreignDataPointer, dataPointer);
+ }
+ return 1;
}
bool CalculationData::resizeData(int x, int y, int z, char *dataPointer, bool foreignDataPointer)
{
- sizeX = x;
- sizeY = y;
- sizeZ = z;
- sizeT = 0;
- dimension = 3;
- return resizeData(foreignDataPointer, dataPointer);;
+ if(sizeX!=x || sizeY!=y || sizeZ!=z || dimension!=3)
+ {
+ sizeX = x;
+ sizeY = y;
+ sizeZ = z;
+ sizeT = 0;
+ dimension = 3;
+ return resizeData(foreignDataPointer, dataPointer);
+ }
+ return 1;
}
bool CalculationData::resizeData(int x, int y, int z, int t, char *dataPointer, bool foreignDataPointer)
{
- sizeX = x;
- sizeY = y;
- sizeZ = z;
- sizeT = t;
- dimension = 4;
- return resizeData(foreignDataPointer, dataPointer);
+ if(sizeX!=x || sizeY!=y || sizeZ!=z || sizeT!=z || dimension!=3)
+ {
+ sizeX = x;
+ sizeY = y;
+ sizeZ = z;
+ sizeT = t;
+ dimension = 4;
+ return resizeData(foreignDataPointer, dataPointer);
+ }
+ return 1;
}
bool CalculationData::resizeData(QVector<int> newSize, char *dataPointer, bool foreignDataPointer)
@@ -531,7 +557,7 @@
return sizeX;
}
-int CalculationData::getSizeY(void)
+int CalculationData::getSizeY(void)
{
return sizeY;
}
@@ -550,10 +576,10 @@
{
switch(dataType)
{
- case baseDataTypes::BOOL:
+ case baseDataTypes::DATA_TYPES::BOOL:
return (sizeX * sizeY * sizeZ * sizeT)/8 + 1;
- case baseDataTypes::CHAR:
+ case baseDataTypes::DATA_TYPES::CHAR:
switch(dimension)
{
case 1:
@@ -566,7 +592,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(char);
}
- case baseDataTypes::DOUBLE:
+ case baseDataTypes::DATA_TYPES::DOUBLE:
switch(dimension)
{
case 1:
@@ -579,7 +605,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(double);
}
- case baseDataTypes::FLOAT:
+ case baseDataTypes::DATA_TYPES::FLOAT:
switch(dimension)
{
case 1:
@@ -592,7 +618,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(float);
}
- case baseDataTypes::INT:
+ case baseDataTypes::DATA_TYPES::INT:
switch(dimension)
{
case 1:
@@ -605,7 +631,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(int);
}
- case baseDataTypes::SHORT:
+ case baseDataTypes::DATA_TYPES::SHORT:
switch(dimension)
{
case 1:
@@ -633,20 +659,25 @@
void CalculationData::fillData(const char *dataPointer)
{
- if(data!=NULL)
- memcpy(data, dataPointer, getSizeInByte());
+ if(!haveForeignDataPointer)
+ {
+ if(data!=NULL)
+ memcpy(data, dataPointer, getSizeInByte());
+ emit dataUpdated();
+ }
}
void CalculationData::setForeignDataPointer(char *dataPointer)
{
clearData();
data = dataPointer;
+ haveForeignDataPointer = 1;
+ emit dataUpdated();
}
QString CalculationData::createXmlHeader(void)
{
- /// @todo The nasties thing to do - change that!!!
- return QString::number((int)this);
+ return QString();
}
bool CalculationData::setFromXmlString(QString *xmlString)
@@ -682,5 +713,4 @@
fillData(cData.getDataPointer());
return *this;
-}
-
+}
\ No newline at end of file
Modified: trunk/qcell/basesources/Renderer.cpp
===================================================================
--- trunk/qcell/basesources/Renderer.cpp 2007-01-07 12:32:30 UTC (rev 111)
+++ trunk/qcell/basesources/Renderer.cpp 2007-01-07 13:25:06 UTC (rev 112)
@@ -53,9 +53,9 @@
painter.begin(OGLpBuffer);
else
painter.begin(imageBuffer);
- for(int x=0;x<sizeX;++x)
+ for(int x=0;x<storage.getSizeX();++x)
{
- painter.setPen(symbolsMap[getValueAt_i(x)].color);
+ painter.setPen(symbolsMap[storage.getValueAt_i(x)].color);
painter.drawPoint(x, 0);
}
painter.end();
@@ -71,11 +71,11 @@
painter.begin(OGLpBuffer);
else
painter.begin(imageBuffer);
- for(int y=0;y<sizeY;++y)
+ for(int y=0;y<storage.getSizeY();++y)
{
- for(int x=0;x<sizeX;++x)
+ for(int x=0;x<storage.getSizeX();++x)
{
- painter.setPen(symbolsMap[getValueAt_i(x, y, zval)].color);
+ painter.setPen(symbolsMap[storage.getValueAt_i(x, y, zval)].color);
painter.drawPoint(x, y);
}
}
@@ -144,10 +144,8 @@
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
- //glOrtho(-10.0, 10.0, 10.0, -10.0, 0.1, 15.0);
gluPerspective(75.0f, (GLdouble)width / (GLdouble)height, 0.1f, 1000.0f);
glMatrixMode(GL_MODELVIEW);
- glTranslated(0.0, 0.0, -10.0);
}
Renderer::Renderer(QWidget *parent) : QGLWidget(parent)
@@ -155,16 +153,17 @@
discretValues = 1;
OGLpBuffer = NULL;
imageBuffer = NULL;
-// painter = NULL;
SYMBOL baseSymbols;
baseSymbols.hide = 1;
baseSymbols.primitiveID = 0;
+ baseSymbols.textSybmol = '.';
addSymbol(baseSymbols);
setSymbolColor(0, QColor(0,0,0));
baseSymbols.hide = 0;
baseSymbols.primitiveID = 0;
+ baseSymbols.textSybmol = '*';
addSymbol(baseSymbols);
setSymbolColor(1, QColor(255,255,255));
@@ -190,7 +189,7 @@
delete imageBuffer;
imageBuffer = NULL;
}
-
+/*
void Renderer::setDataType(baseDataTypes::DATA_TYPES type)
{
switch(type)
@@ -216,18 +215,11 @@
if(CalculationData::resizeData(x, dataPointer, foreignDataPointer))
{
- //if(painter)
- // delete painter;
-
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = new QGLPixelBuffer(sizeX, 1, format(), this);
if(!OGLpBuffer->hasOpenGLPbuffers())
{
- // painter = new QPainter(OGLpBuffer);
- //}
- //else
- //{
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = NULL;
@@ -235,8 +227,6 @@
if(imageBuffer)
delete imageBuffer;
imageBuffer = new QImage(sizeX, 1, QImage::Format_RGB32);
- //painter = new QPainter(imageBuffer);
-
}
return 1;
}
@@ -247,19 +237,12 @@
{
if(CalculationData::resizeData(x, y, dataPointer, foreignDataPointer))
{
- //if(painter)
- // delete painter;
-
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = new QGLPixelBuffer(sizeX, sizeY, format(), this);
if(!OGLpBuffer->hasOpenGLPbuffers())
{
- // painter = new QPainter(OGLpBuffer);
- //}
- //else
- //{
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = NULL;
@@ -267,7 +250,6 @@
if(imageBuffer)
delete imageBuffer;
imageBuffer = new QImage(sizeX, sizeY, QImage::Format_RGB32);
- //painter = new QPainter(imageBuffer);
}
return 1;
}
@@ -279,19 +261,12 @@
if(CalculationData::resizeData(x, y, z, dataPointer, foreignDataPointer))
{
- //if(painter)
- // delete painter;
-
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = new QGLPixelBuffer(sizeX, sizeY, format(), this);
if(!OGLpBuffer->hasOpenGLPbuffers())
{
- //painter = new QPainter(OGLpBuffer);
- //}
- //else
- //{
if(OGLpBuffer)
delete OGLpBuffer;
OGLpBuffer = NULL;
@@ -299,7 +274,6 @@
if(imageBuffer)
delete imageBuffer;
imageBuffer = new QImage(sizeX, sizeY, QImage::Format_RGB32);
- //painter = new QPainter(imageBuffer);
}
return 1;
}
@@ -331,19 +305,19 @@
}
return 0;
}
-
+*/
void Renderer::render(void)
{
int counter = 0, index;
- float mx = -(float)sizeX, my = -(float)sizeY, mz = -(float)sizeZ;
- for(int z=0;z<sizeZ;++z)
+ float mx = -(float)storage.getSizeX(), my = -(float)storage.getSizeY(), mz = -(float)storage.getSizeZ();
+ for(int z=0;z<storage.getSizeZ();++z)
{
- for(int y=sizeY;y>0;--y)
+ for(int y=storage.getSizeY();y>0;--y)
{
- for(int x=0;x<sizeX;++x)
+ for(int x=0;x<storage.getSizeX();++x)
{
- index = getValueAt_i(counter++);
+ index = storage.getValueAt_i(counter++);
if(!(symbolsMap[index].hide))
{
glPushMatrix();
@@ -362,7 +336,7 @@
{
if(zplane==-1)
{
- switch(dimension)
+ switch(storage.getDimension())
{
case 1:
return render1D();
@@ -374,12 +348,28 @@
}
else
{
- if(dimension>1)
+ if(storage.getDimension()>1)
return render2D(zplane);
}
return QImage();
}
+void Renderer::renderToPixmap(QPixmap *pixmap, int zval)
+{
+ if(storage.getDimension()>1)
+ {
+ painter.begin(pixmap);
+ for(int y=0;y<storage.getSizeY();++y)
+ {
+ for(int x=0;x<storage.getSizeX();++x)
+ {
+ painter.setPen(symbolsMap[storage.getValueAt_i(x, y, zval)].color);
+ painter.drawPoint(x, y);
+ }
+ }
+ painter.end();
+ }
+}
bool Renderer::setSymbolColor(int index, QColor color)
{
@@ -434,6 +424,11 @@
symbolsMap<<symbol;
}
+SYMBOL Renderer::getSymbol(int index)
+{
+ return symbolsMap[index];
+}
+
void Renderer::setTranslation(float x, float y, float z)
{
translation[0] = x;
@@ -448,3 +443,37 @@
rotation[2] = z;
}
+void Renderer::rotateX(float rot)
+{
+ rotation[0] += rot;
+}
+
+void Renderer::rotateY(float rot)
+{
+ rotation[1] += rot;
+}
+
+void Renderer::rotateZ(float rot)
+{
+ rotation[2] += rot;
+}
+
+void Renderer::translateX(float trans)
+{
+ translation[0] += trans;...
[truncated message content] |
|
From: <le...@us...> - 2007-01-07 19:07:35
|
Revision: 113
http://svn.sourceforge.net/qcell/?rev=113&view=rev
Author: lessm
Date: 2007-01-07 11:07:33 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- simulationWindow class can edit Symbols
Modified Paths:
--------------
trunk/qcell/baseheaders/BaseDataTypes.h
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/baseheaders/simulationwindow.h
trunk/qcell/baseheaders/simulationwindow.ui
trunk/qcell/basesources/Renderer.cpp
trunk/qcell/basesources/simulationwindow.cpp
Modified: trunk/qcell/baseheaders/BaseDataTypes.h
===================================================================
--- trunk/qcell/baseheaders/BaseDataTypes.h 2007-01-07 13:25:06 UTC (rev 112)
+++ trunk/qcell/baseheaders/BaseDataTypes.h 2007-01-07 19:07:33 UTC (rev 113)
@@ -3,7 +3,7 @@
#include <QObject>
-class baseDataTypes : QObject
+class baseDataTypes : public QObject
{
Q_OBJECT
private:
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-07 13:25:06 UTC (rev 112)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-07 19:07:33 UTC (rev 113)
@@ -29,6 +29,7 @@
private:
protected:
QVector<SYMBOL> symbolsMap;
+ GLuint greed;
QGLPixelBuffer *OGLpBuffer;
QImage *imageBuffer;
QPainter painter;
@@ -38,6 +39,7 @@
QVector<double> rotation, translation;
GLuint generateBox(void);
+ void generateGreed(void);
QImage render1D(void);
QImage render2D(int zval=0);
@@ -70,8 +72,11 @@
bool hideSymbol(int index);
bool showSymbol(int index);
bool setSymbolPrimitive(int index, int primitiveId);
+ void setSymbol(int index, QChar symbol);
void addSymbol(SYMBOL symbol);
SYMBOL getSymbol(int index);
+ int getSymbolCount(void);
+ void removeSymbol(void);
void setTranslation(float x, float y, float z);
void setRotation(float x, float y, float z);
@@ -84,6 +89,9 @@
void translateZ(float trans);
CalculationData * getStorage(void);
+
+protected slots:
+ void resizeDataEvent(void);
};
#endif
Modified: trunk/qcell/baseheaders/simulationwindow.h
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.h 2007-01-07 13:25:06 UTC (rev 112)
+++ trunk/qcell/baseheaders/simulationwindow.h 2007-01-07 19:07:33 UTC (rev 113)
@@ -11,6 +11,7 @@
#include <QPixmap>
#include <QGraphicsPixmapItem>
#include <QProgressDialog>
+#include <QColorDialog>
#include "ui_simulationwindow.h"
#include "../baseheaders/Renderer.h"
@@ -31,6 +32,7 @@
QTableWidget *table2D;
QTableWidget *table1D;
QTableWidget *table1DMem;
+ QTableWidget *symbolTable;
bool table2DUpdateRequest, table1DUpdateRequest, graph2DUpdateRequest;
@@ -52,6 +54,7 @@
void update2DGraph(void);
void update1DTable(void);
void update1DTableMem(void);
+ void updateSymbolTable(void);
public:
simulationWindow(QWidget *parent = 0);
@@ -67,6 +70,13 @@
void GridView2DRepaint(void);
void GridView1DRepaint(void);
void GridView1DMemClear(void);
+
+ void symbolTableChange(int row, int column);
+ void symbolTableColorChange(int row, int column);
+
+ void addSymbol(void);
+ void removeSymbol(void);
+
signals:
void progressUpdate(int val);
Modified: trunk/qcell/baseheaders/simulationwindow.ui
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 13:25:06 UTC (rev 112)
+++ trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 19:07:33 UTC (rev 113)
@@ -20,7 +20,7 @@
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex" >
- <number>3</number>
+ <number>1</number>
</property>
<widget class="QWidget" name="view3D" >
<attribute name="title" >
@@ -110,7 +110,7 @@
</widget>
<widget class="QWidget" name="view1D" >
<attribute name="title" >
- <string>1D View</string>
+ <string>1D Text View</string>
</attribute>
<widget class="QRadioButton" name="Grid1DSybmols" >
<property name="geometry" >
@@ -168,6 +168,37 @@
</property>
</widget>
</widget>
+ <widget class="QWidget" name="symbolConfig" >
+ <attribute name="title" >
+ <string>Symbols Configuration</string>
+ </attribute>
+ <widget class="QPushButton" name="removeSymbol" >
+ <property name="geometry" >
+ <rect>
+ <x>110</x>
+ <y>10</y>
+ <width>90</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Remove Symbol</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="addSymbol" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>90</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Add Symbol</string>
+ </property>
+ </widget>
+ </widget>
</widget>
</widget>
<layoutdefault spacing="6" margin="11" />
Modified: trunk/qcell/basesources/Renderer.cpp
===================================================================
--- trunk/qcell/basesources/Renderer.cpp 2007-01-07 13:25:06 UTC (rev 112)
+++ trunk/qcell/basesources/Renderer.cpp 2007-01-07 19:07:33 UTC (rev 113)
@@ -47,6 +47,68 @@
return list;
}
+void Renderer::generateGreed(void)
+{
+
+ float mov;
+ if(greed>0)
+ glDeleteLists(greed, 1);
+ greed = glGenLists(1);
+ glNewList(greed, GL_COMPILE);
+
+ 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;
+
+ mov = (float)getStorage()->getSizeY();
+ for(int y=0;y<getStorage()->getSizeY() + 1;++y)
+ {
+ glVertex3f(-(float)getStorage()->getSizeX() - 1.0f, (float)(y * 2) - mov + 1.0f, -(float)(getStorage()->getSizeZ()) - mz -1.0f);
+ glVertex3f( (float)getStorage()->getSizeX() - 1.0f, (float)(y * 2) - mov + 1.0f, -(float)(getStorage()->getSizeZ()) - mz -1.0f);
+ }
+
+ mov = (float)getStorage()->getSizeX();
+ for(int x=0;x<getStorage()->getSizeX() + 1; ++x)
+ {
+ glVertex3f((float)(x * 2) - mov -1.0f, -(float)getStorage()->getSizeY() + 1.0f, -(float)(getStorage()->getSizeZ()) - mz -1.0f);
+ glVertex3f((float)(x * 2) - mov -1.0f, (float)getStorage()->getSizeY() + 1.0f, -(float)(getStorage()->getSizeZ()) - mz -1.0f);
+ }
+
+
+ mov = (float)getStorage()->getSizeZ();
+ for(int z=0;z<getStorage()->getSizeZ() + 1;++z)
+ {
+ glVertex3f(-(float)getStorage()->getSizeX() -1.0f, (float)(getStorage()->getSizeY()) + my + 1.0f, (float)(z * 2) - mov -1.0f);
+ glVertex3f( (float)getStorage()->getSizeX() -1.0f, (float)(getStorage()->getSizeY()) + my + 1.0f, (float)(z * 2) - mov -1.0f);
+ }
+
+ mov = (float)getStorage()->getSizeX();
+ for(int x=0;x<getStorage()->getSizeX() + 1; ++x)
+ {
+ glVertex3f((float)(x * 2) - mov -1.0f, (float)(getStorage()->getSizeY()) + my + 1.0f, -(float)getStorage()->getSizeZ() -1.0f);
+ glVertex3f((float)(x * 2) - mov -1.0f, (float)(getStorage()->getSizeY()) + my + 1.0f, (float)getStorage()->getSizeZ() -1.0f);
+ }
+
+
+ mov = (float)getStorage()->getSizeY();
+ for(int y=0;y<getStorage()->getSizeY() + 1;++y)
+ {
+ glVertex3f(-(float)getStorage()->getSizeX() - mx -1.0f, (float)(y * 2) - mov + 1.0f, -(float)(getStorage()->getSizeZ()) -1.0f);
+ glVertex3f(-(float)getStorage()->getSizeX() - mx -1.0f, (float)(y * 2) - mov + 1.0f, (float)(getStorage()->getSizeZ()) -1.0f);
+ }
+
+ mov = (float)getStorage()->getSizeZ();
+ for(int z=0;z<getStorage()->getSizeZ() + 1;++z)
+ {
+ glVertex3f(-(float)getStorage()->getSizeX() - mx -1.0f, -(float)(getStorage()->getSizeY()) + 1.0f, (float)(z * 2) - mov -1.0f);
+ glVertex3f(-(float)getStorage()->getSizeX() - mx -1.0f, (float)(getStorage()->getSizeY()) + 1.0f, (float)(z * 2) - mov -1.0f);
+ }
+
+ glEnd();
+ glEndList();
+}
+
QImage Renderer::render1D(void)
{
if(OGLpBuffer)
@@ -127,6 +189,8 @@
void Renderer::paintGL()
{
+ if(greed==0)
+ generateGreed();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
@@ -169,6 +233,10 @@
translation.resize(3);
rotation.resize(3);
+
+ greed = 0;
+
+ connect(&storage, SIGNAL(dataResized()), SLOT(resizeDataEvent()));
}
Renderer::~Renderer()
@@ -177,6 +245,8 @@
for(int i=0;i<primitives.size();++i)
glDeleteLists(primitives[i], 1);
+ glDeleteLists(greed, 1);
+
// if(painter)
// delete painter;
// painter = NULL;
@@ -310,6 +380,9 @@
{
int counter = 0, index;
float mx = -(float)storage.getSizeX(), my = -(float)storage.getSizeY(), mz = -(float)storage.getSizeZ();
+ glDisable(GL_LIGHTING);
+ glCallList(greed);
+ glEnable(GL_LIGHTING);
for(int z=0;z<storage.getSizeZ();++z)
{
for(int y=storage.getSizeY();y>0;--y)
@@ -419,6 +492,11 @@
return 0;
}
+void Renderer::setSymbol(int index, QChar symbol)
+{
+ symbolsMap[index].textSybmol = symbol;
+}
+
void Renderer::addSymbol(SYMBOL symbol)
{
symbolsMap<<symbol;
@@ -429,6 +507,17 @@
return symbolsMap[index];
}
+int Renderer::getSymbolCount(void)
+{
+ return symbolsMap.size();
+}
+
+void Renderer::removeSymbol(void)
+{
+ if(symbolsMap.size()>2)
+ symbolsMap.remove(symbolsMap.size()-1);
+}
+
void Renderer::setTranslation(float x, float y, float z)
{
translation[0] = x;
@@ -476,4 +565,12 @@
CalculationData * Renderer::getStorage(void)
{
return &storage;
+}
+
+void Renderer::resizeDataEvent(void)
+{
+
+ if(greed>0)
+ glDeleteLists(greed, 1);
+ greed = 0;
}
\ No newline at end of file
Modified: trunk/qcell/basesources/simulationwindow.cpp
===================================================================
--- trunk/qcell/basesources/simulationwindow.cpp 2007-01-07 13:25:06 UTC (rev 112)
+++ trunk/qcell/basesources/simulationwindow.cpp 2007-01-07 19:07:33 UTC (rev 113)
@@ -78,8 +78,8 @@
ui.view2D->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
ui.view3D->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
ui.view2DGraph->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
+ ui.symbolConfig->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
-
renderer->resize(ui.view3D->width() - 7, ui.view3D->height() - 7);
table2D->move(0, 35);
table2D->resize(ui.view2D->width() - 7 , ui.view2D->height() - 42);
@@ -90,6 +90,9 @@
table1DMem->move(0, 150);
table1DMem->resize(ui.view1D->width() - 7, ui.view1D->height() - 157);
+
+ symbolTable->move(0, 35);
+ symbolTable->resize(ui.symbolConfig->width() - 7, ui.symbolConfig->height() -42);
}
void simulationWindow::paintEvent(QPaintEvent * event)
@@ -106,7 +109,15 @@
}
if(ui.view1D->isVisible() && table1DUpdateRequest)
+ {
update1DTable();
+ table1DUpdateRequest = 0;
+ }
+
+ if(ui.symbolConfig->isVisible())
+ {
+ updateSymbolTable();
+ }
}
void simulationWindow::update2DTable(void)
@@ -139,6 +150,7 @@
item = new QTableWidgetItem(tr("%1").arg(renderer->getStorage()->getValueAt_i(x, y, z_plane)));
else
item = new QTableWidgetItem(tr("%1").arg(renderer->getSymbol(renderer->getStorage()->getValueAt_i(x, y, z_plane)).textSybmol));
+ item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
item->setTextAlignment(Qt::AlignCenter);
item->setTextColor(Qt::black);
if(ui.Grig2DColors->isChecked())
@@ -232,6 +244,7 @@
{
item = new QTableWidgetItem(tr("%1").arg(renderer->getStorage()->getValueAt_i(x)));
}
+ item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
item->setTextAlignment(Qt::AlignCenter);
item->setTextColor(Qt::black);
@@ -299,6 +312,75 @@
table1DMem->removeRow(0);
}
+void simulationWindow::updateSymbolTable(void)
+{
+ QTableWidgetItem *item;
+ SYMBOL temp;
+ if(symbolTable->rowCount() != renderer->getSymbolCount())
+ {
+ symbolTable->setRowCount(renderer->getSymbolCount());
+ for(int i=0;i<symbolTable->rowCount();++i)
+ {
+ temp = renderer->getSymbol(i);
+ item = new QTableWidgetItem;
+ item->setTextAlignment(Qt::AlignCenter);
+ item->setFlags(0);
+ item->setText(tr("%1").arg(i));
+ symbolTable->setItem(i, 0, item);
+
+ item = new QTableWidgetItem;
+ item->setTextAlignment(Qt::AlignCenter);
+ item->setText(tr("%1").arg(temp.textSybmol));
+ symbolTable->setItem(i, 1, item);
+
+ item = new QTableWidgetItem;
+ item->setTextAlignment(Qt::AlignCenter);
+ item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ item->setBackgroundColor(temp.color);
+ symbolTable->setItem(i, 2, item);
+
+ item = new QTableWidgetItem;
+ item->setTextAlignment(Qt::AlignCenter);
+ item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ item->setText(tr("%1").arg(temp.primitiveID));
+ symbolTable->setItem(i, 3, item);
+
+ item = new QTableWidgetItem;
+ item->setTextAlignment(Qt::AlignCenter);
+ item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+ if(temp.hide)
+ item->setCheckState(Qt::Checked);
+ else
+ item->setCheckState(Qt::Unchecked);
+ symbolTable->setItem(i, 4, item);
+ }
+ }
+ else
+ {
+ for(int i=0;i<renderer->getSymbolCount();++i)
+ {
+ temp = renderer->getSymbol(i);
+ item = symbolTable->item(i, 0);
+ item->setText(tr("%1").arg(i));
+
+ item = symbolTable->item(i, 1);
+ item->setText(tr("%1").arg(temp.textSybmol));
+
+ item = symbolTable->item(i, 2);
+ item->setBackgroundColor(temp.color);
+
+ item = symbolTable->item(i, 3);
+ item->setText(tr("%1").arg(temp.primitiveID));
+
+ item = symbolTable->item(i, 4);
+ if(temp.hide)
+ item->setCheckState(Qt::Checked);
+ else
+ item->setCheckState(Qt::Unchecked);
+ }
+ }
+}
+
simulationWindow::simulationWindow(QWidget *parent)
: QWidget(parent)
{
@@ -322,6 +404,14 @@
table1DMem = new QTableWidget(ui.view1D);
+ symbolTable = new QTableWidget(ui.symbolConfig);
+ symbolTable->setColumnCount(5);
+ symbolTable->setHorizontalHeaderItem(0, new QTableWidgetItem(tr("Value")));
+ symbolTable->setHorizontalHeaderItem(1, new QTableWidgetItem(tr("Symbol")));
+ symbolTable->setHorizontalHeaderItem(2, new QTableWidgetItem(tr("Color")));
+ symbolTable->setHorizontalHeaderItem(3, new QTableWidgetItem(tr("Model")));
+ symbolTable->setHorizontalHeaderItem(4, new QTableWidgetItem(tr("Hide Flag")));
+
table2D = new QTableWidget(ui.view2D);
connect(ui.Grid2DZplane, SIGNAL(valueChanged(int)), SLOT(zPlaneChange(int)));
connect(renderer->getStorage(), SIGNAL(dataUpdated()), SLOT(dataUpdateRequest()));
@@ -338,6 +428,12 @@
connect(ui.memClr, SIGNAL(clicked(bool)), SLOT(GridView1DMemClear()));
+ connect(symbolTable, SIGNAL(cellChanged(int, int)), SLOT(symbolTableChange(int, int)));
+ connect(symbolTable, SIGNAL(cellDoubleClicked(int, int)), SLOT(symbolTableColorChange(int, int)));
+
+ connect(ui.addSymbol, SIGNAL(clicked(bool)), SLOT(addSymbol()));
+ connect(ui.removeSymbol, SIGNAL(clicked(bool)), SLOT(removeSymbol()));
+
table2DUpdateRequest = 0;
table1DUpdateRequest = 0;
}
@@ -432,3 +528,69 @@
update1DTableMem();
}
+
+void simulationWindow::symbolTableChange(int row, int column)
+{
+ QChar temp;
+ QTableWidgetItem *item;
+ item = symbolTable->item(row, column);
+ if(column==1)
+ {
+ temp = (item->text())[0];
+ renderer->setSymbol(row, temp);
+ item->setText(temp);
+ table2DUpdateRequest = table1DUpdateRequest = 1;
+ }
+ else
+ if(column==4)
+ {
+
+ if(item->checkState()==Qt::Checked)
+ renderer->hideSymbol(row);
+ else
+ renderer->showSymbol(row);
+
+ renderer->repaint();
+ }
+}
+
+void simulationWindow::symbolTableColorChange(int row, int column)
+{
+ QTableWidgetItem *item;
+ item = symbolTable->item(row, column);
+ if(column==2)
+ {
+ QColor color = QColorDialog::getColor();
+ if(color.isValid())
+ {
+ item->setBackgroundColor(color);
+ renderer->setSymbolColor(row, color);
+ renderer->repaint();
+
+ if(ui.Grig1DColors->isChecked())
+ table1DUpdateRequest = 1;
+
+ if(ui.Grig2DColors->isChecked())
+ table2DUpdateRequest = 1;
+
+ graph2DUpdateRequest = 1;
+ }
+ }
+}
+
+void simulationWindow::addSymbol(void)
+{
+ SYMBOL symbol;
+ symbol.primitiveID = 0;
+ symbol.hide = 0;
+ symbol.textSybmol = '1';
+ renderer->addSymbol(symbol);
+ renderer->setSymbolColor(renderer->getSymbolCount()-1, QColor(255, 255, 255));
+ updateSymbolTable();
+}
+
+void simulationWindow::removeSymbol(void)
+{
+ renderer->removeSymbol();
+ updateSymbolTable();
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-07 20:05:19
|
Revision: 114
http://svn.sourceforge.net/qcell/?rev=114&view=rev
Author: dhubleizh
Date: 2007-01-07 12:05:16 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- Fucking Class::Enum::Value removed all over the place. LESZEK!! STOP THAT FOR GODS SAKE!!!
- as susual #include<QtOpengl> => #include<QtOpenGL>, as linux is case-sensitive
- visgui.pro to compile simulationWindow and Renderer
- changes in MainWindow to show custom simulationWindow object
- simulationWindow expands do maximum now
Modified Paths:
--------------
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/baseheaders/simulationwindow.ui
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/visgui/MainWindow.cpp
trunk/qcell/visgui/MainWindow.h
trunk/qcell/visgui/MainWindow.ui
trunk/qcell/visgui/visgui.pro
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-07 19:07:33 UTC (rev 113)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-07 20:05:16 UTC (rev 114)
@@ -10,7 +10,7 @@
#include <QImage>
#include <QPainter>
#include <QObject>
-#include <QtOpengl>
+#include <QtOpenGL>
#include <QPixmap>
#include <QChar>
Modified: trunk/qcell/baseheaders/simulationwindow.ui
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 19:07:33 UTC (rev 113)
+++ trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 20:05:16 UTC (rev 114)
@@ -1,6 +1,22 @@
<ui version="4.0" >
<class>simulationWindowClass</class>
<widget class="QWidget" name="simulationWindowClass" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>100</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="windowTitle" >
<string>simulationWindow</string>
</property>
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2007-01-07 19:07:33 UTC (rev 113)
+++ trunk/qcell/basesources/CalculationData.cpp 2007-01-07 20:05:16 UTC (rev 114)
@@ -39,14 +39,14 @@
void * CalculationData::getAddressAt(int x, int y, int z, int t)
{
int dSize;
- if(dataType==baseDataTypes::DATA_TYPES::NONE)
+ if(dataType==baseDataTypes::NONE)
return NULL;
return data + dataSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
}
CalculationData::CalculationData()
{
- dataType = baseDataTypes::DATA_TYPES::NONE;
+ dataType = baseDataTypes::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -56,7 +56,7 @@
CalculationData::~CalculationData()
{
- dataType = baseDataTypes::DATA_TYPES::NONE;
+ dataType = baseDataTypes::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -67,7 +67,7 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
case baseDataTypes::CHAR:
@@ -92,16 +92,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, 0, 0)));
case baseDataTypes::FLOAT:
return (int)(*((float *)(getAddressAt(x, y, 0, 0))));
@@ -116,16 +116,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, z, 0)));
case baseDataTypes::FLOAT:
@@ -141,16 +141,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, z, t)));
case baseDataTypes::FLOAT:
@@ -183,18 +183,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, 0, 0, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, 0, 0, 0))) = (short)val;
break;
}
@@ -204,18 +204,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, 0, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, 0, 0))) = (short)val;
break;
}
@@ -225,18 +225,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, z, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, z, 0))) = (short)val;
break;
}
@@ -246,18 +246,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, z, t)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, z, t))) = (short)val;
break;
}
@@ -267,22 +267,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, 0, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, 0, 0, 0)));
}
return 0.0;
@@ -292,22 +292,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, 0, 0)));
}
return 0.0;
@@ -317,22 +317,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, z, 0)));
}
return 0.0;
@@ -342,22 +342,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, z, t)));
}
return 0.0;
@@ -383,11 +383,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, 0, 0, 0))) = (float)val;
break;
}
@@ -397,11 +397,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, 0, 0))) = (float)val;
break;
}
@@ -411,11 +411,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, z, 0))) = (float)val;
break;
}
@@ -425,11 +425,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, z, t))) = (float)val;
break;
}
@@ -576,10 +576,10 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
return (sizeX * sizeY * sizeZ * sizeT)/8 + 1;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
switch(dimension)
{
case 1:
@@ -592,7 +592,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(char);
}
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
switch(dimension)
{
case 1:
@@ -605,7 +605,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(double);
}
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
switch(dimension)
{
case 1:
@@ -618,7 +618,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(float);
}
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
switch(dimension)
{
case 1:
@@ -631,7 +631,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(int);
}
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
switch(dimension)
{
case 1:
@@ -713,4 +713,4 @@
fillData(cData.getDataPointer());
return *this;
-}
\ No newline at end of file
+}
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-07 19:07:33 UTC (rev 113)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-07 20:05:16 UTC (rev 114)
@@ -12,7 +12,10 @@
{
// GUI setup - earlies possible to show the user, that we're in buisness
setupUi(this);
-
+ sw = new simulationWindow(this);
+ QLayoutItem* tmp = centralWidget()->layout()->takeAt(0);
+ centralWidget()->layout()->addWidget(sw);
+ centralWidget()->layout()->addItem(tmp);
// Plugin parsing
/// @todo get that code out of here!
ParserInterface* iParser;
Modified: trunk/qcell/visgui/MainWindow.h
===================================================================
--- trunk/qcell/visgui/MainWindow.h 2007-01-07 19:07:33 UTC (rev 113)
+++ trunk/qcell/visgui/MainWindow.h 2007-01-07 20:05:16 UTC (rev 114)
@@ -21,6 +21,7 @@
#include <LocalFunction.h>
#include <Neighbourhood.h>
#include <Renderer.h>
+#include <simulationwindow.h>
typedef QString (*parser_fun)(QByteArray content, QString type, QString subtype);
@@ -50,6 +51,7 @@
void on_action_Stop_activated();
void on_action_Restart_activated();
private:
+ simulationWindow* sw;
QMap<QString, ParserInterface*> neighbourhood_parsers;
QMap<QString, ParserInterface*> function_parsers;
QMap<QString, ParserInterface*> world_parsers;
Modified: trunk/qcell/visgui/MainWindow.ui
===================================================================
--- trunk/qcell/visgui/MainWindow.ui 2007-01-07 19:07:33 UTC (rev 113)
+++ trunk/qcell/visgui/MainWindow.ui 2007-01-07 20:05:16 UTC (rev 114)
@@ -24,19 +24,6 @@
<number>6</number>
</property>
<item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
Modified: trunk/qcell/visgui/visgui.pro
===================================================================
--- trunk/qcell/visgui/visgui.pro 2007-01-07 19:07:33 UTC (rev 113)
+++ trunk/qcell/visgui/visgui.pro 2007-01-07 20:05:16 UTC (rev 114)
@@ -7,7 +7,8 @@
FORMS = MainWindow.ui \
AboutDialog.ui \
- ExperimentSetup.ui
+ ExperimentSetup.ui \
+ ../baseheaders/simulationwindow.ui
HEADERS = MainWindow.h \
../baseheaders/Client.h \
../baseheaders/ClientInfo.h \
@@ -16,7 +17,9 @@
../baseheaders/GenericParserPlugin.h \
../baseheaders/Neighbourhood.h \
../baseheaders/CalculationData.h \
- ../baseheaders/LocalFunction.h
+ ../baseheaders/LocalFunction.h \
+ ../baseheaders/simulationwindow.h \
+ ../baseheaders/Renderer.h
SOURCES = ../basesources/GenericParserPlugin.cpp \
main.cpp \
@@ -25,7 +28,9 @@
../basesources/ClientInfo.cpp \
../basesources/Neighbourhood.cpp \
../basesources/CalculationData.cpp \
- ../basesources/LocalFunction.cpp
+ ../basesources/LocalFunction.cpp \
+ ../basesources/simulationwindow.cpp \
+ ../basesources/Renderer.cpp
LIBS = -L../libs -lN -lFQT -lKI
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-07 20:26:17
|
Revision: 115
http://svn.sourceforge.net/qcell/?rev=115&view=rev
Author: dhubleizh
Date: 2007-01-07 12:26:16 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- typo in simulationWindow
- off with Class::Enum::Value in Calculator
- Calculator{cpp,h} added to visgui.pro
- proper(?) simulationWindow handling in MainWindow
Modified Paths:
--------------
trunk/qcell/baseheaders/simulationwindow.h
trunk/qcell/basesources/Calculator.cpp
trunk/qcell/visgui/MainWindow.cpp
trunk/qcell/visgui/MainWindow.h
trunk/qcell/visgui/visgui.pro
Modified: trunk/qcell/baseheaders/simulationwindow.h
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.h 2007-01-07 20:05:16 UTC (rev 114)
+++ trunk/qcell/baseheaders/simulationwindow.h 2007-01-07 20:26:16 UTC (rev 115)
@@ -60,8 +60,8 @@
simulationWindow(QWidget *parent = 0);
~simulationWindow();
- Renderer *getRenderer();
- CalculationData *getStorage();
+ Renderer *getRenderer();
+ CalculationData *getStorage();
protected slots:
void zPlaneChange(int i);
Modified: trunk/qcell/basesources/Calculator.cpp
===================================================================
--- trunk/qcell/basesources/Calculator.cpp 2007-01-07 20:05:16 UTC (rev 114)
+++ trunk/qcell/basesources/Calculator.cpp 2007-01-07 20:26:16 UTC (rev 115)
@@ -106,10 +106,10 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
return (outDataSize[0] * outDataSize[1] * outDataSize[2] * outDataSize[3])/8 + 1;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
switch(dimension)
{
case 1:
@@ -122,7 +122,7 @@
return outDataSize[0] * outDataSize[1] * outDataSize[2] * outDataSize[3] * sizeof(char);
}
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
switch(dimension)
{
case 1:
@@ -135,7 +135,7 @@
return outDataSize[0] * outDataSize[1] * outDataSize[2] * outDataSize[3] * sizeof(double);
}
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
switch(dimension)
{
case 1:
@@ -148,7 +148,7 @@
return outDataSize[0] * outDataSize[1] * outDataSize[2] * outDataSize[3] * sizeof(float);
}
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
switch(dimension)
{
case 1:
@@ -161,7 +161,7 @@
return outDataSize[0] * outDataSize[1] * outDataSize[2] * outDataSize[3] * sizeof(int);
}
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
switch(dimension)
{
case 1:
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-07 20:05:16 UTC (rev 114)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-07 20:26:16 UTC (rev 115)
@@ -248,6 +248,7 @@
neighbourhood = new Neighbourhood;
neighbourhood->fromXmlString(&neighbourhood_parsers[subtype]->parse(file_content, type, subtype));
+ calc.setNeighbourhood(neighbourhood);
}
else if (type == "LocalFunction")
@@ -263,6 +264,7 @@
local_function = new LocalFunction();
local_function->fromXmlString(&function_parsers[subtype]->parse(file_content, type, subtype));
+ calc.setLocalFunction(local_function);
}
else if (type == "World")
{
@@ -278,6 +280,9 @@
/// @todo Fix that!
data.clear();
data.append((CalculationData*)world_parsers[subtype]->parse(file_content, type, subtype).toInt());
+ CalculationData* cd = sw->getStorage();
+ cd = data.first();
+ /// @todo Nasty - get that code out of here !
}
else
{
Modified: trunk/qcell/visgui/MainWindow.h
===================================================================
--- trunk/qcell/visgui/MainWindow.h 2007-01-07 20:05:16 UTC (rev 114)
+++ trunk/qcell/visgui/MainWindow.h 2007-01-07 20:26:16 UTC (rev 115)
@@ -22,6 +22,7 @@
#include <Neighbourhood.h>
#include <Renderer.h>
#include <simulationwindow.h>
+#include <Calculator.h>
typedef QString (*parser_fun)(QByteArray content, QString type, QString subtype);
@@ -70,6 +71,7 @@
bool working;
int iteration;
+ Calculator calc;
QList<CalculationData*> data;
LocalFunction* local_function;
Neighbourhood* neighbourhood;
Modified: trunk/qcell/visgui/visgui.pro
===================================================================
--- trunk/qcell/visgui/visgui.pro 2007-01-07 20:05:16 UTC (rev 114)
+++ trunk/qcell/visgui/visgui.pro 2007-01-07 20:26:16 UTC (rev 115)
@@ -19,7 +19,8 @@
../baseheaders/CalculationData.h \
../baseheaders/LocalFunction.h \
../baseheaders/simulationwindow.h \
- ../baseheaders/Renderer.h
+ ../baseheaders/Renderer.h \
+ ../baseheaders/Calculator.h
SOURCES = ../basesources/GenericParserPlugin.cpp \
main.cpp \
@@ -30,7 +31,8 @@
../basesources/CalculationData.cpp \
../basesources/LocalFunction.cpp \
../basesources/simulationwindow.cpp \
- ../basesources/Renderer.cpp
+ ../basesources/Renderer.cpp \
+ ../basesources/Calculator.cpp
LIBS = -L../libs -lN -lFQT -lKI
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <le...@us...> - 2007-01-07 21:00:58
|
Revision: 118
http://svn.sourceforge.net/qcell/?rev=118&view=rev
Author: lessm
Date: 2007-01-07 13:00:56 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- new view add
Modified Paths:
--------------
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/baseheaders/simulationwindow.h
trunk/qcell/baseheaders/simulationwindow.ui
trunk/qcell/basesources/Renderer.cpp
trunk/qcell/basesources/simulationwindow.cpp
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-07 20:55:11 UTC (rev 117)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-07 21:00:56 UTC (rev 118)
@@ -10,7 +10,7 @@
#include <QImage>
#include <QPainter>
#include <QObject>
-#include <QtOpenGL>
+#include <QtOpengl>
#include <QPixmap>
#include <QChar>
@@ -34,6 +34,7 @@
QImage *imageBuffer;
QPainter painter;
bool discretValues;
+ bool corectPerspective;
QVector<GLuint> primitives;
QVector<double> rotation, translation;
@@ -90,6 +91,9 @@
CalculationData * getStorage(void);
+ void setOrtoPerspective(void);
+ void setRealPerspective(void);
+
protected slots:
void resizeDataEvent(void);
};
Modified: trunk/qcell/baseheaders/simulationwindow.h
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.h 2007-01-07 20:55:11 UTC (rev 117)
+++ trunk/qcell/baseheaders/simulationwindow.h 2007-01-07 21:00:56 UTC (rev 118)
@@ -60,8 +60,8 @@
simulationWindow(QWidget *parent = 0);
~simulationWindow();
- Renderer *getRenderer();
- CalculationData *getStorage();
+ Renderer *getRenderer();
+ CalculationData *getStorage();
protected slots:
void zPlaneChange(int i);
@@ -77,6 +77,9 @@
void addSymbol(void);
void removeSymbol(void);
+ void corectPerspectve(void);
+ void orthoPerspective(void);
+
signals:
void progressUpdate(int val);
Modified: trunk/qcell/baseheaders/simulationwindow.ui
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 20:55:11 UTC (rev 117)
+++ trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 21:00:56 UTC (rev 118)
@@ -1,22 +1,6 @@
<ui version="4.0" >
<class>simulationWindowClass</class>
<widget class="QWidget" name="simulationWindowClass" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>100</width>
- <height>30</height>
- </rect>
- </property>
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
<property name="windowTitle" >
<string>simulationWindow</string>
</property>
@@ -36,12 +20,41 @@
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex" >
- <number>1</number>
+ <number>0</number>
</property>
<widget class="QWidget" name="view3D" >
<attribute name="title" >
<string>3D View</string>
</attribute>
+ <widget class="QRadioButton" name="perspectiveView" >
+ <property name="geometry" >
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>83</width>
+ <height>18</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Perspective</string>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QRadioButton" name="ortho2DView" >
+ <property name="geometry" >
+ <rect>
+ <x>120</x>
+ <y>10</y>
+ <width>83</width>
+ <height>18</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Ortho2D</string>
+ </property>
+ </widget>
</widget>
<widget class="QWidget" name="view2D" >
<attribute name="title" >
Modified: trunk/qcell/basesources/Renderer.cpp
===================================================================
--- trunk/qcell/basesources/Renderer.cpp 2007-01-07 20:55:11 UTC (rev 117)
+++ trunk/qcell/basesources/Renderer.cpp 2007-01-07 21:00:56 UTC (rev 118)
@@ -206,10 +206,12 @@
{
glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(75.0f, (GLdouble)width / (GLdouble)height, 0.1f, 1000.0f);
- glMatrixMode(GL_MODELVIEW);
+ if(corectPerspective)
+ setRealPerspective();
+ else
+ setOrtoPerspective();
+
+
}
Renderer::Renderer(QWidget *parent) : QGLWidget(parent)
@@ -235,7 +237,7 @@
rotation.resize(3);
greed = 0;
-
+ corectPerspective = 1;
connect(&storage, SIGNAL(dataResized()), SLOT(resizeDataEvent()));
}
@@ -569,8 +571,29 @@
void Renderer::resizeDataEvent(void)
{
-
if(greed>0)
glDeleteLists(greed, 1);
greed = 0;
-}
\ No newline at end of file
+
+ if(!corectPerspective)
+ setOrtoPerspective();
+}
+
+void Renderer::setOrtoPerspective(void)
+{
+ float aspect = (float)width()/(float)height();
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho((-(double)storage.getSizeX() - 10.0) * aspect, ((double)storage.getSizeX() + 10.0) * aspect, -(double)storage.getSizeY() -10.0 , (double)storage.getSizeY() + 10.0, 0.0, 500.0);
+ glMatrixMode(GL_MODELVIEW);
+ corectPerspective = 0;
+}
+
+void Renderer::setRealPerspective(void)
+{
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(75.0f, (GLdouble)width() / (GLdouble)height(), 0.1f, 500.0f);
+ glMatrixMode(GL_MODELVIEW);
+ corectPerspective = 1;
+}
Modified: trunk/qcell/basesources/simulationwindow.cpp
===================================================================
--- trunk/qcell/basesources/simulationwindow.cpp 2007-01-07 20:55:11 UTC (rev 117)
+++ trunk/qcell/basesources/simulationwindow.cpp 2007-01-07 21:00:56 UTC (rev 118)
@@ -80,7 +80,9 @@
ui.view2DGraph->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
ui.symbolConfig->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
- renderer->resize(ui.view3D->width() - 7, ui.view3D->height() - 7);
+ renderer->move(0, 35);
+ renderer->resize(ui.view3D->width() - 7, ui.view3D->height() - 42);
+
table2D->move(0, 35);
table2D->resize(ui.view2D->width() - 7 , ui.view2D->height() - 42);
graphicsView2D->resize(ui.view2DGraph->width() - 7, ui.view2DGraph->height() - 7);
@@ -434,6 +436,9 @@
connect(ui.addSymbol, SIGNAL(clicked(bool)), SLOT(addSymbol()));
connect(ui.removeSymbol, SIGNAL(clicked(bool)), SLOT(removeSymbol()));
+ connect(ui.perspectiveView, SIGNAL(clicked(bool)), SLOT(corectPerspectve()));
+ connect(ui.ortho2DView, SIGNAL(clicked(bool)), SLOT(orthoPerspective()));
+
table2DUpdateRequest = 0;
table1DUpdateRequest = 0;
}
@@ -594,3 +599,15 @@
renderer->removeSymbol();
updateSymbolTable();
}
+
+void simulationWindow::corectPerspectve(void)
+{
+ renderer->setRealPerspective();
+ renderer->repaint();
+}
+
+void simulationWindow::orthoPerspective(void)
+{
+ renderer->setOrtoPerspective();
+ renderer->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.
|
|
From: <dhu...@us...> - 2007-01-07 22:36:02
|
Revision: 122
http://svn.sourceforge.net/qcell/?rev=122&view=rev
Author: dhubleizh
Date: 2007-01-07 14:35:59 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- include case in Render.h
- out with Class::Enum::Value from CalculationData AGAIN!
Modified Paths:
--------------
trunk/qcell/baseheaders/Renderer.h
trunk/qcell/basesources/CalculationData.cpp
Modified: trunk/qcell/baseheaders/Renderer.h
===================================================================
--- trunk/qcell/baseheaders/Renderer.h 2007-01-07 21:30:21 UTC (rev 121)
+++ trunk/qcell/baseheaders/Renderer.h 2007-01-07 22:35:59 UTC (rev 122)
@@ -10,7 +10,7 @@
#include <QImage>
#include <QPainter>
#include <QObject>
-#include <QtOpengl>
+#include <QtOpenGL>
#include <QPixmap>
#include <QChar>
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2007-01-07 21:30:21 UTC (rev 121)
+++ trunk/qcell/basesources/CalculationData.cpp 2007-01-07 22:35:59 UTC (rev 122)
@@ -39,14 +39,14 @@
void * CalculationData::getAddressAt(int x, int y, int z, int t)
{
int dSize;
- if(dataType==baseDataTypes::DATA_TYPES::NONE)
+ if(dataType==baseDataTypes::NONE)
return NULL;
return data + dataSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
}
CalculationData::CalculationData()
{
- dataType = baseDataTypes::DATA_TYPES::CHAR;
+ dataType = baseDataTypes::CHAR;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = sizeof(char);
@@ -56,7 +56,7 @@
CalculationData::~CalculationData()
{
- dataType = baseDataTypes::DATA_TYPES::NONE;
+ dataType = baseDataTypes::NONE;
sizeX = sizeY = sizeZ = sizeT = 0;
dimension = -1;
dataSize = 0;
@@ -67,7 +67,7 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
case baseDataTypes::CHAR:
@@ -92,16 +92,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, 0, 0)));
case baseDataTypes::FLOAT:
return (int)(*((float *)(getAddressAt(x, y, 0, 0))));
@@ -116,16 +116,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, z, 0)));
case baseDataTypes::FLOAT:
@@ -141,16 +141,16 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return *((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return *((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return *((short *)(getAddressAt(x, y, z, t)));
case baseDataTypes::FLOAT:
@@ -183,18 +183,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, 0, 0, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, 0, 0, 0))) = (short)val;
break;
}
@@ -204,18 +204,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, 0, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, 0, 0))) = (short)val;
break;
}
@@ -225,18 +225,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, z, 0)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, z, 0))) = (short)val;
break;
}
@@ -246,18 +246,18 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
*((char *)getAddressAt(x, y, z, t)) = (char)val;
break;
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
*((int *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
*((short *)(getAddressAt(x, y, z, t))) = (short)val;
break;
}
@@ -267,22 +267,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, 0, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, 0, 0, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, 0, 0, 0)));
}
return 0.0;
@@ -292,22 +292,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, 0, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, 0, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, 0, 0)));
}
return 0.0;
@@ -317,22 +317,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, z, 0));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, z, 0)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, z, 0)));
}
return 0.0;
@@ -342,22 +342,22 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
break;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
return (double)*((char *)getAddressAt(x, y, z, t));
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
return (double)*((int *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
return (double)*((short *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
return *((double *)(getAddressAt(x, y, z, t)));
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
return *((float *)(getAddressAt(x, y, z, t)));
}
return 0.0;
@@ -383,11 +383,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, 0, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, 0, 0, 0))) = (float)val;
break;
}
@@ -397,11 +397,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, 0, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, 0, 0))) = (float)val;
break;
}
@@ -411,11 +411,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, z, 0))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, z, 0))) = (float)val;
break;
}
@@ -425,11 +425,11 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
*((double *)(getAddressAt(x, y, z, t))) = val;
break;
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
*((float *)(getAddressAt(x, y, z, t))) = (float)val;
break;
}
@@ -576,10 +576,10 @@
{
switch(dataType)
{
- case baseDataTypes::DATA_TYPES::BOOL:
+ case baseDataTypes::BOOL:
return (sizeX * sizeY * sizeZ * sizeT)/8 + 1;
- case baseDataTypes::DATA_TYPES::CHAR:
+ case baseDataTypes::CHAR:
switch(dimension)
{
case 1:
@@ -592,7 +592,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(char);
}
- case baseDataTypes::DATA_TYPES::DOUBLE:
+ case baseDataTypes::DOUBLE:
switch(dimension)
{
case 1:
@@ -605,7 +605,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(double);
}
- case baseDataTypes::DATA_TYPES::FLOAT:
+ case baseDataTypes::FLOAT:
switch(dimension)
{
case 1:
@@ -618,7 +618,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(float);
}
- case baseDataTypes::DATA_TYPES::INT:
+ case baseDataTypes::INT:
switch(dimension)
{
case 1:
@@ -631,7 +631,7 @@
return sizeX * sizeY * sizeZ * sizeT * sizeof(int);
}
- case baseDataTypes::DATA_TYPES::SHORT:
+ case baseDataTypes::SHORT:
switch(dimension)
{
case 1:
@@ -713,4 +713,4 @@
fillData(cData.getDataPointer());
return *this;
-}
\ No newline at end of file
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-07 22:39:07
|
Revision: 123
http://svn.sourceforge.net/qcell/?rev=123&view=rev
Author: dhubleizh
Date: 2007-01-07 14:39:05 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
- reverted to my expanding simulationWindow class
- removed plugin debug from MainWindow
Modified Paths:
--------------
trunk/qcell/baseheaders/simulationwindow.ui
trunk/qcell/visgui/MainWindow.cpp
Modified: trunk/qcell/baseheaders/simulationwindow.ui
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 22:35:59 UTC (rev 122)
+++ trunk/qcell/baseheaders/simulationwindow.ui 2007-01-07 22:39:05 UTC (rev 123)
@@ -1,6 +1,22 @@
<ui version="4.0" >
<class>simulationWindowClass</class>
<widget class="QWidget" name="simulationWindowClass" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>100</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="windowTitle" >
<string>simulationWindow</string>
</property>
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-07 22:35:59 UTC (rev 122)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-07 22:39:05 UTC (rev 123)
@@ -21,8 +21,6 @@
ParserInterface* iParser;
QStringList parser_types, file_types;
- QMessageBox::information(this, "Plugins",
- QString("Number of plugins: %1").arg(QPluginLoader::staticInstances().count()));
// We check each static plugin if it is a parser plugin
// and if it is we register each parsing fucntion
// according to supported types and file extensions
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <le...@us...> - 2007-01-08 16:11:24
|
Revision: 126
http://svn.sourceforge.net/qcell/?rev=126&view=rev
Author: lessm
Date: 2007-01-08 08:11:15 -0800 (Mon, 08 Jan 2007)
Log Message:
-----------
- libs(ki, fqt, n) compile on visual studio now
Modified Paths:
--------------
trunk/qcell/baseheaders/GenericParserPlugin.h
trunk/qcell/baseheaders/interfaces.h
trunk/qcell/basesources/GenericParserPlugin.cpp
trunk/qcell/parsers/FQT/FQTParserPlugin.h
trunk/qcell/parsers/KI/KIParserPlugin.h
trunk/qcell/parsers/N/NParserPlugin.h
Modified: trunk/qcell/baseheaders/GenericParserPlugin.h
===================================================================
--- trunk/qcell/baseheaders/GenericParserPlugin.h 2007-01-08 06:34:57 UTC (rev 125)
+++ trunk/qcell/baseheaders/GenericParserPlugin.h 2007-01-08 16:11:15 UTC (rev 126)
@@ -31,7 +31,7 @@
*
* @return A an XML string with parsed data
*/
- virtual QString realParser(QByteArray content, QString type, QString subtype) = 0;
+ virtual QString realParser(const QByteArray content, const QString type, const QString subtype) = 0;
public:
/**
@@ -68,7 +68,7 @@
QString parse(const QByteArray content, const QString type, const QString subtype="");
- QByteArray parseOut(QString content, const QString type, const QString subtype="") = 0;
+ virtual QByteArray parseOut(QString content, const QString type, const QString subtype="") = 0;
};
#endif
Modified: trunk/qcell/baseheaders/interfaces.h
===================================================================
--- trunk/qcell/baseheaders/interfaces.h 2007-01-08 06:34:57 UTC (rev 125)
+++ trunk/qcell/baseheaders/interfaces.h 2007-01-08 16:11:15 UTC (rev 126)
@@ -28,7 +28,7 @@
*
* @return A list of types supported by the parser
*/
- virtual QStringList parserTypes() = 0;
+ // virtual QStringList parserTypes() = 0;
/**
* @brief File types the plugin is able to parse
*
@@ -36,7 +36,7 @@
*
* @return A list of types(extensions) of files types parsed by the plugin
*/
- virtual QStringList fileTypes(const QString type) = 0;
+ // virtual QStringList fileTypes(const QString type) = 0;
/**
* @brief The main parsing function
Modified: trunk/qcell/basesources/GenericParserPlugin.cpp
===================================================================
--- trunk/qcell/basesources/GenericParserPlugin.cpp 2007-01-08 06:34:57 UTC (rev 125)
+++ trunk/qcell/basesources/GenericParserPlugin.cpp 2007-01-08 16:11:15 UTC (rev 126)
@@ -6,7 +6,7 @@
* Last Update: wto 05 gru 2006 20:23:24 CET
*/
-#include "GenericParserPlugin.h"
+#include "../baseheaders/GenericParserPlugin.h"
//QStringList GenericParserPlugin::parserTypes()
//{
Modified: trunk/qcell/parsers/FQT/FQTParserPlugin.h
===================================================================
--- trunk/qcell/parsers/FQT/FQTParserPlugin.h 2007-01-08 06:34:57 UTC (rev 125)
+++ trunk/qcell/parsers/FQT/FQTParserPlugin.h 2007-01-08 16:11:15 UTC (rev 126)
@@ -21,10 +21,10 @@
{
protected:
QString realParser(const QByteArray content, const QString type, const QString subtype);
- QByteArray parseOut(QString content, const QString type, const QString subtype="");
+
public:
FQTParserPlugin();
-
+ QByteArray parseOut(QString content, const QString type, const QString subtype="");
};
#endif
Modified: trunk/qcell/parsers/KI/KIParserPlugin.h
===================================================================
--- trunk/qcell/parsers/KI/KIParserPlugin.h 2007-01-08 06:34:57 UTC (rev 125)
+++ trunk/qcell/parsers/KI/KIParserPlugin.h 2007-01-08 16:11:15 UTC (rev 126)
@@ -18,12 +18,12 @@
class KIParserPlugin : public GenericParserPlugin
{
protected:
- QString realParser(QByteArray content, QString type, QString subtype);
- QByteArray parseOut(QString content, const QString type, const QString subtype="");
+ QString realParser(const QByteArray content, const QString type, const QString subtype);
+
public:
KIParserPlugin();
+ QByteArray parseOut(QString content, const QString type, const QString subtype="");
-
};
#endif
Modified: trunk/qcell/parsers/N/NParserPlugin.h
===================================================================
--- trunk/qcell/parsers/N/NParserPlugin.h 2007-01-08 06:34:57 UTC (rev 125)
+++ trunk/qcell/parsers/N/NParserPlugin.h 2007-01-08 16:11:15 UTC (rev 126)
@@ -19,10 +19,10 @@
{
protected:
QString realParser(const QByteArray content, const QString type, const QString subtype);
- QByteArray parseOut(QString content, const QString type, const QString subtype);
+
public:
NParserPlugin();
-
+ QByteArray parseOut(QString content, const QString type, const QString subtype);
};
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <le...@us...> - 2007-01-08 16:24:51
|
Revision: 127
http://svn.sourceforge.net/qcell/?rev=127&view=rev
Author: lessm
Date: 2007-01-08 08:24:46 -0800 (Mon, 08 Jan 2007)
Log Message:
-----------
- interfaces.h changed
Modified Paths:
--------------
trunk/qcell/baseheaders/interfaces.h
trunk/qcell/visgui/MainWindow.cpp
Modified: trunk/qcell/baseheaders/interfaces.h
===================================================================
--- trunk/qcell/baseheaders/interfaces.h 2007-01-08 16:11:15 UTC (rev 126)
+++ trunk/qcell/baseheaders/interfaces.h 2007-01-08 16:24:46 UTC (rev 127)
@@ -28,7 +28,7 @@
*
* @return A list of types supported by the parser
*/
- // virtual QStringList parserTypes() = 0;
+ virtual QStringList parserTypes() = 0;
/**
* @brief File types the plugin is able to parse
*
@@ -36,7 +36,7 @@
*
* @return A list of types(extensions) of files types parsed by the plugin
*/
- // virtual QStringList fileTypes(const QString type) = 0;
+ virtual QStringList fileTypes(const QString type) = 0;
/**
* @brief The main parsing function
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-08 16:11:15 UTC (rev 126)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-08 16:24:46 UTC (rev 127)
@@ -12,7 +12,7 @@
{
// GUI setup - earlies possible to show the user, that we're in buisness
setupUi(this);
- sw = new simulationWindow(this);
+ sw = new simulationWindow(this);
QLayoutItem* tmp = centralWidget()->layout()->takeAt(0);
centralWidget()->layout()->addWidget(sw);
centralWidget()->layout()->addItem(tmp);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dhu...@us...> - 2007-01-08 17:11:58
|
Revision: 128
http://svn.sourceforge.net/qcell/?rev=128&view=rev
Author: dhubleizh
Date: 2007-01-08 09:11:50 -0800 (Mon, 08 Jan 2007)
Log Message:
-----------
- typo in KIParserPlugin.cpp
- removed pending /// @todo's from the file
- full intialization of data in on_World_activated()
- proper experiment forward an backward handling
- proper experiment restart handled
Modified Paths:
--------------
trunk/qcell/parsers/KI/KIParserPlugin.h
trunk/qcell/visgui/MainWindow.cpp
Modified: trunk/qcell/parsers/KI/KIParserPlugin.h
===================================================================
--- trunk/qcell/parsers/KI/KIParserPlugin.h 2007-01-08 16:24:46 UTC (rev 127)
+++ trunk/qcell/parsers/KI/KIParserPlugin.h 2007-01-08 17:11:50 UTC (rev 128)
@@ -22,7 +22,7 @@
public:
KIParserPlugin();
- QByteArray parseOut(QString content, const QString type, const QString subtype="");
+ QByteArray parseOut(QString content, const QString type, const QString subtype="");
};
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-08 16:24:46 UTC (rev 127)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-08 17:11:50 UTC (rev 128)
@@ -12,7 +12,7 @@
{
// GUI setup - earlies possible to show the user, that we're in buisness
setupUi(this);
- sw = new simulationWindow(this);
+ sw = new simulationWindow(this);
QLayoutItem* tmp = centralWidget()->layout()->takeAt(0);
centralWidget()->layout()->addWidget(sw);
centralWidget()->layout()->addItem(tmp);
@@ -65,6 +65,7 @@
}
}
+ /// @todo This function doesn't belong here. It initializes things not fore GUI
setupEngine();
}
@@ -276,8 +277,14 @@
}
/// @todo Fix that!
- CalculationData* cd = (CalculationData*)world_parsers[subtype]->parse(file_content, type, subtype).toInt();
- *sw->getStorage() = *cd;
+ data.clear();
+ data.append((CalculationData*)world_parsers[subtype]->parse(file_content, type, subtype).toInt());
+ *sw->getStorage() = *data.last();
+ QVector<int> end_coord;
+ end_coord << data.last()->getSizeX()
+ << data.last()->getSizeY()
+ << data.last()->getSizeZ();
+ calc.setCalculationSpace(*new QVector<int>(3, 0), end_coord);
/// @todo Nasty - get that code out of here !
}
else
@@ -360,18 +367,20 @@
void MainWindow::oneStep(int direction)
{
- /// @todo Write oneStep
switch (direction)
{
case Forward:
{
- if(iteration < (data.count()-1))
+ if(iteration >= data.count())
{
- /// @todo moving through the list
+ CalculationData* cd = new CalculationData();
+ *cd = *data[iteration];
+ calc.setForeignDataPointer((char*)cd->getDataPointer());
+ calc.calculate();
}
else
{
- /// @todo processing
+ /// @todo Is this needed?
}
iteration++;
@@ -380,18 +389,17 @@
}
case Back:
{
- if(iteration == 0)
+ if(iteration <= 0)
{
qDebug(tr("You cannot step back beyond the beginning of the experiment!").toAscii());
return;
}
- /// @todo actuall going back
-
iteration--;
}
}
+ *sw->getStorage() = *data[iteration];
iterationLCD->display(iteration);
}
@@ -437,7 +445,6 @@
void MainWindow::on_action_Back_activated()
{
- /// @todo Handle back movement
oneStep( Back);
}
@@ -473,7 +480,9 @@
iteration = 0;
this->iterationLCD->display(iteration);
-// CalculationData backup = data.first();
+ CalculationData* backup = data.first();
+ data.clear();
+ data.append(backup);
}
void MainWindow::on_action_World_save_activated()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <le...@us...> - 2007-01-08 22:33:13
|
Revision: 129
http://svn.sourceforge.net/qcell/?rev=129&view=rev
Author: lessm
Date: 2007-01-08 14:33:11 -0800 (Mon, 08 Jan 2007)
Log Message:
-----------
- LocalFunction have toXmlString and fromXmlString methods
Modified Paths:
--------------
trunk/qcell/baseheaders/LocalFunction.h
trunk/qcell/basesources/LocalFunction.cpp
trunk/qcell/parsers/FQT/FQTParserPlugin.cpp
trunk/qcell/visgui/MainWindow.cpp
Modified: trunk/qcell/baseheaders/LocalFunction.h
===================================================================
--- trunk/qcell/baseheaders/LocalFunction.h 2007-01-08 17:11:50 UTC (rev 128)
+++ trunk/qcell/baseheaders/LocalFunction.h 2007-01-08 22:33:11 UTC (rev 129)
@@ -6,6 +6,7 @@
#include <QDomDocument>
#include <QDomElement>
#include <QDomText>
+#include <QDomNode>
#include <QStringList>
#include <math.h>
@@ -47,7 +48,14 @@
void valueTableFromString(QString *string);
void sumArgumentsFromString(QString *string);
+ QVector<int> valueTranslation(int value);
+ QString valueFormTableToString(int index);
+
+ void setSumsFromString(QString sums);
+ void setValuesFromString(QString values);
+ void getArgumentsFromString(QString argString, QVector<int> &sums, QVector<int> &freeArgs);
+
public:
LocalFunction();
@@ -83,6 +91,7 @@
bool setFunctionValue(int value, int sum);
bool setFunctionValue(int value, QVector<int> args);
bool setFunctionValue(int value, int sum, QVector<int> freeArgs);
+ bool setFunctionValue(int value, int sum, int freeArgsValue);
bool setFunctionValue(int value, QVector<int> sums, QVector<int> freeArgs);
int resolve(QVector<int> arg);
Modified: trunk/qcell/basesources/LocalFunction.cpp
===================================================================
--- trunk/qcell/basesources/LocalFunction.cpp 2007-01-08 17:11:50 UTC (rev 128)
+++ trunk/qcell/basesources/LocalFunction.cpp 2007-01-08 22:33:11 UTC (rev 129)
@@ -132,7 +132,130 @@
/// @todo
}
+QVector<int> LocalFunction::valueTranslation(int value)
+{
+ int count=0;
+ int mod;
+ QVector<int> output;
+ count = sumArguments.size() + freeArguments.size();
+ output.resize(count);
+ count--;
+ for(int i=0;i<freeArguments.size();++i)
+ output[count--] = getAlphabetSize();
+
+ for(int i=0;i<sumArguments.size();++i)
+ output[count--] = sumArguments[i].size() * getAlphabetSize();
+ for(int i=sumArguments.size() + freeArguments.size() - 1;i>=0;--i)
+ {
+ if(value>-1)
+ {
+ if(value<output[i])
+ {
+ output[i] = value;
+ value = -1;
+ }
+ else
+ {
+ mod = value % output[i];
+ value /= output[i];
+ output[i] = mod;
+ }
+ }
+ else
+ {
+ output[i] = 0;
+ }
+ }
+ return output;
+}
+
+QString LocalFunction::valueFormTableToString(int index)
+{
+ int split = sumArguments.size() - 1;
+ QVector<int> temp = valueTranslation(index);
+ QString out;
+ for(int i=0;i<temp.size();++i)
+ {
+ out += QString("%1").arg(temp[i]);
+ if(i==split)
+ out += "+";
+ else
+ if(i!=temp.size()-1)
+ out += ",";
+ }
+ out += QString("=%1;").arg(valueTable[index]);
+ return out;
+}
+
+void LocalFunction::setSumsFromString(QString sums)
+{
+ QVector<int> sumVector;
+ QStringList elements;
+ sums.remove('\n');
+ sums.remove(' ');
+ QStringList list = sums.split(';', QString::SkipEmptyParts);
+ for(int i=0;i<list.size();++i)
+ {
+ sumVector.clear();
+ elements = list[i].split(',', QString::SkipEmptyParts);
+ for(int j=0;j<elements.size();++j)
+ {
+ sumVector.append((elements[j]).toInt());
+ }
+ if(!sumVector.isEmpty())
+ {
+ if(i==0)
+ setSumArguments(sumVector);
+ else
+ addSumArguments(sumVector);
+ }
+ }
+}
+
+
+
+void LocalFunction::setValuesFromString(QString values)
+{
+ QStringList valuesList, splitValues;
+ QVector<int> sumVector, argVector;
+ sumVector.resize(sumArguments.size());
+ argVector.resize(freeArguments.size());
+
+ values.remove('\n');
+ values.remove(' ');
+
+ valuesList = values.split(';', QString::SkipEmptyParts);
+ for(int i=0;i<valuesList.size();++i)
+ {
+ splitValues = valuesList[i].split('=', QString::SkipEmptyParts);
+ if(splitValues.size()==2)
+ {
+ getArgumentsFromString(splitValues[0], sumVector, argVector);
+ setFunctionValue(splitValues[1].toInt(), sumVector, argVector);
+ }
+ }
+}
+
+void LocalFunction::getArgumentsFromString(QString argString, QVector<int> &sums, QVector<int> &freeArgs)
+{
+ QStringList mainSplit, argumentsSplit;
+
+ sums.clear();
+ freeArgs.clear();
+ mainSplit = argString.split('+', QString::SkipEmptyParts);
+ if(mainSplit.size()==2)
+ {
+ argumentsSplit = mainSplit[0].split(',', QString::SkipEmptyParts);
+ for(int i=0;i<argumentsSplit.size();++i)
+ sums.append((argumentsSplit[i]).toInt());
+
+ argumentsSplit = mainSplit[1].split(',', QString::SkipEmptyParts);
+ for(int i=0;i<argumentsSplit.size();++i)
+ freeArgs.append((argumentsSplit[i]).toInt());
+ }
+}
+
LocalFunction::LocalFunction()
{
functionMode = LocalFunction::SWITCH;
@@ -225,7 +348,7 @@
int LocalFunction::getNumberOfArgs()
{
- return maxArgVal;
+ return numArg;
}
int LocalFunction::getAlphabetSize()
@@ -335,6 +458,25 @@
return 1;
}
+bool LocalFunction::setFunctionValue(int value, int sum, int freeArgsValue)
+{
+ int index;
+ if(sumArguments.size()==0 || sumArguments.size()>1)
+ return 0;
+ if(valueTable.empty())
+ resizeValueTable();
+ switch(functionMode)
+ {
+ case LocalFunction::SUM_AND_SWITCH:
+ index = sum * pow(maxArgVal, freeArguments.size()) + freeArgsValue;
+ valueTable[index] = value;
+ break;
+ default:
+ return 0;
+ }
+ return 1;
+}
+
bool LocalFunction::setFunctionValue(int value, QVector<int> sums, QVector<int> freeArgs)
{
int index;
@@ -398,39 +540,94 @@
QString LocalFunction::toXmlString(void)
{
+ int mpv;
QDomDocument doc;
QDomElement root, element;
+ QDomText text;
+ QString temp;
+
root = doc.createElement("LocalFunction");
- root.setAttribute("function_type", functionMode);
- doc.appendChild(root);
-
- switch (functionMode)
+ root.setAttribute("ArgumentsNumber", getNumberOfArgs());
+ root.setAttribute("InputAlphabet", getAlphabetSize());
+ if(sumArguments.size()>0)
{
- case LocalFunction::SUM:
+ element = doc.createElement("Sums");
+ temp.clear();
+ for(int i=0;i<sumArguments.size();++i)
{
- /// @todo Implement function type SUM toXML
- break;
+ temp += QString("\n%1").arg((sumArguments[i])[0]);
+ for(int j=1;j<sumArguments[i].size();++j)
+ {
+ temp += QString(",%1").arg((sumArguments[i])[j]);
+ }
+ temp += ";\n";
}
- case LocalFunction::SUM_AND_SWITCH:
+ text = doc.createTextNode(temp);
+ element.appendChild(text);
+ root.appendChild(element);
+ }
+
+ element = doc.createElement("Values");
+ mpv = mostPopularValue();
+ element.setAttribute("FillValue", mpv);
+ temp = "\n";
+ for(int i=0;i<valueTable.size();++i)
+ {
+ if(valueTable[i] != mpv)
{
- break;
+ temp += valueFormTableToString(i);
+ temp += "\n";
}
- case LocalFunction::SWITCH:
- {
- /// @todo Implement SWITCH function mode toXML
- break;
- }
}
+
+ text = doc.createTextNode(temp);
+ element.appendChild(text);
+ root.appendChild(element);
+
+ doc.appendChild(root);
return doc.toString();
}
bool LocalFunction::fromXmlString(QString *xmlString)
{
- return 1;
+ QDomDocument doc;
+ doc.setContent(*xmlString);
+ return fromDomElement(&(doc.firstChildElement()));
}
bool LocalFunction::fromDomElement(QDomElement *xmlElement)
{
- return 1;
+ functionMode = LocalFunction::SWITCH;
+ valueTable.clear();
+ sumArguments.clear();
+ freeArguments.clear();
+ numArg = maxArgVal = numElements = 0;
+
+ QDomElement element;
+ QDomNode node;
+ QDomText text;
+ if(xmlElement->tagName()=="LocalFunction")
+ {
+ init(xmlElement->attribute("ArgumentsNumber").toInt(), xmlElement->attribute("InputAlphabet").toInt(), 666);
+ node = xmlElement->firstChild();
+ while(!node.isNull())
+ {
+ element = node.toElement();
+ if(element.tagName()=="Sums")
+ setSumsFromString(element.text());
+
+ if(element.tagName()=="Values")
+ {
+ if(element.hasAttribute("FillValue"))
+ {
+ setDefaultValue(element.attribute("FillValue").toInt());
+ setValuesFromString(element.text());
+ }
+ }
+ node = node.nextSibling();
+ }
+ return 1;
+ }
+ return 0;
}
Modified: trunk/qcell/parsers/FQT/FQTParserPlugin.cpp
===================================================================
--- trunk/qcell/parsers/FQT/FQTParserPlugin.cpp 2007-01-08 17:11:50 UTC (rev 128)
+++ trunk/qcell/parsers/FQT/FQTParserPlugin.cpp 2007-01-08 22:33:11 UTC (rev 129)
@@ -237,7 +237,7 @@
QVector<QVector<int> > permutations;
// setting the type of function
- lf.setFunctonType(LocalFunction::SUM);
+ //lf.setFunctonType(LocalFunction::SUM);
// setting the number of arguments the function will take
// and the alphabet size
lf.init(arguments_nr, values_nr, return_values_nr);
@@ -246,11 +246,16 @@
lf.setSumArguments(arguments);
/// @todo How the fuck set FQT function parameters eh?
- foreach(int sum, results.keys())
- {
-
- }
+ switch(lf.getFunctonType())
+ {
+ case LocalFunction::SUM_AND_SWITCH:
+ foreach(int sum, results.keys())
+ {
+ for(int i=0;i<results.value(sum).size();++i)
+ lf.setFunctionValue((results.value(sum))[i], sum, i);
+ }
+ }
return lf.toXmlString();
}
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-08 17:11:50 UTC (rev 128)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-08 22:33:11 UTC (rev 129)
@@ -11,11 +11,12 @@
MainWindow::MainWindow(QWidget* parent)
{
// GUI setup - earlies possible to show the user, that we're in buisness
- setupUi(this);
+ setupUi(this);
+
sw = new simulationWindow(this);
QLayoutItem* tmp = centralWidget()->layout()->takeAt(0);
centralWidget()->layout()->addWidget(sw);
- centralWidget()->layout()->addItem(tmp);
+ centralWidget()->layout()->addItem(tmp);
// Plugin parsing
/// @todo get that code out of here!
ParserInterface* iParser;
@@ -64,7 +65,6 @@
}
}
}
-
/// @todo This function doesn't belong here. It initializes things not fore GUI
setupEngine();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|