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()
, mEdgeCount()
{
SetName("C Brush");
}
XCBrush::~XCBrush()
@ -20,45 +20,50 @@ XCBrush::~XCBrush()
}
void XCBrush::ParseData(QDataStream *aStream)
void XCBrush::ParseData(XDataStream *aStream)
{
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++)
{
*aStream
>> mAxialMaterialNum[i][0]
>> mAxialMaterialNum[i][1]
>> mAxialMaterialNum[i][2];
mMins[i] = aStream->ParseSingle(QString("%1 min %2").arg(GetName()).arg(i));
}
*aStream >> baseAdjacentSidePtr;
mContents = aStream->ParseInt32(QString("%1 contents").arg(GetName()));
for (int i = 0; i < 3; i++)
{
*aStream
>> mFirstAdjacentSideOffsets[i][0]
>> mFirstAdjacentSideOffsets[i][1]
>> mFirstAdjacentSideOffsets[i][2];
mMaxs[i] = aStream->ParseSingle(QString("%1 max %2").arg(GetName()).arg(i));
}
// 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++)
{
*aStream
>> mEdgeCount[i][0]
>> mEdgeCount[i][1]
>> mEdgeCount[i][2];
for (int j = 0; j < 3; j++)
{
mEdgeCount[i][j] = aStream->ParseSingle(QString("%1 edge count (%2, %3)").arg(GetName()).arg(i).arg(j));
}
}
aStream->skipRawData(10);
@ -69,11 +74,12 @@ void XCBrush::ParseData(QDataStream *aStream)
newSize.ParseData(aStream);
}
if (baseAdjacentSidePtr == -1)
{
XCBrushSide newSize;
newSize.ParseData(aStream);
}
// TODO: Read in this ptr then parse
//if (baseAdjacentSidePtr == -1)
//{
// XCBrushSide newSize;
// newSize.ParseData(aStream);
//}
}
}