MUSX Document Model
|
Beam alteration for downstem secondary beams. More...
#include <Details.h>
Public Member Functions | |
SecondaryBeamAlterationsDownStem (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, EntryNumber entnum, Inci inci) | |
Constructor. | |
![]() | |
BeamAlterations (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, EntryNumber entnum, std::optional< Inci > inci=std::nullopt) | |
Constructor. | |
Efix | calcEffectiveBeamWidth () const |
Calculates the effective beam width by returning either the default width or the width override value specified by beamWidth. | |
bool | isActive () const |
Returns whether this beam alteration record is active. Its flattenStyle must match the value in options::BeamOptions. | |
![]() | |
EntryNumber | getEntryNumber () const |
Gets the entnum key value. | |
![]() | |
Cmper | getCmper1 () const |
Gets the cmper1 key value. | |
Cmper | getCmper2 () const |
Gets the cmper2 key value. | |
std::optional< Inci > | getInci () const |
Gets the optional array index (inci ). | |
![]() | |
virtual | ~Base () noexcept(false)=default |
Virtual destructor for polymorphic behavior. | |
DocumentPtr | getDocument () const |
Gets a reference to the Document. | |
virtual Cmper | getPartId () const |
Gets the partId for this instance (or SCORE_PARTID for score) | |
ShareMode | getShareMode () const |
Gets the sharing mode for this instance. | |
const SharedNodes & | getUnlinkedNodes () 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 () |
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 bool | calcIsFeatheredBeam (const EntryInfoPtr &entryInfo, Evpu &outLeftY, Evpu &outRightY) |
Calculates if the input entry starts a feathered beam and returns information about it. | |
![]() | |
template<typename T , std::enable_if_t< std::is_base_of_v< BeamAlterations, T >, int > = 0> | |
static void | calcAllActiveFlags (const DocumentPtr &document) |
Used by the factory to set active indicators. | |
static const xml::XmlElementArray< BeamAlterations > & | xmlMappingArray () |
Required for musx::factory::FieldPopulator. | |
Static Public Attributes | |
static constexpr std::string_view | XmlNodeName = "beamAltSecDownStem" |
The XML node name for this type. | |
Additional Inherited Members | |
![]() | |
using | FlattenStyle = options::BeamOptions::FlattenStyle |
see options::BeamOptions::FlattenStyle | |
![]() | |
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. | |
![]() | |
Evpu | leftOffsetH {} |
Horizontal adjustment of the beam start. (xml node is <xAdd> ) | |
Evpu | leftOffsetY {} |
Vertical adjustment of the beam start. (xml node is <yAdd> ) | |
Evpu | rightOffsetH {} |
Horizontal adjustment of the beam end. (xml node is <sxAdd> ) | |
Evpu | rightOffsetY {} |
Vertical adjustment of the beam end. (xml node is <syAdd> ) | |
Edu | dura {} |
For secondary beams, specifies the duration corresponding to the secondary beam (16th beam is 256, 32nd beam is 128, etc.) | |
FlattenStyle | flattenStyle {} |
Beam shaping style (xml node is <context> ). | |
Efix | beamWidth {} |
The calcEffectiveBeamWidth method handles this for you. | |
![]() | |
EntryDetailsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, EntryNumber entnum, std::optional< Inci > inci=std::nullopt) | |
Constructs a EntryDetailsBase object. | |
![]() | |
DetailsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper1, Cmper cmper2, std::optional< Inci > inci=std::nullopt) | |
Constructs a DetailsBase object. | |
![]() | |
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 | |
Base & | operator= (const Base &) |
no-op copy assignment operator allows subclasses to copy their values. | |
Base & | operator= (Base &&) noexcept |
no-op move assignment operator allows subclasses to move their values. | |
![]() | |
template<typename SecondaryBeamType > | |
static bool | calcIsFeatheredBeamImpl (const EntryInfoPtr &entryInfo, Evpu &outLeftY, Evpu &outRightY) |
Implementation of SecondaryBeamAlterationsDownStem::calcIsFeatheredBeam and SecondaryBeamAlterationsUpStem::calcIsFeatheredBeam. | |
Beam alteration for downstem secondary beams.
Entry::stemDetail is set if the entry has any beam extensions.
|
inlineexplicit |
Constructor.
document | A weak pointer to the associated document. |
partId | The part this is for. |
shareMode | The sharing mode. |
entnum | The entry number this applies to. |
inci | The incident, since each secondary beam has a record. They are in no guaranteed order. Use the BeamAlterations::dura value to determine which beam this pertains to. |
|
inlinestatic |
Calculates if the input entry starts a feathered beam and returns information about it.
[in] | entryInfo | The entry info to search. |
[out] | outLeftY | The height of the left side of the feathered beam |
[out] | outRightY | The height of the right side of the feathered beam |