Verovio
Source code documentation
fing.h
1 // Name: fing.h
3 // Author: Andriy Makarchuk
4 // Created: 2020
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_FING_H__
9 #define __VRV_FING_H__
10 
11 #include "atts_cmn.h"
12 #include "controlelement.h"
13 #include "textdirinterface.h"
14 #include "timeinterface.h"
15 
16 namespace vrv {
17 
18 //----------------------------------------------------------------------------
19 // Fing (fingering)
20 //----------------------------------------------------------------------------
21 
25 class Fing : public ControlElement, public TimePointInterface, public TextDirInterface, public AttNNumberLike {
26 public:
32  Fing();
33  virtual ~Fing();
34  Object *Clone() const override { return new Fing(*this); }
35  void Reset() override;
36  std::string GetClassName() const override { return "fing"; }
38 
43  TextDirInterface *GetTextDirInterface() override { return vrv_cast<TextDirInterface *>(this); }
44  const TextDirInterface *GetTextDirInterface() const override { return vrv_cast<const TextDirInterface *>(this); }
45  TimePointInterface *GetTimePointInterface() override { return vrv_cast<TimePointInterface *>(this); }
46  const TimePointInterface *GetTimePointInterface() const override
47  {
48  return vrv_cast<const TimePointInterface *>(this);
49  }
51 
56  bool IsSupportedChild(ClassId classId) override;
57 
61  bool IsCloserToStaffThan(const FloatingObject *other, data_STAFFREL drawingPlace) const override;
62 
63  //----------//
64  // Functors //
65  //----------//
66 
71  FunctorCode Accept(Functor &functor) override;
72  FunctorCode Accept(ConstFunctor &functor) const override;
73  FunctorCode AcceptEnd(Functor &functor) override;
74  FunctorCode AcceptEnd(ConstFunctor &functor) const override;
76 
77 protected:
78  //
79 private:
80  //
81 public:
82  //
83 private:
84  //
85 };
86 
87 } // namespace vrv
88 
89 #endif // __VRV_FING_H__
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 <fing> element.
Definition: fing.h:25
bool IsSupportedChild(ClassId classId) override
Add an element (text, rend) to a fing.
bool IsCloserToStaffThan(const FloatingObject *other, data_STAFFREL drawingPlace) const override
Check whether the current object must be positioned closer to the staff than the other.
Object * Clone() const override
Method call for copying child classes.
Definition: fing.h:34
void Reset() override
Virtual reset method.
FunctorCode Accept(Functor &functor) override
Interface for class functor visitation.
This class represents elements appearing within a measure.
Definition: floatingobject.h:28
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 implementing a text directive, such as <dir>,...
Definition: textdirinterface.h:26
This class is an interface for elements having a single time point, such as tempo,...
Definition: timeinterface.h:39