MUSX Document Model
Loading...
Searching...
No Matches
musx::dom::details::TieAlterBase Class Reference

Base class for tie alteration properties. (Used for both ties and tie ends.) More...

#include <Details.h>

+ Inheritance diagram for musx::dom::details::TieAlterBase:

Public Types

enum class  ConnectionType {
  None , EntryLeftNoteCenter , EntryRightNoteCenter , NoteLeftNoteCenter ,
  NoteRightNoteCenter , NoteCenterNoteBottom , NoteCenterNoteTop , DotRightNoteCenter ,
  AccidentalLeftNoteCenter , EntryCenterNoteBottom , EntryCenterNoteTop , NoteLeftNoteBottom ,
  NoteRightNoteBottom , NoteLeftNoteTop , NoteRightNoteTop , SystemEnd ,
  SystemStart
}
 Defines tie connection points for start and end attachment locations. More...
 
enum class  DirectionContext { None , Under , Over }
 Indicates the placement context of end- and control-point adjustments. More...
 
- Public Types inherited from musx::dom::Base
enum class  ShareMode { All , Partial , None }
 Describes how this instance is shared between part and score. More...
 
using SharedNodes = std::set< std::string >
 The container type for shared nodes.
 

Public Member Functions

 TieAlterBase (const DocumentWeakPtr &document, Cmper partId, Base::ShareMode shareMode, EntryNumber entnum, Inci inci)
 Constructor function.
 
NoteNumber getNoteId () const override
 Required virtual function that returns the note id.
 
- Public Member Functions inherited from musx::dom::EntryDetailsBase
EntryNumber getEntryNumber () const
 Gets the entnum key value.
 
- Public Member Functions inherited from musx::dom::DetailsBase
 DetailsBase (const DetailsBase &)=default
 explicit default copy constructor
 
 DetailsBase (DetailsBase &&) noexcept=default
 explicit default move constructor
 
Cmper getCmper1 () const
 Gets the cmper1 key value.
 
Cmper getCmper2 () const
 Gets the cmper2 key value.
 
std::optional< IncigetInci () const
 Gets the optional array index (inci).
 
Cmper getRequestedPartId () const
 If this instance was retrieved from an object pool, it contains the part ID that was used to retrieve it. If this value is different than getSourcePartId, then this instance is a copy of the pool instance.
 
- Public Member Functions inherited from musx::dom::Base
virtual ~Base () noexcept(false)=default
 Virtual destructor for polymorphic behavior.
 
DocumentPtr getDocument () const
 Gets a reference to the Document.
 
Cmper getSourcePartId () const
 Gets the source partId for this instance. If an instance is fully shared with the score, the source is SCORE_PARTID. If an instance is partially shared or non shared, the source is the ID of the part that sourced it.
 
ShareMode getShareMode () const
 Gets the sharing mode for this instance.
 
const SharedNodesgetUnlinkedNodes () const
 Gets the unlinked nodes for this instance. (Only populated for ShareMode::Partial)
 
void addUnlinkedNode (const std::string &nodeName)
 Adds a shared node for this instance.
 
virtual void integrityCheck (const std::shared_ptr< Base > &ptrToThis)
 Allows a class to determine if it has been properly contructed by the factory and fix issues that it can, such as creating default instances of contained classes.
 
virtual bool requireAllFields () const
 Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class.
 

Static Public Member Functions

static const xml::XmlElementArray< TieAlterBase > & xmlMappingArray ()
 Required for musx::factory::FieldPopulator.
 

Public Attributes

NoteNumber noteId {}
 Note ID associated with the tie alteration. (xml node is <noteID>)
 
Evpu xStart {}
 Horizontal start position of the tie.
 
Evpu xEnd {}
 Horizontal end position of the tie.
 
Evpu yStart {}
 Vertical start position of the tie.
 
Evpu yEnd {}
 Vertical end position of the tie.
 
bool outerLocal {}
 Local setting for "Outer Tie".
 
bool outerOn {}
 Enable "Outer" placement.
 
bool afterSingleDotLocal {}
 Local setting for "After Single Dot".
 
bool afterSingleDotOn {}
 Enable "After Single Dot".
 
bool afterMultiDotsLocal {}
 Local setting for "After Multiple Dots".
 
bool afterMultiDotsOn {}
 Enable "After Multiple Dots".
 
bool shiftForSecondsLocal {}
 Local setting for "Shift for Seconds".
 
bool shiftForSecondsOn {}
 Enable "Shift for Seconds".
 
bool beforeSingleAcciLocal {}
 Local setting for "Before Single Accidental".
 
bool beforeSingleAcciOn {}
 Enable "Before Single Accidental".
 
bool down {}
 Downward tie. Only applicable if freezeDirection is true. (False freezes the tie up.)
 
bool breakTimeLocal {}
 Local setting for "Break at Time Signature".
 
