8 #ifndef __VRV_TUPLET_H__
9 #define __VRV_TUPLET_H__
12 #include "atts_shared.h"
13 #include "atts_visual.h"
14 #include "layerelement.h"
22 enum class MelodicDirection { None, Up, Down };
31 public AttDurationRatio,
32 public AttNumberPlacement,
43 void Reset()
override;
44 std::string GetClassName()
const override {
return "tuplet"; }
56 void AddChild(Object *
object)
override;
61 LayerElement *GetDrawingLeft() {
return m_drawingLeft; }
63 const LayerElement *GetDrawingLeft()
const {
return m_drawingLeft; }
64 void SetDrawingLeft(LayerElement *drawingLeft) { m_drawingLeft = drawingLeft; }
65 LayerElement *GetDrawingRight() {
return m_drawingRight; }
66 const LayerElement *GetDrawingRight()
const {
return m_drawingRight; }
67 void SetDrawingRight(LayerElement *drawingRight) { m_drawingRight = drawingRight; }
68 data_STAFFREL_basic GetDrawingBracketPos()
const {
return m_drawingBracketPos; }
69 void SetDrawingBracketPos(data_STAFFREL_basic bracketPos) { m_drawingBracketPos = bracketPos; }
70 data_STAFFREL_basic GetDrawingNumPos()
const {
return m_drawingNumPos; }
71 void SetDrawingNumPos(data_STAFFREL_basic numPos) { m_drawingNumPos = numPos; }
77 Beam *GetBracketAlignedBeam() {
return m_bracketAlignedBeam; }
79 const Beam *GetBracketAlignedBeam()
const {
return m_bracketAlignedBeam; }
80 void SetBracketAlignedBeam(Beam *alignedBeam) { m_bracketAlignedBeam = alignedBeam; }
81 Beam *GetNumAlignedBeam() {
return m_numAlignedBeam; }
82 const Beam *GetNumAlignedBeam()
const {
return m_numAlignedBeam; }
83 void SetNumAlignedBeam(Beam *alignedBeam) { m_numAlignedBeam = alignedBeam; }
89 const std::set<const FloatingCurvePositioner *> &GetInnerSlurs()
const {
return m_innerSlurs; }
91 void AddInnerSlur(
const FloatingCurvePositioner *slur) { m_innerSlurs.insert(slur); }
92 void ResetInnerSlurs() { m_innerSlurs.clear(); }
130 FunctorCode
Accept(Functor &functor)
override;
132 FunctorCode
Accept(ConstFunctor &functor)
const override;
133 FunctorCode AcceptEnd(Functor &functor)
override;
134 FunctorCode AcceptEnd(ConstFunctor &functor)
const override;
141 void FilterList(ListOfConstObjects &childList)
const override;
152 LayerElement *m_drawingLeft;
157 LayerElement *m_drawingRight;
159 data_STAFFREL_basic m_drawingBracketPos;
161 data_STAFFREL_basic m_drawingNumPos;
163 Beam *m_bracketAlignedBeam;
165 Beam *m_numAlignedBeam;
167 std::set<const FloatingCurvePositioner *> m_innerSlurs;