56 Mutation::~Mutation() { }
76 throw error::Logic (
"mutating the start point of a pure Duration doesn't make sense" 77 , LUMIERA_ERROR_INVALID_MUTATION);
133 throw error::Logic (
"mutating the duration of a (quantised) time point doesn't make sense" 134 , LUMIERA_ERROR_INVALID_MUTATION);
141 : changedDuration_(dur)
213 materialiseGridPoint (
PQuant const& grid,
int steps)
216 return Offset(grid->timeOf(0), grid->timeOf(steps));
267 : steps_(relativeSteps)
287 return EncapsulatedMutation::build<SetNewStartTimeMutation> (newStartTime);
298 return EncapsulatedMutation::build<SetNewDuration> (changedDur);
309 return EncapsulatedMutation::build<ImposeOffsetMutation> (change);
321 return EncapsulatedMutation::build<MaterialiseIntoTarget> (gridAlignedTime);
338 return EncapsulatedMutation::build<NaturalNudgeMutation> (adjustment);
364 return EncapsulatedMutation::build<NudgeMutation> (adjustment, grid);
Modifying time and timecode values.
static EncapsulatedMutation changeTime(Time)
Convenience factory to yield a simple Mutation changing the absolute start time.
concrete time value mutation: impose fixed new start time.
concrete time value mutation: make the grid aligned time value explicit, and impose the resulting val...
A variation for limited copy support.
static EncapsulatedMutation adjust(Offset)
Convenience factory: simple Mutation to adjust the duration or length of a timespan.
static TimeValue & imposeChange(TimeValue &, TimeValue const &)
virtual void change(QuTime &target) const
Implementation namespace for support and library code.
Lumiera's internal time value datatype.
Derived specific exceptions within Lumiera's exception hierarchy.
Timecode handling library This header defines the foundation interface TCode to represent a grid alig...
static EncapsulatedMutation materialise(QuTime const &)
Convenience factory: materialise the given quantised time into an explicit fixed internal time value...
Template to build polymorphic value objects.
virtual void change(QuTime &) const
virtual void change(QuTime &target) const
Utilities for quantisation (grid alignment) and comparisons.
concrete time value mutation: adjust the given time entity by an offset amount.
concrete time value mutation: set a new overall duration for an extended timespan.
Lumiera error handling (C++ interface).
Support library to represent grid-aligned time specifications This is part of Lumiera's time and time...
virtual void change(QuTime &target) const
Offset measures a distance in time.
static EncapsulatedMutation nudge(int adjustment)
build a time mutation to nudge the target time value by an offset, defined as number of steps on an i...
Duration is the internal Lumiera time metric.
static EncapsulatedMutation changeDuration(Duration)
Convenience factory: simple Mutation to adjust the duration or length of a timespan.
concrete time value mutation: nudge based on a implicit grid, which is either a quantised target valu...
A time interval anchored at a specific point in time.
a family of time value like entities and their relationships.
concrete time value mutation: nudge target value by the given number of 'steps', relative to the give...
basic constant internal time value.
grid aligned time specification, referring to a specific scale.
#define LUMIERA_ERROR_DEFINE(err, msg)
Definition and initialisation of an error constant.