8 #ifndef __VRV_TIME_INTERFACE_H__
9 #define __VRV_TIME_INTERFACE_H__
11 #include "atts_shared.h"
12 #include "interface.h"
20 class PrepareStaffCurrentTimeSpanningFunctor;
21 class PrepareTimePointingFunctor;
22 class PrepareTimeSpanningFunctor;
23 class PrepareTimestampsFunctor;
24 class ResetDataFunctor;
39 public AttTimestampLog {
49 InterfaceId
IsInterface()
const override {
return INTERFACE_TIME_POINT; }
59 const LayerElement *GetStart()
const {
return m_start; }
132 std::string m_startID;
155 InterfaceId
IsInterface()
const override {
return INTERFACE_TIME_SPANNING; }
165 const LayerElement *GetEnd()
const {
return m_end; }
171 bool SetStartAndEnd(LayerElement *element);
176 bool HasStartAndEnd()
const {
return (m_start && m_end); }
211 StaffAlignment *alignment, curvature_CURVEDIR curveDir,
bool &skipAbove,
bool &skipBelow);
225 FunctorCode InterfacePrepareStaffCurrentTimeSpanning(
This is a base class for regrouping MEI att classes.
Definition: interface.h:32
This class is a base class for the Layer (<layer>) content.
Definition: layerelement.h:51
This class represents a measure in a page-based score (Doc).
Definition: measure.h:46
This class represents a basic object.
Definition: object.h:61
This class goes through all the TimeSpanningInterface elements and sets them for each staff that is c...
Definition: preparedatafunctor.h:978
This class matches the start for TimePointingInterface elements (such as fermata or harm).
Definition: preparedatafunctor.h:414
This class matches start and end for TimeSpanningInterface elements (such as tie or slur).
Definition: preparedatafunctor.h:466
This class matches start and end for TimeSpanningInterface elements with tstamp(2) attributes.
Definition: preparedatafunctor.h:524
This class resets the drawing values before calling PrepareData after changes.
Definition: resetfunctor.h:22
This class stores an alignement position staves will point to.
Definition: verticalaligner.h:172
This class is an interface for elements having a single time point, such as tempo,...
Definition: timeinterface.h:39
FunctorCode InterfacePrepareTimePointing(PrepareTimePointingFunctor &functor, Object *object)
We have functor code in the interface for avoiding code duplication in each implementation class.
bool HasStart() const
Return true if a start is given (@startid or @tstamp)
Definition: timeinterface.h:75
InterfaceId IsInterface() const override
Virtual method returning the InterfaceId of the interface.
Definition: timeinterface.h:49
bool SetStartOnly(LayerElement *start)
Set first LayerElement by verifying it is the correct one.
Measure * GetStartMeasure()
Return the start measure of the TimePointInterface.
void AddStaff(int n)
Add a staff n to the AttStaffident vector (if not already there)
void SetIDStr()
Extract the fragment of the start or end @xml:id if given.
void Reset() override
Virtual reset method.
bool VerifyMeasure(const Object *owner) const
Return true if the interface owner is encoded in the measure of its start element Display a warning i...
std::vector< const Staff * > GetTstampStaves(const Measure *measure, const Object *object) const
Return a vector of staves looking at the @staff attribute or at the parent staff of the @startid.
bool IsOnStaff(int n) const
Return true if the TimePointInterface occurs on the staff Looks that the parent staff if the using @...
This class is an interface for spanning elements, such as slur, hairpin, etc.
Definition: timeinterface.h:145
bool IsOrdered() const
Check if the end points are temporally ordered @Return true if end temporally occurs after start.
FunctorCode InterfacePrepareTimeSpanning(PrepareTimeSpanningFunctor &functor, Object *object)
We have functor code in the interface for avoiding code duplication in each implementation class.
bool IsSpanningMeasures() const
Return true if the element is spanning over two or more measures.
InterfaceId IsInterface() const override
Virtual method returning the InterfaceId of the interface.
Definition: timeinterface.h:155
void GetCrossStaffOverflows(StaffAlignment *alignment, curvature_CURVEDIR curveDir, bool &skipAbove, bool &skipBelow)
Check if the slur or tie needs to be taken into account as overflow above or below in case of cross-s...
void Reset() override
Virtual reset method.
Measure * GetEndMeasure()
Return the end measure of the TimePointInterface.