XPlor/libs/xassets/xoperandinternaldataunion.cpp

44 lines
995 B
C++

#include "xoperandinternaldataunion.h"
XOperandInternalDataUnion::XOperandInternalDataUnion()
: XAsset()
, mIntVal(0)
, mFloatVal(0.0f)
, mString()
{
SetName("Operand Internal Data Union");
}
XOperandInternalDataUnion::~XOperandInternalDataUnion()
{
}
void XOperandInternalDataUnion::ParseData(XDataStream *aStream)
{
aStream->ParseSingle(QString("%1 center of mass x").arg(GetName()));
}
void XOperandInternalDataUnion::ParseData(XDataStream *aStream, XExpDataType aDataType)
{
if (aDataType == VAL_INT)
{
mIntVal = aStream->ParseInt32(QString("%1 int val").arg(GetName()));
}
else if (aDataType == VAL_FLOAT)
{
mFloatVal = aStream->ParseSingle(QString("%1 float val").arg(GetName()));
}
else if (aDataType == VAL_STRING)
{
mString.ParseData(aStream);
}
}
void XOperandInternalDataUnion::Clear()
{
mIntVal = 0;
mFloatVal = 0;
mString.Clear();
}