8 #ifndef __VRV_ARTIC_H__
9 #define __VRV_ARTIC_H__
11 #include "atts_externalsymbols.h"
12 #include "atts_gestural.h"
13 #include "atts_shared.h"
14 #include "layerelement.h"
15 #include "offsetinterface.h"
25 public AttArticulation,
26 public AttArticulationGes,
28 public AttEnclosingChars,
30 public AttExtSymNames,
31 public AttPlacementRelEvent {
42 std::string GetClassName()
const override {
return "artic"; }
49 OffsetInterface *GetOffsetInterface()
override {
return vrv_cast<OffsetInterface *>(
this); }
50 const OffsetInterface *GetOffsetInterface()
const override {
return vrv_cast<const OffsetInterface *>(
this); }
59 data_ARTICULATION GetArticFirst()
const;
61 void GetAllArtics(
bool direction, std::vector<Artic *> &artics);
83 void SetDrawingPlace(data_STAFFREL drawingPlace) { m_drawingPlace = drawingPlace; }
89 char32_t
GetArticGlyph(data_ARTICULATION artic, data_STAFFREL place)
const;
122 FunctorCode AcceptEnd(
Functor &functor)
override;
123 FunctorCode AcceptEnd(
ConstFunctor &functor)
const override;
130 std::vector<FloatingCurvePositioner *> m_startSlurPositioners;
131 std::vector<FloatingCurvePositioner *> m_endSlurPositioners;
144 data_STAFFREL m_drawingPlace;
static bool IsCentered(data_ARTICULATION artic)
Static method that returns true if the data_ARTICULATION has to be centered between staff lines.
data_STAFFREL GetDrawingPlace() const
Getter and setter for the drawing place.
Definition: artic.h:82
std::pair< char32_t, char32_t > GetEnclosingGlyphs() const
Retrieve parentheses / brackets from the enclose attribute.
Object * Clone() const override
Method call for copying child classes.
Definition: artic.h:40
bool IsRelativeToStaff() const override
Override the method since it is align to the staff.
Definition: artic.h:57
FunctorCode Accept(Functor &functor) override
Interface for class functor visitation.
static const std::vector< data_ARTICULATION > s_aboveStaffArtic
A static array for storing the articulation that have to be place above the staff is possible.
Definition: artic.h:140
static bool VerticalCorr(char32_t code, data_STAFFREL place)
Static method that retrieves the vertical correction for a SMuFL code with data_STAFFREL.
void Reset() override
Virtual reset method.
char32_t GetArticGlyph(data_ARTICULATION artic, data_STAFFREL place) const
Retrieves the appropriate SMuFL code for a data_ARTICULATION with data_STAFFREL.
bool AlwaysAbove() const
Check if the articList contains data_ARTICULATION has to be place above staff.
bool HasToBeAligned() const override
Override the method since alignment is required.
Definition: artic.h:54
bool IsInsideArtic() const
Return the inside and outside part of an artic if any (NULL otherwiser)
static const std::vector< data_ARTICULATION > s_outStaffArtic
A static array for storing the articulation that have to be placed outside the staff.
Definition: artic.h:136
This abstract class is the base class for all const functors.
Definition: functor.h:126
This class represents a basic object for a curve (slur, tie) in the layout domain.
Definition: floatingobject.h:329
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class is a base class for the Layer (<layer>) content.
Definition: layerelement.h:51
This class represents a basic object.
Definition: object.h:64
This class is an interface for elements having a single visual offset, such as arpeg,...
Definition: offsetinterface.h:28