Skip to content

Commit

Permalink
write bezier points
Browse files Browse the repository at this point in the history
  • Loading branch information
rettinghaus committed Feb 18, 2025
1 parent 12ba012 commit 6b011c8
Showing 1 changed file with 29 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -919,7 +919,15 @@ void SlurHandler::doSlurStart(const Slur* s, Notations& notations, XmlWriter& xm
String tagName = u"slur";
tagName += u" type=\"start\"";
tagName += slurTieLineStyle(s);
tagName += ExportMusicXml::positioningAttributes(s, true);

const SlurSegment* front = s->frontSegment();
const int spatium = s->spatium();
if (front && ExportMusicXml::configuration()->exportLayout()) {
const PointF start = front->ups(Grip::START).pos();
const PointF bezier = front->ups(Grip::BEZIER1).pos();
tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - start.x()) / spatium);
tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium);
}

if (i >= 0) {
// remove from list and print start
Expand Down Expand Up @@ -965,7 +973,16 @@ void SlurHandler::doSlurStop(const Slur* s, Notations& notations, XmlWriter& xml
m_started[i] = false;
notations.tag(xml, s);
String tagName = String(u"slur type=\"stop\" number=\"%1\"").arg(i + 1);
tagName += ExportMusicXml::positioningAttributes(s, false);

const SlurSegment* back = s->backSegment();
const int spatium = s->spatium();
if (back && ExportMusicXml::configuration()->exportLayout()) {
const PointF end = back->ups(Grip::END).pos();
const PointF bezier = back->ups(Grip::BEZIER2).pos();
tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - end.x()) / spatium);
tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium);
}

xml.tagRaw(tagName);
} else {
LOGD("no free slur slot");
Expand All @@ -976,7 +993,16 @@ void SlurHandler::doSlurStop(const Slur* s, Notations& notations, XmlWriter& xml
m_started[i] = false;
notations.tag(xml, s);
String tagName = String(u"slur type=\"stop\" number=\"%1\"").arg(i + 1);
tagName += ExportMusicXml::positioningAttributes(s, false);

const SlurSegment* back = s->backSegment();
const int spatium = s->spatium();
if (back && ExportMusicXml::configuration()->exportLayout()) {
const PointF end = back->ups(Grip::END).pos();
const PointF bezier = back->ups(Grip::BEZIER2).pos();
tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - end.x()) / spatium);
tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium);
}

xml.tagRaw(tagName);
}
}
Expand Down

0 comments on commit 6b011c8

Please sign in to comment.