8 #ifndef __VRV_MISCFUNCTOR_H__
9 #define __VRV_MISCFUNCTOR_H__
43 FunctorCode VisitLayerElement(
LayerElement *layerElement)
override;
44 FunctorCode VisitMeasure(
Measure *measure)
override;
45 FunctorCode VisitPage(
Page *page)
override;
46 FunctorCode VisitStaff(
Staff *staff)
override;
47 FunctorCode VisitSurface(
Surface *surface)
override;
48 FunctorCode VisitSystem(
System *system)
override;
49 FunctorCode VisitZone(
Zone *zone)
override;
88 void ExcludeClasses(
const std::vector<ClassId> &excludeClasses) { m_excludeClasses = excludeClasses; }
94 int GetMinLeft()
const {
return m_minLeft; }
95 int GetMaxRight()
const {
return m_maxRight; }
102 FunctorCode VisitObject(
const Object *
object)
override;
116 std::vector<ClassId> m_excludeClasses;
147 this->PrepareLyricElementTracks();
150 const IntTree &GetVerseTree();
157 FunctorCode VisitLayer(
const Layer *layer)
override;
158 FunctorCode VisitRefrain(
const Refrain *refrain)
override;
159 FunctorCode VisitVerse(
const Verse *verse)
override;
169 void PrepareLyricElementTracks();
170 void CollectLyricElement(
const LyricElement *lyricElement);
177 std::vector<const LyricElement *> m_lyricElements;
178 bool m_lyricElementTracksPrepared =
false;
180 std::map<std::tuple<int, int, int, std::string>,
int> m_voltaTracks;
181 std::map<std::tuple<int, int, int>,
int> m_nextVoltaTrack;
183 std::map<std::tuple<int, int, int>, std::vector<const LyricElement *>> m_lyricElementGroups;
184 std::set<std::tuple<int, int, int>> m_directSylTrackGroups;
213 FunctorCode VisitObject(
Object *
object)
override;
This class applies the Pixel Per Unit factor of the page to its elements.
Definition: miscfunctor.h:24
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: miscfunctor.h:37
This abstract class is the base class for all const functors.
Definition: functor.h:126
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class retrieves the minimum left and maximum right for an alignment.
Definition: miscfunctor.h:70
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: miscfunctor.h:83
This class builds trees of ints with staff/layer and staff/layer/verse/volta-track numbers.
Definition: miscfunctor.h:126
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: miscfunctor.h:139
This class is a base class for the Layer (<layer>) content.
Definition: layerelement.h:51
This class represents a measure in a page-based score (Doc).
Definition: measure.h:46
This class represents a basic object.
Definition: object.h:66
This class represents a page in a laid-out score (Doc).
Definition: page.h:31
This class reorders elements by x-position.
Definition: miscfunctor.h:194
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: miscfunctor.h:207
This class represents a staff in a laid-out score (Doc).
Definition: staff.h:110
Implements the surface element in MEI.
Definition: surface.h:30
This class represents a system in a laid-out score (Doc).
Definition: system.h:36
Implements the zone element in MEI.
Definition: zone.h:30
Generic int map recursive structure for storing hierachy of values For example, we want to process al...
Definition: vrvdef.h:437