8 #ifndef __VRV_OCTAVE_H__
9 #define __VRV_OCTAVE_H__
12 #include "atts_shared.h"
13 #include "controlelement.h"
14 #include "timeinterface.h"
29 public AttLineRendBase,
30 public AttNNumberLike,
31 public AttOctaveDisplacement {
42 std::string GetClassName()
const override {
return "octave"; }
49 TimePointInterface *GetTimePointInterface()
override {
return vrv_cast<TimePointInterface *>(
this); }
50 const TimePointInterface *GetTimePointInterface()
const override
52 return vrv_cast<const TimePointInterface *>(
this);
54 TimeSpanningInterface *GetTimeSpanningInterface()
override {
return vrv_cast<TimeSpanningInterface *>(
this); }
55 const TimeSpanningInterface *GetTimeSpanningInterface()
const override
57 return vrv_cast<const TimeSpanningInterface *>(
this);
66 void SetDrawingExtenderX(
int left,
int right);
86 const BoundingBox *horizOverlappingBBox,
bool contentTop)
const override;
98 FunctorCode AcceptEnd(
Functor &functor)
override;
99 FunctorCode AcceptEnd(
ConstFunctor &functor)
const override;
112 std::map<const FloatingPositioner *, std::pair<int, int>> m_drawingExtenderX;
This class represents a basic object in the layout domain.
Definition: boundingbox.h:32
This abstract class is the base class for all const functors.
Definition: functor.h:126
This class represents elements appearing within a measure.
Definition: controlelement.h:33
This class is a hold the data and corresponds to the model of a MVC design pattern.
Definition: doc.h:41
This class represents a basic object in the layout domain.
Definition: floatingobject.h:165
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class represents a basic object.
Definition: object.h:61
This class models the MEI <octave> element.
Definition: octave.h:31
FunctorCode Accept(Functor &functor) override
Interface for class functor visitation.
void ResetDrawingExtenderX()
Store the horizontal extender line coordinates.
std::pair< int, bool > GetVerticalContentBoundaryRel(const Doc *doc, const FloatingPositioner *positioner, const BoundingBox *horizOverlappingBBox, bool contentTop) const override
Determine the vertical content boundary.
void Reset() override
Virtual reset method.
Object * Clone() const override
Method call for copying child classes.
Definition: octave.h:40
char32_t GetOctaveGlyph(bool withAltaBassa) const
Get the SMuFL glyph.
int GetLineWidth(const Doc *doc, int unit) const
Calculate the octave line width.
This class is an interface for elements having a single time point, such as tempo,...
Definition: timeinterface.h:39
This class is an interface for spanning elements, such as slur, hairpin, etc.
Definition: timeinterface.h:145