Verovio
Source code documentation
preparedatafunctor.h
1 // Name: preparedatafunctor.h
3 // Author: David Bauer
4 // Created: 2022
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_PREPAREDATAFUNCTOR_H__
9 #define __VRV_PREPAREDATAFUNCTOR_H__
10 
11 #include "functor.h"
12 
13 namespace vrv {
14 
15 class Facsimile;
16 class SystemMilestoneInterface;
17 class SymbolTable;
18 
19 //----------------------------------------------------------------------------
20 // PrepareDataInitializationFunctor
21 //----------------------------------------------------------------------------
22 
27 public:
33  virtual ~PrepareDataInitializationFunctor() = default;
35 
36  /*
37  * Abstract base implementation
38  */
39  bool ImplementsEndInterface() const override { return false; }
40 
41  /*
42  * Functor interface
43  */
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;
54 
55 protected:
56  //
57 private:
58  //
59 public:
60  //
61 private:
62  //
63 };
64 
65 //----------------------------------------------------------------------------
66 // PrepareCueSizeFunctor
67 //----------------------------------------------------------------------------
68 
73 public:
79  virtual ~PrepareCueSizeFunctor() = default;
81 
82  /*
83  * Abstract base implementation
84  */
85  bool ImplementsEndInterface() const override { return false; }
86 
87  /*
88  * Functor interface
89  */
91  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
93 
94 protected:
95  //
96 private:
97  //
98 public:
99  //
100 private:
101  //
102 };
103 
104 //----------------------------------------------------------------------------
105 // PrepareCrossStaffFunctor
106 //----------------------------------------------------------------------------
107 
112 public:
118  virtual ~PrepareCrossStaffFunctor() = default;
120 
121  /*
122  * Abstract base implementation
123  */
124  bool ImplementsEndInterface() const override { return true; }
125 
126  /*
127  * Functor interface
128  */
130  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
131  FunctorCode VisitLayerElementEnd(LayerElement *layerElement) override;
132  FunctorCode VisitMeasure(Measure *measure) override;
134 
135 protected:
136  //
137 private:
138  //
139 public:
140  //
141 private:
142  // The current measure
143  Measure *m_currentMeasure;
144  // The current cross staff
145  Staff *m_currentCrossStaff;
146  // The current cross layer
147  Layer *m_currentCrossLayer;
148 };
149 
150 //----------------------------------------------------------------------------
151 // PrepareAltSymFunctor
152 //----------------------------------------------------------------------------
153 
158 public:
164  virtual ~PrepareAltSymFunctor() = default;
166 
167  /*
168  * Abstract base implementation
169  */
170  bool ImplementsEndInterface() const override { return false; }
171 
172  /*
173  * Getter for the symbol table
174  */
175  SymbolTable *GetSymbolTable() const { return m_symbolTable; }
176 
177  /*
178  * Functor interface
179  */
181  FunctorCode VisitObject(Object *object) override;
183 
184 protected:
185  //
186 private:
187  //
188 public:
189  //
190 private:
191  // The SymbolTable in the current scoreDef
192  SymbolTable *m_symbolTable;
193 };
194 
195 //----------------------------------------------------------------------------
196 // PrepareFacsimileFunctor
197 //----------------------------------------------------------------------------
198 
203 public:
209  virtual ~PrepareFacsimileFunctor() = default;
211 
212  /*
213  * Abstract base implementation
214  */
215  bool ImplementsEndInterface() const override { return false; }
216 
217  /*
218  * Getter for the zoneless syllables
219  */
220  const ListOfObjects &GetZonelessSyls() const { return m_zonelessSyls; }
221 
222  /*
223  * Getter for the facsimile
224  */
225  Facsimile *GetFacsimile() const { return m_facsimile; }
226 
227  /*
228  * Functor interface
229  */
231  FunctorCode VisitObject(Object *object) override;
233 
234 protected:
235  //
236 private:
237  //
238 public:
239  //
240 private:
241  // The facsimile
242  Facsimile *m_facsimile;
243  // List of zoneless syllables
244  ListOfObjects m_zonelessSyls;
245 };
246 
247 //----------------------------------------------------------------------------
248 // PrepareLinkingFunctor
249 //----------------------------------------------------------------------------
250 
255 public:
261  virtual ~PrepareLinkingFunctor() = default;
263 
264  /*
265  * Abstract base implementation
266  */
267  bool ImplementsEndInterface() const override { return false; }
268 
269  /*
270  * Getter for the interface / id pairs
271  */
273  const MapOfLinkingInterfaceIDPairs &GetNextIDPairs() const { return m_nextIDPairs; }
274  const MapOfLinkingInterfaceIDPairs &GetSameasIDPairs() const { return m_sameasIDPairs; }
275  const MapOfNoteIDPairs &GetStemSameasIDPairs() const { return m_stemSameasIDPairs; }
277 
278  /*
279  * Insert interface / id pairs
280  */
282  void InsertNextIDPair(const std::string &nextID, LinkingInterface *interface);
283  void InsertSameasIDPair(const std::string &sameasID, LinkingInterface *interface);
285 
286  /*
287  * Functor interface
288  */
290  FunctorCode VisitObject(Object *object) override;
292 
293 protected:
294  //
295 private:
302  void ResolveStemSameas(Note *note);
303 
304 public:
305  //
306 private:
307  // Holds the interface / id pairs to match for links
308  MapOfLinkingInterfaceIDPairs m_nextIDPairs;
309  // Holds the interface / id pairs to match for sameas
310  MapOfLinkingInterfaceIDPairs m_sameasIDPairs;
311  // Holds the note / id pairs to match for stem.sameas
312  MapOfNoteIDPairs m_stemSameasIDPairs;
313 };
314 
315 //----------------------------------------------------------------------------
316 // PreparePlistFunctor
317 //----------------------------------------------------------------------------
318 
323 public:
329  virtual ~PreparePlistFunctor() = default;
331 
332  /*
333  * Abstract base implementation
334  */
335  bool ImplementsEndInterface() const override { return false; }
336 
337  /*
338  * Getter and modifier for the interface / id pairs
339  */
341  const ArrayOfPlistObjectIDPairs &GetInterfaceIDPairs() const { return m_plistObjectIDPairs; }
342  void InsertInterfaceObjectIDPair(Object *objectWithPlist, const std::string &elementID);
344 
345  /*
346  * Functor interface
347  */
349  FunctorCode VisitObject(Object *object) override;
351 
352 protected:
353  //
354 private:
355  //
356 public:
357  //
358 private:
359  // Holds the object with plist / id pairs to match
360  ArrayOfPlistObjectIDPairs m_plistObjectIDPairs;
361 };
362 
363 //----------------------------------------------------------------------------
364 // PrepareDurationFunctor
365 //----------------------------------------------------------------------------
366 
371 public:
377  virtual ~PrepareDurationFunctor() = default;
379 
380  /*
381  * Abstract base implementation
382  */
383  bool ImplementsEndInterface() const override { return false; }
384 
385  /*
386  * Functor interface
387  */
389  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
390  FunctorCode VisitScore(Score *score) override;
391  FunctorCode VisitScoreDef(ScoreDef *scoreDef) override;
392  FunctorCode VisitStaffDef(StaffDef *staffDef) override;
394 
395 protected:
396  //
397 private:
398  //
399 public:
400  //
401 private:
402  // The current scoreDef default duration
403  data_DURATION m_durDefault;
404  // The current staffDef default durations
405  std::map<int, data_DURATION> m_durDefaultForStaffN;
406 };
407 
408 //----------------------------------------------------------------------------
409 // PrepareTimePointingFunctor
410 //----------------------------------------------------------------------------
411 
416 public:
422  virtual ~PrepareTimePointingFunctor() = default;
424 
425  /*
426  * Abstract base implementation
427  */
428  bool ImplementsEndInterface() const override { return true; }
429 
430  /*
431  * Getter and modifier for the interface / id tuples
432  */
434  void InsertInterfaceIDTuple(ClassId classID, TimePointInterface *interface);
436 
437  /*
438  * Functor interface
439  */
441  FunctorCode VisitF(F *f) override;
442  FunctorCode VisitFloatingObject(FloatingObject *floatingObject) override;
443  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
444  FunctorCode VisitMeasureEnd(Measure *measure) override;
446 
447 protected:
448  //
449 private:
450  //
451 public:
452  //
453 private:
454  // The interface list that holds the current elements to match
455  ListOfPointingInterClassIdPairs m_timePointingInterfaces;
456 };
457 
458 //----------------------------------------------------------------------------
459 // PrepareTimeSpanningFunctor
460 //----------------------------------------------------------------------------
461 
468 public:
474  virtual ~PrepareTimeSpanningFunctor() = default;
476 
477  /*
478  * Abstract base implementation
479  */
480  bool ImplementsEndInterface() const override { return true; }
481 
482  /*
483  * Getter and modifier for the interface / owner pairs
484  */
486  const ListOfSpanningInterOwnerPairs &GetInterfaceOwnerPairs() const { return m_timeSpanningInterfaces; }
487  void InsertInterfaceOwnerPair(Object *owner, TimeSpanningInterface *interface);
489 
490  /*
491  * Functor interface
492  */
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;
500 
501 protected:
502  //
503 private:
504  // Delegates to the pseudo functor of the interface
505  FunctorCode CallPseudoFunctor(Object *timeSpanningObject);
506 
507 public:
508  //
509 private:
510  // The interface list that holds the current elements to match
511  ListOfSpanningInterOwnerPairs m_timeSpanningInterfaces;
512  // Indicates whether we currently traverse a measure
513  bool m_insideMeasure;
514 };
515 
516 //----------------------------------------------------------------------------
517 // PrepareTimestampsFunctor
518 //----------------------------------------------------------------------------
519 
526 public:
532  virtual ~PrepareTimestampsFunctor() = default;
534 
535  /*
536  * Abstract base implementation
537  */
538  bool ImplementsEndInterface() const override { return true; }
539 
540  /*
541  * Getter and modifier for the interface / object lists
542  */
544  const ListOfSpanningInterClassIdPairs &GetInterfaceIDPairs() const { return m_timeSpanningInterfaces; }
545  void InsertInterfaceIDPair(ClassId classID, TimeSpanningInterface *interface);
546  void InsertObjectBeatPair(Object *object, const data_MEASUREBEAT &beat);
548 
549  /*
550  * Functor interface
551  */
553  FunctorCode VisitDocEnd(Doc *doc) override;
554  FunctorCode VisitF(F *f) override;
555  FunctorCode VisitFloatingObject(FloatingObject *floatingObject) override;
556  FunctorCode VisitMeasureEnd(Measure *measure) override;
558 
559 protected:
560  //
561 private:
562  //
563 public:
564  //
565 private:
566  // The interface list that holds the current elements to match
567  ListOfSpanningInterClassIdPairs m_timeSpanningInterfaces;
568  // The list of tstamp2 elements to attach at the measure end
569  ListOfObjectBeatPairs m_tstamps;
570 };
571 
572 //----------------------------------------------------------------------------
573 // PreparePedalsFunctor
574 //----------------------------------------------------------------------------
575 
580 public:
586  virtual ~PreparePedalsFunctor() = default;
588 
589  /*
590  * Abstract base implementation
591  */
592  bool ImplementsEndInterface() const override { return true; }
593 
594  /*
595  * Functor interface
596  */
598  FunctorCode VisitMeasureEnd(Measure *measure) override;
599  FunctorCode VisitPedal(Pedal *pedal) override;
601 
602 protected:
603  //
604 private:
605  //
606 public:
607  //
608 private:
609  // The current pedals to be linked / grouped
610  std::list<Pedal *> m_pedalLines;
611 };
612 
613 //----------------------------------------------------------------------------
614 // PreparePointersByLayerFunctor
615 //----------------------------------------------------------------------------
616 
622 public:
628  virtual ~PreparePointersByLayerFunctor() = default;
630 
631  /*
632  * Abstract base implementation
633  */
634  bool ImplementsEndInterface() const override { return true; }
635 
636  /*
637  * Functor interface
638  */
640  FunctorCode VisitDot(Dot *dot) override;
641  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
642  FunctorCode VisitMeasureEnd(Measure *measure) override;
644 
645 protected:
646  //
647 private:
648  //
649 public:
650  //
651 private:
652  // The current note, rest etc.
653  LayerElement *m_currentElement;
654  // The last dot
655  Dot *m_lastDot;
656 };
657 
658 //----------------------------------------------------------------------------
659 // PrepareLyricsFunctor
660 //----------------------------------------------------------------------------
661 
668 public:
674  virtual ~PrepareLyricsFunctor() = default;
676 
677  /*
678  * Abstract base implementation
679  */
680  bool ImplementsEndInterface() const override { return true; }
681 
682  /*
683  * Functor interface
684  */
686  FunctorCode VisitChord(Chord *chord) override;
687  FunctorCode VisitDocEnd(Doc *doc) override;
688  FunctorCode VisitNote(Note *note) override;
689  FunctorCode VisitSyl(Syl *syl) override;
691 
692 protected:
693  //
694 private:
695  //
696 public:
697  //
698 private:
699  // The current Syl
700  Syl *m_currentSyl;
701  // The last Note or Chord
702  LayerElement *m_lastNoteOrChord;
703  // The penultimate Note or Chord
704  LayerElement *m_penultimateNoteOrChord;
705 };
706 
707 //----------------------------------------------------------------------------
708 // PrepareLayerElementPartsFunctor
709 //----------------------------------------------------------------------------
710 
715 public:
721  virtual ~PrepareLayerElementPartsFunctor() = default;
723 
724  /*
725  * Abstract base implementation
726  */
727  bool ImplementsEndInterface() const override { return false; }
728 
729  /*
730  * Functor interface
731  */
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;
739 
740 protected:
741  //
742 private:
743  // Create stem if it does not exist
744  Stem *EnsureStemExists(Stem *stem, Object *parent) const;
745  // Create dots if they should exist, otherwise remove them
746  Dots *ProcessDots(Dots *dots, Object *parent, bool shouldExist) const;
747  // Create flag if it should exist, otherwise remove it
748  Flag *ProcessFlag(Flag *flag, Object *parent, bool shouldExist) const;
749 
750 public:
751  //
752 private:
753  //
754 };
755 
756 //----------------------------------------------------------------------------
757 // PrepareRptFunctor
758 //----------------------------------------------------------------------------
759 
765 public:
770  PrepareRptFunctor(Doc *doc);
771  virtual ~PrepareRptFunctor() = default;
773 
774  /*
775  * Abstract base implementation
776  */
777  bool ImplementsEndInterface() const override { return false; }
778 
779  /*
780  * Functor interface
781  */
783  FunctorCode VisitLayer(Layer *layer) override;
784  FunctorCode VisitMRpt(MRpt *mRpt) override;
785  FunctorCode VisitStaff(Staff *staff) override;
787 
788 protected:
789  //
790 private:
791  //
792 public:
793  //
794 private:
795  // The current MRpt
796  MRpt *m_currentMRpt;
797  // The data_BOOLEAN indicating if multiNumber
798  data_BOOLEAN m_multiNumber;
799 };
800 
801 //----------------------------------------------------------------------------
802 // PrepareDelayedTurnsFunctor
803 //----------------------------------------------------------------------------
804 
810 public:
816  virtual ~PrepareDelayedTurnsFunctor() = default;
818 
819  /*
820  * Abstract base implementation
821  */
822  bool ImplementsEndInterface() const override { return false; }
823 
824  /*
825  * Getter for the map of delayed turns
826  */
827  const std::map<LayerElement *, Turn *> &GetDelayedTurns() const { return m_delayedTurns; }
828 
829  /*
830  * Reset the current turn and element
831  */
832  void ResetCurrent();
833 
834  /*
835  * Functor interface
836  */
838  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
839  FunctorCode VisitTurn(Turn *turn) override;
841 
842 protected:
843  //
844 private:
845  //
846 public:
847  //
848 private:
849  // The element to which a turn is pointing to
850  LayerElement *m_previousElement;
851  // The current chord
852  Chord *m_currentChord;
853  // The turn to which we want to set a m_drawingEndElement
854  Turn *m_currentTurn;
855  // A map of the delayed turns and the layer elements they point to
856  std::map<LayerElement *, Turn *> m_delayedTurns;
857 };
858 
859 //----------------------------------------------------------------------------
860 // PrepareMilestonesFunctor
861 //----------------------------------------------------------------------------
862 
867 public:
873  virtual ~PrepareMilestonesFunctor() = default;
875 
876  /*
877  * Abstract base implementation
878  */
879  bool ImplementsEndInterface() const override { return false; }
880 
881  /*
882  * Getter and modifier for the interface list
883  */
885  const std::vector<SystemMilestoneInterface *> &GetStartMilestones() const { return m_startMilestones; }
886  void InsertStartMilestone(SystemMilestoneInterface *interface);
888 
889  /*
890  * Functor interface
891  */
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;
899 
900 protected:
901  //
902 private:
903  //
904 public:
905  //
906 private:
907  // The last measure
908  Measure *m_lastMeasure;
909  // The current ending
910  Ending *m_currentEnding;
911  // The list of start milestones
912  std::vector<SystemMilestoneInterface *> m_startMilestones;
913 };
914 
915 //----------------------------------------------------------------------------
916 // PrepareFloatingGrpsFunctor
917 //----------------------------------------------------------------------------
918 
924 public:
930  virtual ~PrepareFloatingGrpsFunctor() = default;
932 
933  /*
934  * Abstract base implementation
935  */
936  bool ImplementsEndInterface() const override { return true; }
937 
938  /*
939  * Functor interface
940  */
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;
950  FunctorCode VisitSystemMilestone(SystemMilestoneEnd *systemMilestoneEnd) override;
952 
953 protected:
954  //
955 private:
956  //
957 public:
958  //
959 private:
960  // The previous ending
961  Ending *m_previousEnding;
962  // The dynams in the current measure
963  std::vector<Dynam *> m_dynams;
964  // The current hairpins to be linked / grouped
965  std::vector<Hairpin *> m_hairpins;
966  // The map of existing harms (based on @n)
967  std::map<std::string, Harm *> m_harms;
968 };
969 
970 //----------------------------------------------------------------------------
971 // PrepareStaffCurrentTimeSpanningFunctor
972 //----------------------------------------------------------------------------
973 
980 public:
986  virtual ~PrepareStaffCurrentTimeSpanningFunctor() = default;
988 
989  /*
990  * Abstract base implementation
991  */
992  bool ImplementsEndInterface() const override { return true; }
993 
994  /*
995  * Getter and modifier for the interface list
996  */
998  const ArrayOfObjects &GetTimeSpanningElements() const { return m_timeSpanningElements; }
999  void InsertTimeSpanningElement(Object *element);
1001 
1002  /*
1003  * Functor interface
1004  */
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;
1012 
1013 protected:
1014  //
1015 private:
1016  //
1017 public:
1018  //
1019 private:
1020  // The currently running TimeSpanningInterface elements
1021  ArrayOfObjects m_timeSpanningElements;
1022 };
1023 
1024 //----------------------------------------------------------------------------
1025 // PrepareRehPositionFunctor
1026 //----------------------------------------------------------------------------
1027 
1032 public:
1038  virtual ~PrepareRehPositionFunctor() = default;
1040 
1041  /*
1042  * Abstract base implementation
1043  */
1044  bool ImplementsEndInterface() const override { return false; }
1045 
1046  /*
1047  * Functor interface
1048  */
1050  FunctorCode VisitReh(Reh *reh) override;
1052 
1053 protected:
1054  //
1055 private:
1056  //
1057 public:
1058  //
1059 private:
1060  //
1061 };
1062 
1063 //----------------------------------------------------------------------------
1064 // PrepareBeamSpanElementsFunctor
1065 //----------------------------------------------------------------------------
1066 
1072 public:
1078  virtual ~PrepareBeamSpanElementsFunctor() = default;
1080 
1081  /*
1082  * Abstract base implementation
1083  */
1084  bool ImplementsEndInterface() const override { return false; }
1085 
1086  /*
1087  * Functor interface
1088  */
1090  FunctorCode VisitBeamSpan(BeamSpan *beamSpan) override;
1092 
1093 protected:
1094  //
1095 private:
1096  // Helper to get the element list for the beamSpan - elements are acquired from all layerElements
1097  // that are located in between start and end of the beamSpan
1098  ArrayOfObjects GetBeamSpanElementList(BeamSpan *beamSpan, Layer *layer, const Staff *staff) const;
1099 
1100 public:
1101  //
1102 private:
1103  //
1104 };
1105 
1106 } // namespace vrv
1107 
1108 #endif // __VRV_PREPAREDATAFUNCTOR_H__
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
Definition: dot.h:22
This class models a group of dots as a layer element part and has no direct MEI equivalent.
Definition: elementpart.h:27
Definition: dynam.h:33
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
Definition: tuplet.h:33