8 #ifndef __VRV_SETSCOREDEFFUNCTOR_H__
9 #define __VRV_SETSCOREDEFFUNCTOR_H__
42 FunctorCode VisitStaffDef(
StaffDef *staffDef)
override;
94 FunctorCode VisitPageEnd(
Page *page)
override;
95 FunctorCode VisitScore(
Score *score)
override;
106 std::list<Score *> m_scores;
136 bool HasOssia()
const {
return m_hasOssia; }
142 FunctorCode VisitClef(Clef *clef)
override;
143 FunctorCode VisitKeySig(KeySig *keySig)
override;
144 FunctorCode VisitLayer(Layer *layer)
override;
145 FunctorCode VisitMeasure(Measure *measure)
override;
146 FunctorCode VisitMensur(Mensur *mensur)
override;
147 FunctorCode VisitOssia(Ossia *ossia)
override;
148 FunctorCode VisitPage(Page *page)
override;
149 FunctorCode VisitProport(Proport *proport)
override;
150 FunctorCode VisitScore(Score *score)
override;
151 FunctorCode VisitScoreDef(ScoreDef *scoreDef)
override;
152 FunctorCode VisitStaff(Staff *staff)
override;
153 FunctorCode VisitStaffDef(StaffDef *staffDef)
override;
154 FunctorCode VisitStaffGrp(StaffGrp *staffGrp)
override;
155 FunctorCode VisitSystem(System *system)
override;
156 FunctorCode VisitSystemEnd(System *system)
override;
167 Score *m_currentScore;
169 ScoreDef *m_currentScoreDef;
171 StaffDef *m_currentStaffDef;
173 ScoreDef m_upcomingScoreDef;
175 Measure *m_previousMeasure;
177 System *m_currentSystem;
185 MapOfOssiaStaffNs m_ossiasAbove;
187 MapOfOssiaStaffNs m_ossiasBelow;
219 FunctorCode VisitMeasure(
Measure *measure)
override;
220 FunctorCode VisitScore(
Score *score)
override;
221 FunctorCode VisitStaff(
Staff *staff)
override;
222 FunctorCode VisitStaffGrpEnd(
StaffGrp *staffGrp)
override;
223 FunctorCode VisitSystem(
System *system)
override;
224 FunctorCode VisitSystemEnd(
System *system)
override;
239 bool m_firstScoreDef;
278 FunctorCode VisitLayer(
Layer *layer)
override;
279 FunctorCode VisitStaff(
Staff *staff)
override;
296 std::vector<int> m_staffNs;
325 FunctorCode VisitGrpSym(
GrpSym *grpSym)
override;
326 FunctorCode VisitSystem(
System *system)
override;
365 FunctorCode VisitClef(
Clef *clef)
override;
366 FunctorCode VisitLayer(
Layer *layer)
override;
367 FunctorCode VisitMeasure(
Measure *measure)
override;
368 FunctorCode VisitMeasureEnd(
Measure *measure)
override;
369 FunctorCode VisitOssia(
Ossia *ossia)
override;
370 FunctorCode VisitStaff(
Staff *staff)
override;
371 FunctorCode VisitStaffEnd(
Staff *staff)
override;
372 FunctorCode VisitSystem(
System *system)
override;
381 const StaffDef *GetPreviousStaffDef(
Ossia *ossia,
int staffN);
389 Ossia *m_ossia = NULL;
390 std::map<int, StaffDef> m_staffDefs;
397 std::list<CurrentOssia> m_currentOssias;
399 std::list<CurrentOssia> m_previousOssias;
401 StaffDef m_upcomingStaffDef;
403 ScoreDef *m_currentScoreDef;
405 StaffDef *m_currentStaffDef;
407 bool m_layerOssiaStaffDef;
409 bool m_isFirstMeasure;
439 FunctorCode VisitKeySig(
KeySig *keySig)
override;
440 FunctorCode VisitLayer(
Layer *layer)
override;
441 FunctorCode VisitMeasure(
Measure *measure)
override;
442 FunctorCode VisitOssia(
Ossia *ossia)
override;
443 FunctorCode VisitPage(
Page *page)
override;
444 FunctorCode VisitStaff(
Staff *staff)
override;
445 FunctorCode VisitSystem(
System *system)
override;
462 enum StaffDefRedrawFlags {
466 REDRAW_METERSIG = 0x8,
467 REDRAW_METERSIGGRP = 0x10,
469 REDRAW_ALL = REDRAW_CLEF | REDRAW_KEYSIG | REDRAW_MENSUR | REDRAW_METERSIG | REDRAW_METERSIGGRP,
497 FunctorCode VisitStaffDef(
StaffDef *staffDef)
override;
This class stores a references of LayerElements for a staff.
Definition: horizontalaligner.h:292
This class models the MEI <clef> element.
Definition: clef.h:41
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 abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class represents a MEI grpSym.
Definition: grpsym.h:30
This class models the MEI <keySig> element.
Definition: keysig.h:51
This class represents a layer in a laid-out score (Doc).
Definition: layer.h:39
This class represents a measure in a page-based score (Doc).
Definition: measure.h:46
This class models the MEI <mensur> element.
Definition: mensur.h:34
This class represents a MEI meterSigGrp.
Definition: metersiggrp.h:32
This class models the MEI <meterSig> element.
Definition: metersig.h:34
This class represents an ossia.
Definition: ossia.h:28
This class represents a page in a laid-out score (Doc).
Definition: page.h:31
This class sets the current drawing clef, key signature, etc.
Definition: setscoredeffunctor.h:22
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:36
This class represents a MEI scoreDef.
Definition: scoredef.h:136
This class optimizes the scoreDef for each system.
Definition: setscoredeffunctor.h:200
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:213
This class sets the current scoreDef wherever needed.
Definition: setscoredeffunctor.h:118
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:131
This class sets the Page::m_score and Page::m_scoreEnd pointers.
Definition: setscoredeffunctor.h:75
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:88
This class prepares the group symbol starting and ending staffDefs for drawing.
Definition: setscoredeffunctor.h:306
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:319
This class prepares the ossia staffDefs for drawing.
Definition: setscoredeffunctor.h:346
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:359
This class unsets the initial scoreDef for each system and measure.
Definition: setscoredeffunctor.h:419
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:432
This class represent a <score> in MEI.
Definition: score.h:30
This class sets the cautionary scoreDef wherever needed.
Definition: setscoredeffunctor.h:253
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:272
void SetRestartStaffNs(const std::vector< int > &staffNs)
Set the list of staffNs in the scoreDef after the restart.
Definition: setscoredeffunctor.h:267
This class sets drawing flags for the StaffDef for indicating whether clefs, keysigs,...
Definition: setscoredeffunctor.h:478
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:491
This class represents a MEI staffDef.
Definition: staffdef.h:37
This class represents a MEI staffGrp.
Definition: staffgrp.h:39
This class represents a staff in a laid-out score (Doc).
Definition: staff.h:110
This class represents a system in a laid-out score (Doc).
Definition: system.h:36