28#include "musx/dom/Details.h"
29#include "musx/dom/Entries.h"
30#include "musx/dom/Others.h"
31#include "musx/util/Layout.h"
36enum class ArpeggioDirection
44enum class ArpeggioArrow
53enum class ArpeggioSpanType
62 ArpeggioSpanType
type{ArpeggioSpanType::Normal};
66 ArpeggioDirection
direction{ArpeggioDirection::Auto};
67 ArpeggioArrow
arrow{ArpeggioArrow::Auto};
69 [[nodiscard]] std::string
key()
const;
85std::optional<ArpeggioSpanCandidate> calcArpeggioSpanForAssignment(
92std::optional<ArpeggioSpanCandidate> calcNonArpeggioSpanForAssignment(
93 const dom::EntryInfoPtr& sourceEntry,
94 const dom::MusxInstance<dom::details::ArticulationAssign>& assign,
95 const ArpeggioSpanOptions& options = {});
98std::optional<ArpeggioSpanCandidate> calcNonArpeggioSpanForAssignment(
99 const dom::MusxInstance<dom::others::MeasureExprAssign>& assign,
100 const ArpeggioSpanOptions& options = {});
103std::optional<ArpeggioSpanCandidate> calcNonArpeggioSpanForSmartShape(
104 const dom::MusxInstance<dom::others::SmartShape>& smartShape,
105 const ArpeggioSpanOptions& options = {});
Wraps a frame of shared_ptr<const EntryInfo> and an index for per entry access. This class manages ow...
Definition Entries.h:553
@ Down
contour is curved downward (tips face up)
@ Up
contour is curved upward (tips face down)
std::shared_ptr< const T > MusxInstance
Defines the type of a musx instance stored in a pool.
Definition MusxInstance.h:40
@ None
Do not override the existing enharmonic state. (Default)
Provides information about the best analysis as to which articulation symbol in being used on this as...
Definition Details.h:118
Resolved arpeggio span for one articulation assignment.
Definition Arpeggio.h:61
ArpeggioSpanType type
Connector type for the resolved span.
Definition Arpeggio.h:62
dom::EntryInfoPtr bottomEntry
Chosen bottom entry for the arpeggio span.
Definition Arpeggio.h:65
ArpeggioDirection direction
Roll direction when known.
Definition Arpeggio.h:66
ArpeggioArrow arrow
Arrowhead state when known.
Definition Arpeggio.h:67
dom::EntryInfoPtr topEntry
Chosen top entry for the arpeggio span.
Definition Arpeggio.h:64
std::string key() const
Stable identity key for deduplicating equivalent span candidates.
Definition Arpeggio.cpp:33
dom::EntryInfoPtr sourceEntry
Entry that owns the articulation assignment.
Definition Arpeggio.h:63
Options controlling arpeggio span resolution.
Definition Arpeggio.h:75
bool constrainToSourceStaffOnly
Restrict matching to entries on the source staff only.
Definition Arpeggio.h:78
bool skipGraceEntries
Skip grace-note source entries and grace-note candidates.
Definition Arpeggio.h:77
bool includeHiddenEntries
Include hidden entries in candidate matching.
Definition Arpeggio.h:76
StaffOriginOffsetResolver staffOriginOffsetResolver
Optional caller-provided staff origin offset resolver. If unhandled, the system-staff proxy is used.
Definition Arpeggio.h:79