Lumiera  0.pre.03
»edit your freedom«
Grid Class Referenceabstract

#include "lib/time/grid.hpp"

Description

Abstraction of a value alignment grid.

Such a grid has an underlying scale (origin and measurement) and is comprised of consecutive grid intervals, joined at the grid points. These can be addressed by an ordering number, centred at origin with grid point number zero. The classical example is a 25fps time frame grid, but in fact the length of the intervals is not necessarily constant. An entity defining such a grid provides functions to calculate the grid coordinates and to convert back to plain values. This includes a way of rounding to the next lower grid point, usable for grid aligning values.

usage
First off, there is the lib::time::Quantiser, which directly implements this interface and plays a central role when it comes to converting continuous time into any kind of frame based timecode. Besides that, the session stores asset::TimeGrid definitions, which can be used to create a Quantiser suitable for some specific output bus or rendering target format.
Todo:

WIP-WIP-WIP

maybe abstract this from Time altogether?

Definition at line 67 of file grid.hpp.

Public Member Functions

virtual ~Grid ()
 this is an Interface
 
virtual TimeValue gridLocal (TimeValue const &raw) const =0
 
virtual FrameCnt gridPoint (TimeValue const &raw) const =0
 
virtual TimeValue timeOf (FrameCnt gridPoint) const =0
 
virtual TimeValue timeOf (FSecs gridTime, int=0) const =0
 
+ Inheritance diagram for Grid:
+ Collaboration diagram for Grid:

The documentation for this class was generated from the following files: