1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#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()
{
}