Verovio
Source code documentation
btrem.h
1 // Name: btrem.h
3 // Author: Laurent Pugin
4 // Created: 2015
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_BTREM_H__
9 #define __VRV_BTREM_H__
10 
11 #include "atts_cmn.h"
12 #include "layerelement.h"
13 
14 namespace vrv {
15 
16 //----------------------------------------------------------------------------
17 // BTrem (bowed tremolo)
18 //----------------------------------------------------------------------------
19 
23 class BTrem : public LayerElement,
24  public AttNumbered,
25  public AttNumberPlacement,
26  public AttTremForm,
27  public AttTremMeasured {
28 public:
33  BTrem();
35  virtual ~BTrem();
36  Object *Clone() const override { return new BTrem(*this); }
37  void Reset() override;
38  std::string GetClassName() const override { return "bTrem"; }
40 
45  bool IsSupportedChild(ClassId classId) override;
46 
50  data_STEMMODIFIER GetDrawingStemMod() const override;
51 
55  data_DURATION CalcIndividualNoteDuration() const;
56 
57  //----------//
58  // Functors //
59  //----------//
60 
64  FunctorCode Accept(Functor &functor) override;
66  FunctorCode Accept(ConstFunctor &functor) const override;
67  FunctorCode AcceptEnd(Functor &functor) override;
68  FunctorCode AcceptEnd(ConstFunctor &functor) const override;
70 
71 private:
72  //
73 public:
74  //
75 private:
76  //
77 };
78 
79 } // namespace vrv
80 
81 #endif
vrv::BTrem::Clone
Object * Clone() const override
Method call for copying child classes.
Definition: btrem.h:36
vrv::Object
This class represents a basic object.
Definition: object.h:59
vrv::BTrem
This class models the MEI <bTrem> element.
Definition: btrem.h:23
vrv::BTrem::Reset
void Reset() override
Reset the object, that is 1) removing all children and 2) resetting all attributes.
vrv::BTrem::IsSupportedChild
bool IsSupportedChild(ClassId classId) override
Add an element (a note or a chord) to a fTrem.
vrv::BTrem::GetDrawingStemMod
data_STEMMODIFIER GetDrawingStemMod() const override
Get stem mod if encoded explicitly, or determine based on duration of bTrem and underlying elements.
vrv::BTrem::Accept
FunctorCode Accept(Functor &functor) override
Interface for class functor visitation.
vrv::LayerElement
This class is a base class for the Layer (<layer>) content.
Definition: layerelement.h:46
vrv::BTrem::CalcIndividualNoteDuration
data_DURATION CalcIndividualNoteDuration() const
Calculate the duration of an individual note in a measured tremolo.