23 , zoom{ pixelsPerSecond }
39 return hpos + (position - origin) /
zoom;
49 double t = 0.5 + zoom * (projectTime - hpos) + origin ;
62 return timeRange *
zoom;
79 return std::floor(0.5 +
hpos *
zoom + offset);
104 const int64 rightmost(origin + (0.5 + width));
105 assert(origin <= rightmost);
110 if (origin < rightmost)
111 results.push_back(
Interval(rightmost, 0,
false));
112 assert(!results.empty() && results[0].position == origin);
double GetAbsoluteOffset(double offset) const
double PositionToTime(int64 position, int64 origin=0, bool ignoreFisheye=false) const
bool ZoomInAvailable() const
double TimeRangeToPixelWidth(double timeRange) const
Intervals FindIntervals(int64 width, int64 origin=0) const
std::vector< Interval > Intervals
double zoom
pixels per second
int64 TimeToPosition(double time, int64 origin=0, bool ignoreFisheye=false) const
STM: Converts a project time to screen x position.
static double GetMaxZoom()
ZoomInfo(double start, double pixelsPerSecond)
bool ZoomOutAvailable() const
double hpos
Leftmost visible timeline position in seconds.
static double GetMinZoom()
void SetZoom(double pixelsPerSecond)
void ZoomBy(double multiplier)
static const double gMinZoom
static const double gMaxZoom