Updated xwater

This commit is contained in:
njohnson 2025-09-07 23:16:15 -04:00
parent a1a54665d9
commit 2f044a8d94
2 changed files with 55 additions and 19 deletions

View File

@ -3,19 +3,19 @@
XWater::XWater() XWater::XWater()
: XAsset() : XAsset()
, mWritable() , mWritable()
, mH0X(0) , mH0X()
, mH0Y(0) , mH0Y()
, mWTerm(0) , mWTerm()
, mM(0) , mM(0)
, mN(0) , mN(0)
, mLx(0) , mLx(0)
, mLz(0) , mLz(0)
, mGravity(0) , mGravity(0)
, mWindvel(0) , mWindVel(0)
, mWinddir({ 0, 0 }) , mWindDir(1)
, mAmplitude(0) , mAmplitude(0)
, mCodeConstant({ 0, 0, 0, 0 }) , mCodeConstant(4)
, mImage(new XGfxImage()) , mImage()
{ {
} }
@ -27,12 +27,48 @@ XWater::~XWater()
void XWater::ParseData(QDataStream *aStream) void XWater::ParseData(QDataStream *aStream)
{ {
mWritable.ParseData(aStream);
qint32 h0xPtr, h0yPtr, wTermPtr;
*aStream
>> h0xPtr
>> h0yPtr
>> wTermPtr
>> mM
>> mN
>> mLx
>> mLz
>> mGravity
>> mWindVel
>> mWindDir[0]
>> mWindDir[1]
>> mAmplitude
>> mWindDir[0]
>> mWindDir[1]
>> mWindDir[2]
>> mWindDir[3];
mImage.ParsePtr(aStream, false);
if (h0xPtr)
{
aStream->readRawData(mH0X.data(), 4 * mM * mN);
}
if (h0yPtr)
{
aStream->readRawData(mH0X.data(), 4 * mM * mN);
}
if (wTermPtr)
{
aStream->readRawData(mWTerm.data(), 4 * mM * mN);
}
mImage.ParseData(aStream);
} }
void XWater::Clear() void XWater::Clear()
{ {
mWritable = XWaterWritable(); mWritable.Clear();
mH0X = 0; mH0X = 0;
mH0Y = 0; mH0Y = 0;
mWTerm = 0; mWTerm = 0;
@ -41,9 +77,9 @@ void XWater::Clear()
mLx = 0; mLx = 0;
mLz = 0; mLz = 0;
mGravity = 0; mGravity = 0;
mWindvel = 0; mWindVel = 0;
mWinddir = { 0, 0 }; mWindDir.clear();
mAmplitude = 0; mAmplitude = 0;
mCodeConstant = { 0, 0, 0, 0 }; mCodeConstant.clear();
mImage = new XGfxImage(); mImage.Clear();
} }

View File

@ -18,19 +18,19 @@ public:
private: private:
XWaterWritable mWritable; XWaterWritable mWritable;
float *mH0X; QByteArray mH0X;
float *mH0Y; QByteArray mH0Y;
float *mWTerm; QByteArray mWTerm;
int mM; int mM;
int mN; int mN;
float mLx; float mLx;
float mLz; float mLz;
float mGravity; float mGravity;
float mWindvel; float mWindVel;
QVector<float> mWinddir; QVector<float> mWindDir;
float mAmplitude; float mAmplitude;
QVector<float> mCodeConstant; QVector<float> mCodeConstant;
XGfxImage *mImage; XGfxImage mImage;
}; };
#endif // XWATER_H #endif // XWATER_H