11 #include "controlelement.h"
12 #include "timeinterface.h"
38 void Reset()
override;
39 std::string GetClassName()
const override {
return "tie"; }
45 TimePointInterface *GetTimePointInterface()
override {
return vrv_cast<TimePointInterface *>(
this); }
47 const TimePointInterface *GetTimePointInterface()
const override
49 return vrv_cast<const TimePointInterface *>(
this);
51 TimeSpanningInterface *GetTimeSpanningInterface()
override {
return vrv_cast<TimeSpanningInterface *>(
this); }
52 const TimeSpanningInterface *GetTimeSpanningInterface()
const override
54 return vrv_cast<const TimeSpanningInterface *>(
this);
58 virtual bool CalculatePosition(
59 const Doc *doc,
const Staff *staff,
int x1,
int x2,
int spanningType, Point bezier[4]);
65 curvature_CURVEDIR drawingCurveDir,
int initialX,
bool isStartPoint)
const;
74 FunctorCode
Accept(Functor &functor)
override;
76 FunctorCode
Accept(ConstFunctor &functor)
const override;
77 FunctorCode AcceptEnd(Functor &functor)
override;
78 FunctorCode AcceptEnd(ConstFunctor &functor)
const override;
83 bool AdjustEnharmonicTies(
const Doc *doc,
const FloatingCurvePositioner *curve, Point bezier[4],
84 const Note *startNote,
const Note *endNote, curvature_CURVEDIR drawingCurveDir)
const;
87 bool CalculateXPosition(
const Doc *doc,
const Staff *staff,
const Chord *startParentChord,
88 const Chord *endParentChord,
int spanningType,
bool isOuterChordNote, Point &startPoint, Point &endPoint,
89 curvature_CURVEDIR drawingCurveDir)
const;
93 curvature_CURVEDIR GetPreferredCurveDirection(
const Layer *layer,
const Note *note,
const Chord *startParentChord,
94 data_STEMDIRECTION noteStemDir,
bool isAboveStaffCenter)
const;
97 void UpdateTiePositioning(
const FloatingCurvePositioner *curve, Point bezier[4],
const LayerElement *durElement,
98 const Note *startNote,
int height, curvature_CURVEDIR drawingCurveDir)
const;