Refactor ParseData to handle data parsing.

This commit is contained in:
njohnson 2025-09-10 21:56:59 -04:00
parent 37c81d78ce
commit 348bf2a299

View File

@ -12,7 +12,7 @@ XCBrush::XCBrush()
, mFirstAdjacentSideOffsets() , mFirstAdjacentSideOffsets()
, mEdgeCount() , mEdgeCount()
{ {
SetName("C Brush");
} }
XCBrush::~XCBrush() XCBrush::~XCBrush()
@ -20,45 +20,50 @@ XCBrush::~XCBrush()
} }
void XCBrush::ParseData(QDataStream *aStream) void XCBrush::ParseData(XDataStream *aStream)
{ {
if (GetPtr() == -1) if (GetPtr() == -1)
{ {
qint32 sidesPtr, baseAdjacentSidePtr;
*aStream
>> mMins[0]
>> mMins[1]
>> mMins[2]
>> mContents
>> mMaxs[0]
>> mMaxs[1]
>> mMaxs[2]
>> mNumsides
>> sidesPtr;
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
*aStream mMins[i] = aStream->ParseSingle(QString("%1 min %2").arg(GetName()).arg(i));
>> mAxialMaterialNum[i][0]
>> mAxialMaterialNum[i][1]
>> mAxialMaterialNum[i][2];
} }
*aStream >> baseAdjacentSidePtr; mContents = aStream->ParseInt32(QString("%1 contents").arg(GetName()));
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
*aStream mMaxs[i] = aStream->ParseSingle(QString("%1 max %2").arg(GetName()).arg(i));
>> mFirstAdjacentSideOffsets[i][0] }
>> mFirstAdjacentSideOffsets[i][1]
>> mFirstAdjacentSideOffsets[i][2]; // TODO: Implement baseAdjacentSidePtr
qint32 sidesPtr;//, baseAdjacentSidePtr;
mNumsides = aStream->ParseInt32(QString("%1 # sides").arg(GetName()));
sidesPtr = aStream->ParseInt32(QString("%1 sides ptr").arg(GetName()));
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
mAxialMaterialNum[i][j] = aStream->ParseSingle(QString("%1 axial material num (%2, %3)").arg(GetName()).arg(i).arg(j));
}
}
mBaseAdjacentSide = aStream->ParseInt32(QString("%1 base adjacent side ptr").arg(GetName()));
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
mFirstAdjacentSideOffsets[i][j] = aStream->ParseSingle(QString("%1 first adjacent side offset (%2, %3)").arg(GetName()).arg(i).arg(j));
}
} }
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
*aStream for (int j = 0; j < 3; j++)
>> mEdgeCount[i][0] {
>> mEdgeCount[i][1] mEdgeCount[i][j] = aStream->ParseSingle(QString("%1 edge count (%2, %3)").arg(GetName()).arg(i).arg(j));
>> mEdgeCount[i][2]; }
} }
aStream->skipRawData(10); aStream->skipRawData(10);
@ -69,11 +74,12 @@ void XCBrush::ParseData(QDataStream *aStream)
newSize.ParseData(aStream); newSize.ParseData(aStream);
} }
if (baseAdjacentSidePtr == -1) // TODO: Read in this ptr then parse
{ //if (baseAdjacentSidePtr == -1)
XCBrushSide newSize; //{
newSize.ParseData(aStream); // XCBrushSide newSize;
} // newSize.ParseData(aStream);
//}
} }
} }