MUSX Document Model
|
Represents a center shape for a others::SmartShape that spans three or more measures. More...
#include <SmartShape.h>
Public Member Functions | |
CenterShape (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper shapeNum, Cmper centerShapeNum) | |
Constructor. | |
void | integrityCheck () override |
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. | |
bool | requireAllFields () const override |
ignore other fields because they are difficult to figure out | |
![]() | |
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. | |
Cmper | getPartId () const |
Gets the partId for this instance (or 0 for score) | |
std::shared_ptr< others::PartDefinition > | getPartDefinition () const |
Gets the others::PartDefinition corresponding to getPartId. | |
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. | |
Static Public Member Functions | |
static const xml::XmlElementArray< CenterShape > & | xmlMappingArray () |
Required for musx::factory::FieldPopulator. | |
Public Attributes | |
std::shared_ptr< others::SmartShape::EndPointAdjustment > | startBreakAdj |
Adjustment at the start break (xml: <startBreakAdj> ) | |
std::shared_ptr< others::SmartShape::EndPointAdjustment > | endBreakAdj |
Adjustment at the end break (xml: <endBreakAdj> ) | |
Static Public Attributes | |
static constexpr std::string_view | XmlNodeName = "centerShape" |
The XML node name for this type. | |
Additional Inherited Members | |
![]() | |
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. | |
![]() | |
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 and enforces the static constexpr XmlNodeName. | |
Base & | operator= (const Base &) |
assignment constructor: m_unlinkedNodes is intentionally omitted | |
Represents a center shape for a others::SmartShape that spans three or more measures.
A others::SmartShape instance controls the endpoint information for the start and end measures. It also controls the first and the final system breaks if the shape spans more than one system.
Every measure spanned by the shape in between the first and last measures is assigned its own center shape. These are only applicable if their measure is the first measure in a system that is not the first or last system. That means that for any center shape to be applicable, the shape must span at least three systems. However, the center shape records are created for every measure between the first and last, no matter how many or few systems the shape spans.
Cmper1 is the shape number. Cmper2 is the center shape number. (See others::SmartShapeMeasureAssign.) This class is identified by the XML node name "centerShape".
|
inlineexplicit |
Constructor.
document | A weak pointer to the associated document. |
partId | The part that this is for. |
shareMode | The sharing mode for this CenterShape. |
shapeNum | The shape number from others::SmartShapeMeasureAssign. |
centerShapeNum | The center shape number from others::SmartShapeMeasureAssign. |
|
inlineoverridevirtual |
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.
The default implementation should always be called inside an overridden implementation.
musx::dom::integrity_error | if there is a problem. |
Reimplemented from musx::dom::Base.
|
inlineoverridevirtual |
ignore other fields because they are difficult to figure out
Reimplemented from musx::dom::Base.