Verovio
Source code documentation
trill.h
1 // Name: trill.h
3 // Author: Klaus Rettinghaus
4 // Created: 2017
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_TRILL_H__
9 #define __VRV_TRILL_H__
10 
11 #include "atts_cmn.h"
12 #include "atts_cmnornaments.h"
13 #include "atts_externalsymbols.h"
14 #include "controlelement.h"
15 #include "timeinterface.h"
16 
17 namespace vrv {
18 
19 //----------------------------------------------------------------------------
20 // Trill
21 //----------------------------------------------------------------------------
22 
26 class Trill : public ControlElement,
27  public TimeSpanningInterface,
28  public AttEnclosingChars,
29  public AttExtender,
30  public AttExtSymAuth,
31  public AttExtSymNames,
32  public AttLineRend,
33  public AttNNumberLike,
34  public AttOrnamentAccid,
35  public AttPlacementRelStaff {
36 public:
42  Trill();
43  virtual ~Trill();
44  Object *Clone() const override { return new Trill(*this); }
45  void Reset() override;
46  std::string GetClassName() const override { return "trill"; }
48 
53  TimePointInterface *GetTimePointInterface() override { return vrv_cast<TimePointInterface *>(this); }
54  const TimePointInterface *GetTimePointInterface() const override
55  {
56  return vrv_cast<const TimePointInterface *>(this);
57  }
58  TimeSpanningInterface *GetTimeSpanningInterface() override { return vrv_cast<TimeSpanningInterface *>(this); }
59  const TimeSpanningInterface *GetTimeSpanningInterface() const override
60  {
61  return vrv_cast<const TimeSpanningInterface *>(this);
62  }
64 
68  char32_t GetTrillGlyph() const;
69 
73  std::pair<char32_t, char32_t> GetEnclosingGlyphs() const;
74 
75  //----------//
76  // Functors //
77  //----------//
78 
83  FunctorCode Accept(Functor &functor) override;
84  FunctorCode Accept(ConstFunctor &functor) const override;
85  FunctorCode AcceptEnd(Functor &functor) override;
86  FunctorCode AcceptEnd(ConstFunctor &functor) const override;
88 
89 protected:
90  //
91 private:
92  //
93 public:
94  //
95 private:
96  //
97 };
98 
99 } // namespace vrv
100 
101 #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:35
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class represents a basic object.
Definition: object.h:64
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
This class models the MEI <trill> element.
Definition: trill.h:35
char32_t GetTrillGlyph() const
Get the SMuFL glyph for the trill based on glyph.num.
std::pair< char32_t, char32_t > GetEnclosingGlyphs() const
Retrieve parentheses / brackets from the enclose attribute.
FunctorCode Accept(Functor &functor) override
Interface for class functor visitation.
void Reset() override
Virtual reset method.
Object * Clone() const override
Method call for copying child classes.
Definition: trill.h:44