Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
Executable
+84
@@ -0,0 +1,84 @@
|
||||
#include "tools.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
||||
namespace LtsScriptTimeline
|
||||
{
|
||||
//int Tools::m_timelineLength = 5*60; // minimum len
|
||||
//float Tools::m_zoomFactor = 1;
|
||||
//int Tools::m_scrollPos = 0;
|
||||
//int Tools::m_paintWidth = 1; // rescue from possible 0-div
|
||||
|
||||
|
||||
int Tools::getLength(int startTime, int duration)
|
||||
{
|
||||
return /*std::abs*/ (getPos(startTime + duration) - getPos(startTime));
|
||||
}
|
||||
|
||||
|
||||
int Tools::getDuration(int duration) // px => time
|
||||
{
|
||||
double max = Tools::m_timelineLength;
|
||||
max /= Tools::m_zoomFactor;
|
||||
|
||||
int paintWidth = m_paintWidth; // => 350px
|
||||
|
||||
double x = duration; // => 466
|
||||
x /= paintWidth; // => 466 / 350px = 1,33
|
||||
x *= max; // => 1,33 * 300 = 400
|
||||
|
||||
return lrint(x);
|
||||
}
|
||||
|
||||
|
||||
int Tools::getTime(int pos, bool neutral) // px => time
|
||||
{
|
||||
double visibleMax = Tools::m_timelineLength;
|
||||
visibleMax /= Tools::m_zoomFactor;
|
||||
|
||||
if (!neutral)
|
||||
visibleMax += Tools::m_scrollPos;
|
||||
|
||||
int visibleMin = 0;
|
||||
|
||||
if (!neutral)
|
||||
visibleMin = Tools::m_scrollPos;
|
||||
|
||||
double diff = visibleMax - visibleMin; // => 500 - 200 = 300
|
||||
int paintWidth = m_paintWidth; // => 350px
|
||||
|
||||
double x = pos; // => 466
|
||||
x /= paintWidth; // => 466 / 350px = 1,33
|
||||
x *= diff; // => 1,33 * 300 = 400
|
||||
x += visibleMin; // => 400 + 0
|
||||
|
||||
return lrint(x);
|
||||
}
|
||||
|
||||
|
||||
int Tools::getPos(int time, bool neutral) // time => px
|
||||
{
|
||||
double visibleMax = Tools::m_timelineLength;
|
||||
visibleMax /= Tools::m_zoomFactor;
|
||||
|
||||
if (!neutral)
|
||||
visibleMax += Tools::m_scrollPos;
|
||||
|
||||
int visibleMin = 0;
|
||||
|
||||
if (!neutral)
|
||||
visibleMin = Tools::m_scrollPos;
|
||||
|
||||
double diff = visibleMax - visibleMin; // => 500 - 200 = 300
|
||||
int paintWidth = m_paintWidth; // => 350px
|
||||
|
||||
double x = time; // => 400
|
||||
x -= visibleMin; // => 400 - 0 = 400
|
||||
x /= diff; // => 400 / 300 = 1,333
|
||||
x *= paintWidth; // => 1,333 * 350px = 466,666
|
||||
|
||||
return lrint(x);
|
||||
}
|
||||
|
||||
} // namespace LtsScriptTimeline
|
||||
Reference in new issue
Block a user