8 #ifndef __VRV_SETSCOREDEFFUNCTOR_H__
9 #define __VRV_SETSCOREDEFFUNCTOR_H__
42 FunctorCode VisitStaffDef(
StaffDef *staffDef)
override;
90 FunctorCode VisitPageEnd(
Page *page)
override;
102 std::list<ScoreOrPartElement *> m_scores;
132 bool HasOssia()
const {
return m_hasOssia; }
138 FunctorCode VisitClef(Clef *clef)
override;
139 FunctorCode VisitKeySig(KeySig *keySig)
override;
140 FunctorCode VisitLayer(Layer *layer)
override;
141 FunctorCode VisitMeasure(Measure *measure)
override;
142 FunctorCode VisitMensur(Mensur *mensur)
override;
143 FunctorCode VisitOssia(Ossia *ossia)
override;
144 FunctorCode VisitPage(Page *page)
override;
145 FunctorCode VisitProport(Proport *proport)
override;
146 FunctorCode VisitScoreOrPartElement(ScoreOrPartElement *scoreOrPart)
override;
147 FunctorCode VisitScoreDef(ScoreDef *scoreDef)
override;
148 FunctorCode VisitScoreDefEnd(ScoreDef *scoreDef)
override;
149 FunctorCode VisitStaff(Staff *staff)
override;
150 FunctorCode VisitStaffDef(StaffDef *staffDef)
override;
151 FunctorCode VisitStaffGrp(StaffGrp *staffGrp)
override;
152 FunctorCode VisitSystem(System *system)
override;
153 FunctorCode VisitSystemEnd(System *system)
override;
164 ScoreOrPartElement *m_currentScore;
166 ScoreDef *m_currentScoreDef;
168 StaffDef *m_currentStaffDef;
170 ScoreDef m_upcomingScoreDef;
172 Measure *m_previousMeasure;
174 System *m_currentSystem;
182 MapOfOssiaStaffNs m_ossiasAbove;
184 MapOfOssiaStaffNs m_ossiasBelow;
216 FunctorCode VisitMeasure(
Measure *measure)
override;
218 FunctorCode VisitStaff(
Staff *staff)
override;
219 FunctorCode VisitStaffGrpEnd(
StaffGrp *staffGrp)
override;
220 FunctorCode VisitSystem(
System *system)
override;
221 FunctorCode VisitSystemEnd(
System *system)
override;
236 bool m_firstScoreDef;
275 FunctorCode VisitLayer(
Layer *layer)
override;
276 FunctorCode VisitStaff(
Staff *staff)
override;
293 std::vector<int> m_staffNs;
322 FunctorCode VisitGrpSym(
GrpSym *grpSym)
override;
323 FunctorCode VisitSystem(
System *system)
override;
362 FunctorCode VisitClef(
Clef *clef)
override;
363 FunctorCode VisitLayer(
Layer *layer)
override;
364 FunctorCode VisitMeasure(
Measure *measure)
override;
365 FunctorCode VisitMeasureEnd(
Measure *measure)
override;
366 FunctorCode VisitOssia(
Ossia *ossia)
override;
367 FunctorCode VisitStaff(
Staff *staff)
override;
368 FunctorCode VisitStaffEnd(
Staff *staff)
override;
369 FunctorCode VisitSystem(
System *system)
override;
378 const StaffDef *GetPreviousStaffDef(
Ossia *ossia,
int staffN);
386 Ossia *m_ossia = NULL;
387 std::map<int, StaffDef> m_staffDefs;
394 std::list<CurrentOssia> m_currentOssias;
396 std::list<CurrentOssia> m_previousOssias;
398 StaffDef m_upcomingStaffDef;
400 ScoreDef *m_currentScoreDef;
402 StaffDef *m_currentStaffDef;
404 bool m_layerOssiaStaffDef;
406 bool m_isFirstMeasure;
436 FunctorCode VisitKeySig(
KeySig *keySig)
override;
437 FunctorCode VisitLayer(
Layer *layer)
override;
438 FunctorCode VisitMeasure(
Measure *measure)
override;
439 FunctorCode VisitOssia(
Ossia *ossia)
override;
440 FunctorCode VisitPage(
Page *page)
override;
441 FunctorCode VisitStaff(
Staff *staff)
override;
442 FunctorCode VisitSystem(
System *system)
override;
459 enum StaffDefRedrawFlags {
463 REDRAW_METERSIG = 0x8,
464 REDRAW_METERSIGGRP = 0x10,
466 REDRAW_ALL = REDRAW_CLEF | REDRAW_KEYSIG | REDRAW_MENSUR | REDRAW_METERSIG | REDRAW_METERSIGGRP,
494 FunctorCode VisitStaffDef(
StaffDef *staffDef)
override;
This class stores a references of LayerElements for a staff.
Definition: horizontalaligner.h:298
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:40
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:197
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:210
This class sets the current scoreDef wherever needed.
Definition: setscoredeffunctor.h:114
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:127
This class sets the Page::m_score and Page::m_scoreEnd pointers.
Definition: setscoredeffunctor.h:71
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:84
This class prepares the group symbol starting and ending staffDefs for drawing.
Definition: setscoredeffunctor.h:303
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:316
This class prepares the ossia staffDefs for drawing.
Definition: setscoredeffunctor.h:343
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:356
This class unsets the initial scoreDef for each system and measure.
Definition: setscoredeffunctor.h:416
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:429
This class represents a <score> or a <part> in MEI.
Definition: scoreorpartelement.h:33
This class sets the cautionary scoreDef wherever needed.
Definition: setscoredeffunctor.h:250
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:269
void SetRestartStaffNs(const std::vector< int > &staffNs)
Set the list of staffNs in the scoreDef after the restart.
Definition: setscoredeffunctor.h:264
This class sets drawing flags for the StaffDef for indicating whether clefs, keysigs,...
Definition: setscoredeffunctor.h:475
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:488
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