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();
156 const std::set<std::tuple<int, int, data_STAFFREL>> &GetLyricGroupPlaces()
158 this->PrepareLyricElementTracks();
159 return m_lyricGroupPlaces;
166 FunctorCode VisitLayer(
const Layer *layer)
override;
167 FunctorCode VisitRefrain(
const Refrain *refrain)
override;
168 FunctorCode VisitVerse(
const Verse *verse)
override;
178 void PrepareLyricElementTracks();
179 void CollectLyricElement(
const LyricElement *lyricElement);
186 std::vector<const LyricElement *> m_lyricElements;
187 bool m_lyricElementTracksPrepared =
false;
189 std::map<std::tuple<int, int, int, std::string>,
int> m_voltaTracks;
190 std::map<std::tuple<int, int, int>,
int> m_nextVoltaTrack;
192 std::map<std::tuple<int, int, int>, std::vector<const LyricElement *>> m_lyricElementGroups;
193 std::set<std::tuple<int, int, int>> m_directSylTrackGroups;
195 std::set<std::tuple<int, int, data_STAFFREL>> m_lyricGroupPlaces;
224 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:205
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: miscfunctor.h:218
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