mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-01 13:56:06 -04:00
Misc intermediate fixes, more work on these to follow.
--Bug fixes: -Fix crash when using smooth interpolation in EmberGenome. -Print error and exit EmberGenome when sequencing if times are not sorted. --Code changes: -Another attempt at Singleton. This reverts the design to what it was before with a fix to the code that was causing it not to behave like a singleton should.
This commit is contained in:
@ -339,7 +339,7 @@ bool EmberGenome(EmberOptions& opt)
|
||||
{
|
||||
if (i > 0 && embers[i].m_Time <= embers[i - 1].m_Time)
|
||||
{
|
||||
cerr << "Error: control points must be sorted by time, but " << embers[i].m_Time << " <= " << embers[i - 1].m_Time << ", index " << i << ".\n";
|
||||
cerr << "Error: control points must be sorted by time, but time " << embers[i].m_Time << " <= " << embers[i - 1].m_Time << ", index " << i << ".\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -405,6 +405,15 @@ bool EmberGenome(EmberOptions& opt)
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i = 0; i < embers.size(); i++)
|
||||
{
|
||||
if (i > 0 && embers[i].m_Time <= embers[i - 1].m_Time)
|
||||
{
|
||||
cerr << "Error: control points must be sorted by time, but time " << embers[i].m_Time << " <= " << embers[i - 1].m_Time << ", index " << i << ".\n";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (opt.Enclosed())
|
||||
cout << "<sequence version=\"EMBER-" << EmberVersion() << "\">\n";
|
||||
|
||||
@ -529,8 +538,8 @@ bool EmberGenome(EmberOptions& opt)
|
||||
oldY = embers[i].m_CenterY;
|
||||
embers[i].m_FinalRasH = size_t(T(embers[i].m_FinalRasH) / T(opt.Frames()));
|
||||
embers[i].m_CenterY = embers[i].m_CenterY - ((opt.Frames() - 1) * embers[i].m_FinalRasH) /
|
||||
(2 * embers[i].m_PixelsPerUnit * pow(T(2.0), embers[i].m_Zoom));
|
||||
embers[i].m_CenterY += embers[i].m_FinalRasH * opt.Frame() / (embers[i].m_PixelsPerUnit * pow(T(2.0), embers[i].m_Zoom));
|
||||
(2 * embers[i].m_PixelsPerUnit * std::pow(T(2.0), embers[i].m_Zoom));
|
||||
embers[i].m_CenterY += embers[i].m_FinalRasH * opt.Frame() / (embers[i].m_PixelsPerUnit * std::pow(T(2.0), embers[i].m_Zoom));
|
||||
tools.RotateOldCenterBy(embers[i].m_CenterX, embers[i].m_CenterY, oldX, oldY, embers[i].m_Rotate);
|
||||
|
||||
if (pTemplate)
|
||||
|
Reference in New Issue
Block a user