8 #ifndef __VRV_PREPAREDATAFUNCTOR_H__
9 #define __VRV_PREPAREDATAFUNCTOR_H__
16 class SystemMilestoneInterface;
45 FunctorCode VisitAccid(
Accid *accid)
override;
46 FunctorCode VisitDiv(
Div *div)
override;
47 FunctorCode VisitChord(
Chord *chord)
override;
48 FunctorCode VisitFloatingObject(
FloatingObject *floatingObject)
override;
49 FunctorCode VisitKeySig(
KeySig *keySig)
override;
50 FunctorCode VisitRepeatMark(
RepeatMark *repeatMark)
override;
51 FunctorCode VisitScore(
Score *score)
override;
52 FunctorCode VisitTextLayoutElement(
TextLayoutElement *textLayoutElement)
override;
91 FunctorCode VisitLayerElement(
LayerElement *layerElement)
override;
130 FunctorCode VisitLayerElement(
LayerElement *layerElement)
override;
131 FunctorCode VisitLayerElementEnd(
LayerElement *layerElement)
override;
132 FunctorCode VisitMeasure(
Measure *measure)
override;
145 Staff *m_currentCrossStaff;
147 Layer *m_currentCrossLayer;
175 SymbolTable *GetSymbolTable()
const {
return m_symbolTable; }
181 FunctorCode VisitObject(Object *
object)
override;
192 SymbolTable *m_symbolTable;
220 const ListOfObjects &GetZonelessSyls()
const {
return m_zonelessSyls; }
225 Facsimile *GetFacsimile()
const {
return m_facsimile; }
231 FunctorCode VisitObject(Object *
object)
override;
242 Facsimile *m_facsimile;
244 ListOfObjects m_zonelessSyls;
273 const MapOfLinkingInterfaceIDPairs &GetNextIDPairs()
const {
return m_nextIDPairs; }
274 const MapOfLinkingInterfaceIDPairs &GetSameasIDPairs()
const {
return m_sameasIDPairs; }
275 const MapOfNoteIDPairs &GetStemSameasIDPairs()
const {
return m_stemSameasIDPairs; }
282 void InsertNextIDPair(
const std::string &nextID, LinkingInterface *interface);
283 void InsertSameasIDPair(
const std::string &sameasID, LinkingInterface *interface);
290 FunctorCode VisitObject(Object *
object)
override;
302 void ResolveStemSameas(Note *note);
308 MapOfLinkingInterfaceIDPairs m_nextIDPairs;
310 MapOfLinkingInterfaceIDPairs m_sameasIDPairs;
312 MapOfNoteIDPairs m_stemSameasIDPairs;
341 const ArrayOfPlistObjectIDPairs &GetInterfaceIDPairs()
const {
return m_plistObjectIDPairs; }
342 void InsertInterfaceObjectIDPair(Object *objectWithPlist,
const std::string &elementID);
349 FunctorCode VisitObject(Object *
object)
override;
360 ArrayOfPlistObjectIDPairs m_plistObjectIDPairs;
389 FunctorCode VisitLayerElement(
LayerElement *layerElement)
override;
390 FunctorCode VisitScore(
Score *score)
override;
391 FunctorCode VisitScoreDef(
ScoreDef *scoreDef)
override;
392 FunctorCode VisitStaffDef(
StaffDef *staffDef)
override;
403 data_DURATION m_durDefault;
405 std::map<int, data_DURATION> m_durDefaultForStaffN;
441 FunctorCode VisitF(
F *f)
override;
442 FunctorCode VisitFloatingObject(
FloatingObject *floatingObject)
override;
443 FunctorCode VisitLayerElement(
LayerElement *layerElement)
override;
444 FunctorCode VisitMeasureEnd(
Measure *measure)
override;
455 ListOfPointingInterClassIdPairs m_timePointingInterfaces;
486 const ListOfSpanningInterOwnerPairs &GetInterfaceOwnerPairs()
const {
return m_timeSpanningInterfaces; }
487 void InsertInterfaceOwnerPair(Object *owner, TimeSpanningInterface *interface);
494 FunctorCode VisitF(F *f)
override;
495 FunctorCode VisitFloatingObject(FloatingObject *floatingObject)
override;
496 FunctorCode VisitLayerElement(LayerElement *layerElement)
override;
497 FunctorCode VisitMeasure(Measure *measure)
override;
498 FunctorCode VisitMeasureEnd(Measure *measure)
override;
505 FunctorCode CallPseudoFunctor(Object *timeSpanningObject);
511 ListOfSpanningInterOwnerPairs m_timeSpanningInterfaces;
513 bool m_insideMeasure;
544 const ListOfSpanningInterClassIdPairs &GetInterfaceIDPairs()
const {
return m_timeSpanningInterfaces; }
545 void InsertInterfaceIDPair(ClassId classID, TimeSpanningInterface *interface);
546 void InsertObjectBeatPair(Object *
object,
const data_MEASUREBEAT &beat);
553 FunctorCode VisitDocEnd(Doc *doc)
override;
554 FunctorCode VisitF(F *f)
override;
555 FunctorCode VisitFloatingObject(FloatingObject *floatingObject)
override;
556 FunctorCode VisitMeasureEnd(Measure *measure)
override;
567 ListOfSpanningInterClassIdPairs m_timeSpanningInterfaces;
569 ListOfObjectBeatPairs m_tstamps;
598 FunctorCode VisitMeasureEnd(
Measure *measure)
override;
599 FunctorCode VisitPedal(
Pedal *pedal)
override;
610 std::list<Pedal *> m_pedalLines;
640 FunctorCode VisitDot(
Dot *dot)
override;
641 FunctorCode VisitLayerElement(
LayerElement *layerElement)
override;
642 FunctorCode VisitMeasureEnd(
Measure *measure)
override;
686 FunctorCode VisitChord(
Chord *chord)
override;
687 FunctorCode VisitDocEnd(
Doc *doc)
override;
688 FunctorCode VisitNote(
Note *note)
override;
689 FunctorCode VisitSyl(
Syl *syl)
override;
733 FunctorCode VisitChord(
Chord *chord)
override;
734 FunctorCode VisitNote(
Note *note)
override;
735 FunctorCode VisitRest(
Rest *rest)
override;
736 FunctorCode VisitTabDurSym(
TabDurSym *tabDurSym)
override;
737 FunctorCode VisitTuplet(
Tuplet *tuplet)
override;
746 Dots *ProcessDots(
Dots *dots,
Object *parent,
bool shouldExist)
const;
748 Flag *ProcessFlag(
Flag *flag,
Object *parent,
bool shouldExist)
const;
783 FunctorCode VisitLayer(
Layer *layer)
override;
784 FunctorCode VisitMRpt(
MRpt *mRpt)
override;
785 FunctorCode VisitStaff(
Staff *staff)
override;
798 data_BOOLEAN m_multiNumber;
827 const std::map<LayerElement *, Turn *> &GetDelayedTurns()
const {
return m_delayedTurns; }
838 FunctorCode VisitLayerElement(LayerElement *layerElement)
override;
839 FunctorCode VisitTurn(Turn *turn)
override;
850 LayerElement *m_previousElement;
852 Chord *m_currentChord;
856 std::map<LayerElement *, Turn *> m_delayedTurns;
885 const std::vector<SystemMilestoneInterface *> &GetStartMilestones()
const {
return m_startMilestones; }
886 void InsertStartMilestone(SystemMilestoneInterface *interface);
893 FunctorCode VisitEditorialElement(EditorialElement *editorialElement)
override;
894 FunctorCode VisitEnding(Ending *ending)
override;
895 FunctorCode VisitMeasure(Measure *measure)
override;
896 FunctorCode VisitSection(Section *section)
override;
897 FunctorCode VisitSystemMilestone(SystemMilestoneEnd *systemMilestoneEnd)
override;
908 Measure *m_lastMeasure;
910 Ending *m_currentEnding;
912 std::vector<SystemMilestoneInterface *> m_startMilestones;
942 FunctorCode VisitDir(
Dir *dir)
override;
943 FunctorCode VisitDynam(
Dynam *dynam)
override;
944 FunctorCode VisitEnding(
Ending *ending)
override;
945 FunctorCode VisitHairpin(
Hairpin *hairpin)
override;
946 FunctorCode VisitHarm(
Harm *harm)
override;
947 FunctorCode VisitMeasure(
Measure *measure)
override;
948 FunctorCode VisitMeasureEnd(
Measure *measure)
override;
949 FunctorCode VisitPedal(
Pedal *pedal)
override;
963 std::vector<Dynam *> m_dynams;
965 std::vector<Hairpin *> m_hairpins;
967 std::map<std::string, Harm *> m_harms;
998 const ArrayOfObjects &GetTimeSpanningElements()
const {
return m_timeSpanningElements; }
999 void InsertTimeSpanningElement(Object *element);
1006 FunctorCode VisitF(F *f)
override;
1007 FunctorCode VisitFloatingObject(FloatingObject *floatingObject)
override;
1008 FunctorCode VisitMeasureEnd(Measure *measure)
override;
1009 FunctorCode VisitStaff(Staff *staff)
override;
1010 FunctorCode VisitSyl(Syl *syl)
override;
1021 ArrayOfObjects m_timeSpanningElements;
1050 FunctorCode VisitReh(
Reh *reh)
override;
1090 FunctorCode VisitBeamSpan(
BeamSpan *beamSpan)
override;
1098 ArrayOfObjects GetBeamSpanElementList(
BeamSpan *beamSpan,
Layer *layer,
const Staff *staff)
const;
This class models the MEI <accid> element.
Definition: accid.h:39
This class models the MEI <beamSpan> element.
Definition: beamspan.h:36
This class represents a collection of notes in the same layer with the same onset time.
Definition: chord.h:44
This class is a mixin for all functors that require two step processing: (1) Collecing data.
Definition: functor.h:220
This class models the MEI <dir> element.
Definition: dir.h:33
This class represents an MEI Div.
Definition: div.h:24
This abstract class is the base class for all mutable functors that need access to the document.
Definition: functor.h:151
This class is a hold the data and corresponds to the model of a MVC design pattern.
Definition: doc.h:41
This class models a group of dots as a layer element part and has no direct MEI equivalent.
Definition: elementpart.h:27
This class represents a MEI ending.
Definition: ending.h:33
This class models the MEI <f> element.
Definition: f.h:24
Implements the facsimile element in MEI.
Definition: facsimile.h:31
This class models a stem as a layer element part and has no direct MEI equivalent.
Definition: elementpart.h:97
This class represents elements appearing within a measure.
Definition: floatingobject.h:28
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class models the MEI <hairpin> element.
Definition: hairpin.h:31
This class models the MEI <harm> element.
Definition: harm.h:32
This class models the MEI <keySig> element.
Definition: keysig.h:52
This class is a base class for the Layer (<layer>) content.
Definition: layerelement.h:51
This class represents a layer in a laid-out score (Doc).
Definition: layer.h:39
This class models the MEI <mRpt> element.
Definition: mrpt.h:26
This class represents a measure in a page-based score (Doc).
Definition: measure.h:46
This class models the MEI <note> element.
Definition: note.h:67
This class represents a basic object.
Definition: object.h:62
This class models the MEI <pedal> element.
Definition: pedal.h:34
This class matches the @altsym element to the corresponding symbolDef.
Definition: preparedatafunctor.h:157
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:170
This class gets the list of referenced elements for the BeamSpan and marks referenced objects as cont...
Definition: preparedatafunctor.h:1071
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:1084
This class sets the cross staff and cross layer pointers on layer elements.
Definition: preparedatafunctor.h:111
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:124
This class sets the drawing cue size for all layer elements.
Definition: preparedatafunctor.h:72
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:85
This class is responsible for one time member initialization at the very begin.
Definition: preparedatafunctor.h:26
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:39
This class sets Turn::m_drawingEndNote for delayed turns.
Definition: preparedatafunctor.h:809
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:822
This class extracts the default duration from scoredef/staffdef.
Definition: preparedatafunctor.h:370
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:383
This class associates layer elements with @facs to the appropriate zone.
Definition: preparedatafunctor.h:202
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:215
This class groups FloatingObjects by drawingGrpId.
Definition: preparedatafunctor.h:923
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:936
This class adds LayerElement parts (stem, flag, dots, etc).
Definition: preparedatafunctor.h:714
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:727
This class matches linking elements (e.g, @next).
Definition: preparedatafunctor.h:254
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:267
This class sets wordpos and connector ends.
Definition: preparedatafunctor.h:667
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:680
This class sets the Measure of Ending.
Definition: preparedatafunctor.h:866
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:879
This class matches down and up pedal lines.
Definition: preparedatafunctor.h:579
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:592
This class matches elements of @plist.
Definition: preparedatafunctor.h:322
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:335
This class processes by layer and sets drawing pointers.
Definition: preparedatafunctor.h:621
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:634
This class resolves the Reh time pointing position in case none is set.
Definition: preparedatafunctor.h:1031
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:1044
This class sets mRpt drawing numbers (if required).
Definition: preparedatafunctor.h:764
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:777
This class goes through all the TimeSpanningInterface elements and sets them for each staff that is c...
Definition: preparedatafunctor.h:979
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:992
This class matches the start for TimePointingInterface elements (such as fermata or harm).
Definition: preparedatafunctor.h:415
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:428
This class matches start and end for TimeSpanningInterface elements (such as tie or slur).
Definition: preparedatafunctor.h:467
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:480
This class matches start and end for TimeSpanningInterface elements with tstamp(2) attributes.
Definition: preparedatafunctor.h:525
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:538
This class models the MEI <reh> element.
Definition: reh.h:30
This class models the MEI <ornam> element.
Definition: repeatmark.h:32
This class models the MEI <rest> element.
Definition: rest.h:45
This class represents a MEI scoreDef.
Definition: scoredef.h:135
This class represent a <score> in MEI.
Definition: score.h:30
This class represents a MEI staffDef.
Definition: staffdef.h:37
This class represents a staff in a laid-out score (Doc).
Definition: staff.h:107
This class models a stem as a layer element part and as MEI <stem> element.
Definition: stem.h:27
Syl is a TimeSpanningInterface for managing syllable connectors.
Definition: syl.h:36
Definition: symboltable.h:20
This class models an end milestone element at the system level.
Definition: systemmilestone.h:28
This class models the MEI <tabDurSym> element.
Definition: tabdursym.h:29
This class represents a text element featuring horizontal and vertical layout.
Definition: textlayoutelement.h:24
This class is an interface for elements having a single time point, such as tempo,...
Definition: timeinterface.h:39