Verovio
Source code documentation
fermata.h
1 // Name: fermata.h
3 // Author: Klaus Rettinghaus
4 // Created: 2016
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_FERMATA_H__
9 #define __VRV_FERMATA_H__
10 
11 #include "atts_cmn.h"
12 #include "atts_externalsymbols.h"
13 #include "atts_visual.h"
14 #include "controlelement.h"
15 #include "timeinterface.h"
16 
17 namespace vrv {
18 
19 //----------------------------------------------------------------------------
20 // Fermata
21 //----------------------------------------------------------------------------
22 
26 class Fermata : public ControlElement,
27  public TimePointInterface,
28  public AttEnclosingChars,
29  public AttExtSymAuth,
30  public AttExtSymNames,
31  public AttFermataVis,
32  public AttPlacementRelStaff {
33 public:
39  Fermata();
40  virtual ~Fermata();
41  Object *Clone() const override { return new Fermata(*this); }
42  void Reset() override;
43  std::string GetClassName() const override { return "fermata"; }
45 
50  TimePointInterface *GetTimePointInterface() override { return vrv_cast<TimePointInterface *>(this); }
51  const TimePointInterface *GetTimePointInterface() const override
52  {
53  return vrv_cast<const TimePointInterface *>(this);
54  }
56 
60  char32_t GetFermataGlyph() const;
61 
65  std::pair<char32_t, char32_t> GetEnclosingGlyphs() const;
66 
67  //----------------//
68  // Static methods //
69  //----------------//
70 
74  static data_VERTICALALIGNMENT GetVerticalAlignment(char32_t code);
75 
76  //----------//
77  // Functors //
78  //----------//
79 
84  FunctorCode Accept(Functor &functor) override;
85  FunctorCode Accept(ConstFunctor &functor) const override;
86  FunctorCode AcceptEnd(Functor &functor) override;
87  FunctorCode AcceptEnd(ConstFunctor &functor) const override;
89 
90 protected:
91  //
92 private:
93  //
94 public:
95  //
96 private:
97  //
98 };
99 
100 } // namespace vrv
101 
102 #endif
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 models the MEI <fermata> element.
Definition: fermata.h:32
std::pair< char32_t, char32_t > GetEnclosingGlyphs() const
Retrieve parentheses / brackets from the enclose attribute.
char32_t GetFermataGlyph() const
Get the SMuFL glyph for the fermata based on type, shape or glyph.num.
FunctorCode Accept(Functor &functor) override
Interface for class functor visitation.
static data_VERTICALALIGNMENT GetVerticalAlignment(char32_t code)
Retrieves the vertical alignment for the fermata SMuFL code.
Object * Clone() const override
Method call for copying child classes.
Definition: fermata.h:41
void Reset() override
Virtual reset method.
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 is an interface for elements having a single time point, such as tempo,...
Definition: timeinterface.h:39