bool breakTimeOn {}
 Enable "Break at Time Signature".
 
bool breakKeyLocal {}
 Local setting for "Break at Key Signature".
 
bool breakKeyOn {}
 Enable "Break at Key Signature".
 
bool freezeDirection {}
 Freeze tie direction. (xml node is <freeze>)
 
bool noSpecialArc {}
 Inverse of "Avoid Staff Lines". (See options::TieOptions for more information about the naming.)
 
bool stPtAdjOn {}
 Enable start point adjustment.
 
ConnectionType stPtEntCnct {}
 Start point must match this connection type for xStart & yStart to apply.
 
DirectionContext stPtContext {}
 Start point must match this direction context for xStart & yStart to apply.
 
bool enPtAdjOn {}
 Enable end point adjustment.
 
ConnectionType enPtEntCnct {}
 End point must match this connection type for xEnd & yEnd to apply.
 
DirectionContext enPtContext {}
 End point must match this direction context for xEnd & yEnd to apply.
 
Evpu insetRatio1 {}
 Inset ratio for the first control point.
 
Evpu height1 {}
 Height of the first control point.
 
Evpu insetRatio2 {}
 Inset ratio for the second control point.
 
Evpu height2 {}
 Height of the second control point.
 
bool ctlPtAdjOn {}
 Enable control point adjustment.
 
bool ctlPtFixed {}
 

Additional Inherited Members

- Protected Member Functions inherited from musx::dom::NoteDetailsBase
 EntryDetailsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, EntryNumber entnum, std::optional< Inci > inci=std::nullopt)
 Constructor for NoteDetailsBase uses EntryDetailsBase constructor.
 
- Protected Member Functions inherited from musx::dom::EntryDetailsBase
 EntryDetailsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, EntryNumber entnum, std::optional< Inci > inci=std::nullopt)
 Constructs a EntryDetailsBase object.
 
- Protected Member Functions inherited from musx::dom::DetailsBase
 DetailsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper1, Cmper cmper2, std::optional< Inci > inci=std::nullopt)
 Constructs a DetailsBase object.
 
DetailsBaseoperator= (const DetailsBase &other)
 Assignment operator delegates to base, preserving OthersBase state.
 
DetailsBaseoperator= (DetailsBase &&other) noexcept
 Assignment operator delegates to base, preserving OthersBase state.
 
- Protected Member Functions inherited from musx::dom::Base
 Base (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode)
 Constructs the base class.
 
 Base (const Base &)=default
 explicit default copy constructor
 
 Base (Base &&) noexcept=default
 explicit default move constructor
 
Baseoperator= (const Base &)
 no-op copy assignment operator allows subclasses to copy their values.
 
Baseoperator= (Base &&) noexcept
 no-op move assignment operator allows subclasses to move their values.
 

Detailed Description

Base class for tie alteration properties. (Used for both ties and tie ends.)

Member Enumeration Documentation

◆ ConnectionType

Defines tie connection points for start and end attachment locations.

These values correspond to Finale’s internal tie connection codes, represented in XML by tags such as <stPtEntCnct>noteCenterNoteTop</stPtEntCnct>.

Enumerator
None 

No connection.

EntryLeftNoteCenter 

Left of entry, center of note.

EntryRightNoteCenter 

Right of entry, center of note.

NoteLeftNoteCenter 

Left of note, center of note.

NoteRightNoteCenter 

Right of note, center of note.

NoteCenterNoteBottom 

Horizontal center of note, bottom of note.

NoteCenterNoteTop 

Horizontal center of note, top of note.

DotRightNoteCenter 

Right of dot(s), center of note.

AccidentalLeftNoteCenter 

Left of accidental, center of note.

EntryCenterNoteBottom 

Horizontal center of entry, bottom of note.

EntryCenterNoteTop 

Horizontal center of entry, top of note.

NoteLeftNoteBottom 

Left of note, bottom of note.

NoteRightNoteBottom 

Right of note, bottom of note.

NoteLeftNoteTop 

Left of note, top of note.

NoteRightNoteTop 

Right of note, top of note.

SystemEnd 

System end (for the right side across systems)

SystemStart 

System start (for the left side across systems)

◆ DirectionContext

Indicates the placement context of end- and control-point adjustments.

Enumerator
None 

No context specified.

Under 

The tie is positioned below (e.g., tie under)

Over 

The tie is positioned above (e.g., tie over)

Member Function Documentation

◆ getNoteId()

NoteNumber musx::dom::details::TieAlterBase::getNoteId ( ) const
inlineoverridevirtual

Required virtual function that returns the note id.

Implements musx::dom::NoteDetailsBase.

Member Data Documentation

◆ ctlPtFixed

bool musx::dom::details::TieAlterBase::ctlPtFixed {}

Indicates that the inset values are fixed Evpu rather than percentages. This is a legacy compatibility setting and cannot be set in the tie alteration UI.