#include "fsCFadeTransformation.h"
fsSColour fsCFadeTransformation::colourGet(fsS32 pTime) const
{
return mTransformation->valueGet(pTime);
}
fsS32 fsCFadeTransformation::periodGet() const
{
return mTransformation->periodGet();
}
void fsCFadeTransformation::simpleTransformSet(fsSColour pStart, fsSColour pEnd, fsS32 pDuration)
{
mTransformation.release();<--- Return value of function mTransformation.release() is not used.
mTransformation = std::make_unique<fsCGraph<fsSColour>>(pStart);
mTransformation->dataAdd(pDuration, pEnd);
}
fsCFadeTransformation::fsCFadeTransformation():
mTransformation(nullptr)
{
}
fsCFadeTransformation::fsCFadeTransformation(fsStr& pFileData):
mTransformation(nullptr)
{
fsStr r = pFileData.chomp(",");
r.trailingWhitespaceTrim();
fsStr g = pFileData.chomp(",");
g.trailingWhitespaceTrim();
fsStr b = pFileData.chomp(",");
b.trailingWhitespaceTrim();
fsStr a = pFileData.chomp(",");
a.trailingWhitespaceTrim();
mTransformation = std::make_unique<fsCGraph<fsSColour>>(fsSColour(r.toF32(), g.toF32(), b.toF32(), a.toF32()));
pFileData.leadingWhitespaceTrim();
fsStr transformationVals = pFileData.chomp(";") + ",";
while (!transformationVals.emptyGet())
{
r = transformationVals.chomp(",");
r.trailingWhitespaceTrim();
g = transformationVals.chomp(",");
g.trailingWhitespaceTrim();
b = transformationVals.chomp(",");
b.trailingWhitespaceTrim();
a = transformationVals.chomp(",");
a.trailingWhitespaceTrim();
transformationVals.leadingWhitespaceTrim();
fsS32 duration = s32Get(transformationVals);
transformationVals.chomp(",");
transformationVals.leadingWhitespaceTrim();
mTransformation->dataAdd(duration, fsSColour(r.toF32(), g.toF32(), b.toF32(), a.toF32()));
}
}
fsCFadeTransformation::~fsCFadeTransformation()
{
}