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 VisitMSpace(MSpace *mSpace) override;
51  FunctorCode VisitRepeatMark(RepeatMark *repeatMark) override;
52  FunctorCode VisitScore(Score *score) override;
53  FunctorCode VisitSpace(Space *space) override;
54  FunctorCode VisitTextLayoutElement(TextLayoutElement *textLayoutElement) override;
56 
57 protected:
58  //
59 private:
60  //
61 public:
62  //
63 private:
64  //
65 };
66 
67 //----------------------------------------------------------------------------
68 // PrepareCueSizeFunctor
69 //----------------------------------------------------------------------------
70 
75 public:
81  virtual ~PrepareCueSizeFunctor() = default;
83 
84  /*
85  * Abstract base implementation
86  */
87  bool ImplementsEndInterface() const override { return false; }
88 
89  /*
90  * Functor interface
91  */
93  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
95 
96 protected:
97  //
98 private:
99  //
100 public:
101  //
102 private:
103  //
104 };
105 
106 //----------------------------------------------------------------------------
107 // PrepareCrossStaffFunctor
108 //----------------------------------------------------------------------------
109 
114 public:
120  virtual ~PrepareCrossStaffFunctor() = default;
122 
123  /*
124  * Abstract base implementation
125  */
126  bool ImplementsEndInterface() const override { return true; }
127 
128  /*
129  * Functor interface
130  */
132  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
133  FunctorCode VisitLayerElementEnd(LayerElement *layerElement) override;
134  FunctorCode VisitMeasure(Measure *measure) override;
136 
137 protected:
138  //
139 private:
140  //
141 public:
142  //
143 private:
144  // The current measure
145  Measure *m_currentMeasure;
146  // The current cross staff
147  Staff *m_currentCrossStaff;
148  // The current cross layer
149  Layer *m_currentCrossLayer;
150 };
151 
152 //----------------------------------------------------------------------------
153 // PrepareAltSymFunctor
154 //----------------------------------------------------------------------------
155 
160 public:
166  virtual ~PrepareAltSymFunctor() = default;
168 
169  /*
170  * Abstract base implementation
171  */
172  bool ImplementsEndInterface() const override { return false; }
173 
174  /*
175  * Getter for the symbol table
176  */
177  SymbolTable *GetSymbolTable() const { return m_symbolTable; }
178 
179  /*
180  * Functor interface
181  */
183  FunctorCode VisitObject(Object *object) override;
185 
186 protected:
187  //
188 private:
189  //
190 public:
191  //
192 private:
193  // The SymbolTable in the current scoreDef
194  SymbolTable *m_symbolTable;
195 };
196 
197 //----------------------------------------------------------------------------
198 // PrepareFacsimileFunctor
199 //----------------------------------------------------------------------------
200 
205 public:
211  virtual ~PrepareFacsimileFunctor() = default;
213 
214  /*
215  * Abstract base implementation
216  */
217  bool ImplementsEndInterface() const override { return false; }
218 
219  /*
220  * Getter for the zoneless syllables
221  */
222  const ListOfObjects &GetZonelessSyls() const { return m_zonelessSyls; }
223 
224  /*
225  * Getter for the facsimile
226  */
227  Facsimile *GetFacsimile() const { return m_facsimile; }
228 
229  /*
230  * Functor interface
231  */
233  FunctorCode VisitObject(Object *object) override;
235 
236 protected:
237  //
238 private:
239  //
240 public:
241  //
242 private:
243  // The facsimile
244  Facsimile *m_facsimile;
245  // List of zoneless syllables
246  ListOfObjects m_zonelessSyls;
247 };
248 
249 //----------------------------------------------------------------------------
250 // PrepareLinkingFunctor
251 //----------------------------------------------------------------------------
252 
257 public:
263  virtual ~PrepareLinkingFunctor() = default;
265 
266  /*
267  * Abstract base implementation
268  */
269  bool ImplementsEndInterface() const override { return false; }
270 
271  /*
272  * Getter for the interface / id pairs
273  */
275  const MapOfLinkingInterfaceIDPairs &GetNextIDPairs() const { return m_nextIDPairs; }
276  const MapOfLinkingInterfaceIDPairs &GetSameasIDPairs() const { return m_sameasIDPairs; }
277  const MapOfNoteIDPairs &GetStemSameasIDPairs() const { return m_stemSameasIDPairs; }
279 
280  /*
281  * Insert interface / id pairs
282  */
284  void InsertNextIDPair(const std::string &nextID, LinkingInterface *interface);
285  void InsertSameasIDPair(const std::string &sameasID, LinkingInterface *interface);
287 
288  /*
289  * Functor interface
290  */
292  FunctorCode VisitObject(Object *object) override;
294 
295 protected:
296  //
297 private:
304  void ResolveStemSameas(Note *note);
305 
306 public:
307  //
308 private:
309  // Holds the interface / id pairs to match for links
310  MapOfLinkingInterfaceIDPairs m_nextIDPairs;
311  // Holds the interface / id pairs to match for sameas
312  MapOfLinkingInterfaceIDPairs m_sameasIDPairs;
313  // Holds the note / id pairs to match for stem.sameas
314  MapOfNoteIDPairs m_stemSameasIDPairs;
315 };
316 
317 //----------------------------------------------------------------------------
318 // PreparePlistFunctor
319 //----------------------------------------------------------------------------
320 
325 public:
331  virtual ~PreparePlistFunctor() = default;
333 
334  /*
335  * Abstract base implementation
336  */
337  bool ImplementsEndInterface() const override { return false; }
338 
339  /*
340  * Getter and modifier for the interface / id pairs
341  */
343  const ArrayOfPlistObjectIDPairs &GetInterfaceIDPairs() const { return m_plistObjectIDPairs; }
344  void InsertInterfaceObjectIDPair(Object *objectWithPlist, const std::string &elementID);
346 
347  /*
348  * Functor interface
349  */
351  FunctorCode VisitObject(Object *object) override;
353 
354 protected:
355  //
356 private:
357  //
358 public:
359  //
360 private:
361  // Holds the object with plist / id pairs to match
362  ArrayOfPlistObjectIDPairs m_plistObjectIDPairs;
363 };
364 
365 //----------------------------------------------------------------------------
366 // PrepareDurationFunctor
367 //----------------------------------------------------------------------------
368 
373 public:
379  virtual ~PrepareDurationFunctor() = default;
381 
382  /*
383  * Abstract base implementation
384  */
385  bool ImplementsEndInterface() const override { return false; }
386 
387  /*
388  * Functor interface
389  */
391  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
392  FunctorCode VisitScore(Score *score) override;
393  FunctorCode VisitScoreDef(ScoreDef *scoreDef) override;
394  FunctorCode VisitStaffDef(StaffDef *staffDef) override;
396 
397 protected:
398  //
399 private:
400  //
401 public:
402  //
403 private:
404  // The current scoreDef default duration
405  data_DURATION m_durDefault;
406  // The current staffDef default durations
407  std::map<int, data_DURATION> m_durDefaultForStaffN;
408 };
409 
410 //----------------------------------------------------------------------------
411 // PrepareTimePointingFunctor
412 //----------------------------------------------------------------------------
413 
418 public:
424  virtual ~PrepareTimePointingFunctor() = default;
426 
427  /*
428  * Abstract base implementation
429  */
430  bool ImplementsEndInterface() const override { return true; }
431 
432  /*
433  * Getter and modifier for the interface / id tuples
434  */
436  void InsertInterfaceIDTuple(ClassId classID, TimePointInterface *interface);
438 
439  /*
440  * Functor interface
441  */
443  FunctorCode VisitF(F *f) override;
444  FunctorCode VisitFloatingObject(FloatingObject *floatingObject) override;
445  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
446  FunctorCode VisitMeasureEnd(Measure *measure) override;
448 
449 protected:
450  //
451 private:
452  //
453 public:
454  //
455 private:
456  // The interface list that holds the current elements to match
457  ListOfPointingInterClassIdPairs m_timePointingInterfaces;
458 };
459 
460 //----------------------------------------------------------------------------
461 // PrepareTimeSpanningFunctor
462 //----------------------------------------------------------------------------
463 
470 public:
476  virtual ~PrepareTimeSpanningFunctor() = default;
478 
479  /*
480  * Abstract base implementation
481  */
482  bool ImplementsEndInterface() const override { return true; }
483 
484  /*
485  * Getter and modifier for the interface / owner pairs
486  */
488  const ListOfSpanningInterOwnerPairs &GetInterfaceOwnerPairs() const { return m_timeSpanningInterfaces; }
489  void InsertInterfaceOwnerPair(Object *owner, TimeSpanningInterface *interface);
491 
492  /*
493  * Functor interface
494  */
496  FunctorCode VisitF(F *f) override;
497  FunctorCode VisitFloatingObject(FloatingObject *floatingObject) override;
498  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
499  FunctorCode VisitMeasure(Measure *measure) override;
500  FunctorCode VisitMeasureEnd(Measure *measure) override;
502 
503 protected:
504  //
505 private:
506  // Delegates to the pseudo functor of the interface
507  FunctorCode CallPseudoFunctor(Object *timeSpanningObject);
508 
509 public:
510  //
511 private:
512  // The interface list that holds the current elements to match
513  ListOfSpanningInterOwnerPairs m_timeSpanningInterfaces;
514  // Indicates whether we currently traverse a measure
515  bool m_insideMeasure;
516 };
517 
518 //----------------------------------------------------------------------------
519 // PrepareTimestampsFunctor
520 //----------------------------------------------------------------------------
521 
528 public:
534  virtual ~PrepareTimestampsFunctor() = default;
536 
537  /*
538  * Abstract base implementation
539  */
540  bool ImplementsEndInterface() const override { return true; }
541 
542  /*
543  * Getter and modifier for the interface / object lists
544  */
546  const ListOfSpanningInterClassIdPairs &GetInterfaceIDPairs() const { return m_timeSpanningInterfaces; }
547  void InsertInterfaceIDPair(ClassId classID, TimeSpanningInterface *interface);
548  void InsertObjectBeatPair(Object *object, const data_MEASUREBEAT &beat);
550 
551  /*
552  * Functor interface
553  */
555  FunctorCode VisitDocEnd(Doc *doc) override;
556  FunctorCode VisitF(F *f) override;
557  FunctorCode VisitFloatingObject(FloatingObject *floatingObject) override;
558  FunctorCode VisitMeasureEnd(Measure *measure) override;
560 
561 protected:
562  //
563 private:
564  //
565 public:
566  //
567 private:
568  // The interface list that holds the current elements to match
569  ListOfSpanningInterClassIdPairs m_timeSpanningInterfaces;
570  // The list of tstamp2 elements to attach at the measure end
571  ListOfObjectBeatPairs m_tstamps;
572 };
573 
574 //----------------------------------------------------------------------------
575 // PreparePedalsFunctor
576 //----------------------------------------------------------------------------
577 
582 public:
588  virtual ~PreparePedalsFunctor() = default;
590 
591  /*
592  * Abstract base implementation
593  */
594  bool ImplementsEndInterface() const override { return true; }
595 
596  /*
597  * Functor interface
598  */
600  FunctorCode VisitMeasureEnd(Measure *measure) override;
601  FunctorCode VisitPedal(Pedal *pedal) override;
603 
604 protected:
605  //
606 private:
607  //
608 public:
609  //
610 private:
611  // The current pedals to be linked / grouped
612  std::list<Pedal *> m_pedalLines;
613 };
614 
615 //----------------------------------------------------------------------------
616 // PreparePointersByLayerFunctor
617 //----------------------------------------------------------------------------
618 
624 public:
630  virtual ~PreparePointersByLayerFunctor() = default;
632 
633  /*
634  * Abstract base implementation
635  */
636  bool ImplementsEndInterface() const override { return true; }
637 
638  /*
639  * Functor interface
640  */
642  FunctorCode VisitDot(Dot *dot) override;
643  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
644  FunctorCode VisitMeasureEnd(Measure *measure) override;
646 
647 protected:
648  //
649 private:
650  //
651 public:
652  //
653 private:
654  // The current note, rest etc.
655  LayerElement *m_currentElement;
656  // The last dot
657  Dot *m_lastDot;
658 };
659 
660 //----------------------------------------------------------------------------
661 // PrepareLyricsFunctor
662 //----------------------------------------------------------------------------
663 
670 public:
675  PrepareLyricsFunctor(int voltaTrack = 0);
676  virtual ~PrepareLyricsFunctor() = default;
678 
679  /*
680  * Abstract base implementation
681  */
682  bool ImplementsEndInterface() const override { return true; }
683 
684  /*
685  * Functor interface
686  */
688  FunctorCode VisitChord(Chord *chord) override;
689  FunctorCode VisitDocEnd(Doc *doc) override;
690  FunctorCode VisitNote(Note *note) override;
691  FunctorCode VisitSyl(Syl *syl) override;
693 
694 protected:
695  //
696 private:
697  //
698 public:
699  //
700 private:
701  // The current Syl
702  Syl *m_currentSyl;
703  // The last Note or Chord
704  LayerElement *m_lastNoteOrChord;
705  // The penultimate Note or Chord
706  LayerElement *m_penultimateNoteOrChord;
707  // 0 for direct <verse>/<syl>, otherwise the normalized volta alternative.
708  int m_voltaTrack;
709 };
710 
711 //----------------------------------------------------------------------------
712 // PrepareLayerElementPartsFunctor
713 //----------------------------------------------------------------------------
714 
719 public:
725  virtual ~PrepareLayerElementPartsFunctor() = default;
727 
728  /*
729  * Abstract base implementation
730  */
731  bool ImplementsEndInterface() const override { return false; }
732 
733  /*
734  * Functor interface
735  */
737  FunctorCode VisitChord(Chord *chord) override;
738  FunctorCode VisitNote(Note *note) override;
739  FunctorCode VisitRest(Rest *rest) override;
740  FunctorCode VisitTabDurSym(TabDurSym *tabDurSym) override;
741  FunctorCode VisitTuplet(Tuplet *tuplet) override;
743 
744 protected:
745  //
746 private:
747  // Create stem if it does not exist
748  Stem *EnsureStemExists(Stem *stem, Object *parent) const;
749  // Create dots if they should exist, otherwise remove them
750  Dots *ProcessDots(Dots *dots, Object *parent, bool shouldExist) const;
751  // Create flag if it should exist, otherwise remove it
752  Flag *ProcessFlag(Flag *flag, Object *parent, bool shouldExist) const;
753 
754 public:
755  //
756 private:
757  //
758 };
759 
760 //----------------------------------------------------------------------------
761 // PrepareRptFunctor
762 //----------------------------------------------------------------------------
763 
769 public:
774  PrepareRptFunctor(Doc *doc);
775  virtual ~PrepareRptFunctor() = default;
777 
778  /*
779  * Abstract base implementation
780  */
781  bool ImplementsEndInterface() const override { return false; }
782 
783  /*
784  * Functor interface
785  */
787  FunctorCode VisitLayer(Layer *layer) override;
788  FunctorCode VisitMRpt(MRpt *mRpt) override;
789  FunctorCode VisitStaff(Staff *staff) override;
791 
792 protected:
793  //
794 private:
795  //
796 public:
797  //
798 private:
799  // The current MRpt
800  MRpt *m_currentMRpt;
801  // The data_BOOLEAN indicating if multiNumber
802  data_BOOLEAN m_multiNumber;
803 };
804 
805 //----------------------------------------------------------------------------
806 // PrepareDelayedTurnsFunctor
807 //----------------------------------------------------------------------------
808 
814 public:
820  virtual ~PrepareDelayedTurnsFunctor() = default;
822 
823  /*
824  * Abstract base implementation
825  */
826  bool ImplementsEndInterface() const override { return false; }
827 
828  /*
829  * Getter for the map of delayed turns
830  */
831  const std::map<LayerElement *, Turn *> &GetDelayedTurns() const { return m_delayedTurns; }
832 
833  /*
834  * Reset the current turn and element
835  */
836  void ResetCurrent();
837 
838  /*
839  * Functor interface
840  */
842  FunctorCode VisitLayerElement(LayerElement *layerElement) override;
843  FunctorCode VisitTurn(Turn *turn) override;
845 
846 protected:
847  //
848 private:
849  //
850 public:
851  //
852 private:
853  // The element to which a turn is pointing to
854  LayerElement *m_previousElement;
855  // The current chord
856  Chord *m_currentChord;
857  // The turn to which we want to set a m_drawingEndElement
858  Turn *m_currentTurn;
859  // A map of the delayed turns and the layer elements they point to
860  std::map<LayerElement *, Turn *> m_delayedTurns;
861 };
862 
863 //----------------------------------------------------------------------------
864 // PrepareMilestonesFunctor
865 //----------------------------------------------------------------------------
866 
871 public:
877  virtual ~PrepareMilestonesFunctor() = default;
879 
880  /*
881  * Abstract base implementation
882  */
883  bool ImplementsEndInterface() const override { return false; }
884 
885  /*
886  * Getter and modifier for the interface list
887  */
889  const std::vector<SystemMilestoneInterface *> &GetStartMilestones() const { return m_startMilestones; }
890  void InsertStartMilestone(SystemMilestoneInterface *interface);
892 
893  /*
894  * Functor interface
895  */
897  FunctorCode VisitEditorialElement(EditorialElement *editorialElement) override;
898  FunctorCode VisitEnding(Ending *ending) override;
899  FunctorCode VisitMeasure(Measure *measure) override;
900  FunctorCode VisitSection(Section *section) override;
901  FunctorCode VisitSystemMilestone(SystemMilestoneEnd *systemMilestoneEnd) override;
903 
904 protected:
905  //
906 private:
907  //
908 public:
909  //
910 private:
911  // The last measure
912  Measure *m_lastMeasure;
913  // The current ending
914  Ending *m_currentEnding;
915  // The list of start milestones
916  std::vector<SystemMilestoneInterface *> m_startMilestones;
917 };
918 
919 //----------------------------------------------------------------------------
920 // PrepareFloatingGrpsFunctor
921 //----------------------------------------------------------------------------
922 
928 public:
934  virtual ~PrepareFloatingGrpsFunctor() = default;
936 
937  /*
938  * Abstract base implementation
939  */
940  bool ImplementsEndInterface() const override { return true; }
941 
942  /*
943  * Functor interface
944  */
946  FunctorCode VisitDir(Dir *dir) override;
947  FunctorCode VisitDynam(Dynam *dynam) override;
948  FunctorCode VisitEnding(Ending *ending) override;
949  FunctorCode VisitHairpin(Hairpin *hairpin) override;
950  FunctorCode VisitHarm(Harm *harm) override;
951  FunctorCode VisitMeasure(Measure *measure) override;
952  FunctorCode VisitMeasureEnd(Measure *measure) override;
953  FunctorCode VisitPedal(Pedal *pedal) override;
954  FunctorCode VisitSystemMilestone(SystemMilestoneEnd *systemMilestoneEnd) override;
956 
957 protected:
958  //
959 private:
960  //
961 public:
962  //
963 private:
964  // The previous ending
965  Ending *m_previousEnding;
966  // The dynams in the current measure
967  std::vector<Dynam *> m_dynams;
968  // The current hairpins to be linked / grouped
969  std::vector<Hairpin *> m_hairpins;
970  // The map of existing harms (based on @n)
971  std::map<std::string, Harm *> m_harms;
972 };
973 
974 //----------------------------------------------------------------------------
975 // PrepareStaffCurrentTimeSpanningFunctor
976 //----------------------------------------------------------------------------
977 
984 public:
990  virtual ~PrepareStaffCurrentTimeSpanningFunctor() = default;
992 
993  /*
994  * Abstract base implementation
995  */
996  bool ImplementsEndInterface() const override { return true; }
997 
998  /*
999  * Getter and modifier for the interface list
1000  */
1002  const ArrayOfObjects &GetTimeSpanningElements() const { return m_timeSpanningElements; }
1003  void InsertTimeSpanningElement(Object *element);
1005 
1006  /*
1007  * Functor interface
1008  */
1010  FunctorCode VisitF(F *f) override;
1011  FunctorCode VisitFloatingObject(FloatingObject *floatingObject) override;
1012  FunctorCode VisitMeasureEnd(Measure *measure) override;
1013  FunctorCode VisitStaff(Staff *staff) override;
1014  FunctorCode VisitSyl(Syl *syl) override;
1016 
1017 protected:
1018  //
1019 private:
1020  //
1021 public:
1022  //
1023 private:
1024  // The currently running TimeSpanningInterface elements
1025  ArrayOfObjects m_timeSpanningElements;
1026 };
1027 
1028 //----------------------------------------------------------------------------
1029 // PrepareRehPositionFunctor
1030 //----------------------------------------------------------------------------
1031 
1036 public:
1042  virtual ~PrepareRehPositionFunctor() = default;
1044 
1045  /*
1046  * Abstract base implementation
1047  */
1048  bool ImplementsEndInterface() const override { return false; }
1049 
1050  /*
1051  * Functor interface
1052  */
1054  FunctorCode VisitReh(Reh *reh) override;
1056 
1057 protected:
1058  //
1059 private:
1060  //
1061 public:
1062  //
1063 private:
1064  //
1065 };
1066 
1067 //----------------------------------------------------------------------------
1068 // PrepareBeamSpanElementsFunctor
1069 //----------------------------------------------------------------------------
1070 
1076 public:
1082  virtual ~PrepareBeamSpanElementsFunctor() = default;
1084 
1085  /*
1086  * Abstract base implementation
1087  */
1088  bool ImplementsEndInterface() const override { return false; }
1089 
1090  /*
1091  * Functor interface
1092  */
1094  FunctorCode VisitBeamSpan(BeamSpan *beamSpan) override;
1096 
1097 protected:
1098  //
1099 private:
1100  // Helper to get the element list for the beamSpan - elements are acquired from all layerElements
1101  // that are located in between start and end of the beamSpan
1102  ArrayOfObjects GetBeamSpanElementList(BeamSpan *beamSpan, Layer *layer, const Staff *staff) const;
1103 
1104 public:
1105  //
1106 private:
1107  //
1108 };
1109 
1110 } // namespace vrv
1111 
1112 #endif // __VRV_PREPAREDATAFUNCTOR_H__
This class models the MEI <accid> element.
Definition: accid.h:41
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:23
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:32
This class models the MEI <harm> element.
Definition: harm.h:32
This class models the MEI <keySig> element.
Definition: keysig.h:51
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:40
This class models the MEI <mRpt> element.
Definition: mrpt.h:26
This class models the MEI <space> element.
Definition: mspace.h:22
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:69
This class represents a basic object.
Definition: object.h:66
This class models the MEI <pedal> element.
Definition: pedal.h:34
This class matches the @altsym element to the corresponding symbolDef.
Definition: preparedatafunctor.h:159
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:172
This class gets the list of referenced elements for the BeamSpan and marks referenced objects as cont...
Definition: preparedatafunctor.h:1075
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:1088
This class sets the cross staff and cross layer pointers on layer elements.
Definition: preparedatafunctor.h:113
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:126
This class sets the drawing cue size for all layer elements.
Definition: preparedatafunctor.h:74
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:87
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:813
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:826
This class extracts the default duration from scoredef/staffdef.
Definition: preparedatafunctor.h:372
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:385
This class associates layer elements with @facs to the appropriate zone.
Definition: preparedatafunctor.h:204
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:217
This class groups FloatingObjects by drawingGrpId.
Definition: preparedatafunctor.h:927
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:940
This class adds LayerElement parts (stem, flag, dots, etc).
Definition: preparedatafunctor.h:718
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:731
This class matches linking elements (e.g, @next).
Definition: preparedatafunctor.h:256
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:269
This class sets wordpos and connector ends.
Definition: preparedatafunctor.h:669
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:682
This class sets the Measure of Ending.
Definition: preparedatafunctor.h:870
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:883
This class matches down and up pedal lines.
Definition: preparedatafunctor.h:581
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:594
This class matches elements of @plist.
Definition: preparedatafunctor.h:324
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:337
This class processes by layer and sets drawing pointers.
Definition: preparedatafunctor.h:623
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:636
This class resolves the Reh time pointing position in case none is set.
Definition: preparedatafunctor.h:1035
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:1048
This class sets mRpt drawing numbers (if required).
Definition: preparedatafunctor.h:768
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:781
This class goes through all the TimeSpanningInterface elements and sets them for each staff that is c...
Definition: preparedatafunctor.h:983
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:996
This class matches the start for TimePointingInterface elements (such as fermata or harm).
Definition: preparedatafunctor.h:417
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:430
This class matches start and end for TimeSpanningInterface elements (such as tie or slur).
Definition: preparedatafunctor.h:469
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:482
This class matches start and end for TimeSpanningInterface elements with tstamp(2) attributes.
Definition: preparedatafunctor.h:527
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: preparedatafunctor.h:540
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:49
This class represents a MEI scoreDef.
Definition: scoredef.h:136
This class represent a <score> in MEI.
Definition: score.h:30
This class models the MEI <space> element.
Definition: space.h:23
This class represents a MEI staffDef.
Definition: staffdef.h:37
This class represents a staff in a laid-out score (Doc).
Definition: staff.h:110
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:38
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