19class MusicXMLTimePositions
22 MusicXMLTimePositions() {
23 timePositions.clear();
25 MusicXMLTimePositions(
const MusicXMLTimePositions &p1) { timePositions = p1.timePositions; }
28 typedef std::tuple<double, int, int, int> VoicedTimePosition;
29 typedef std::vector<VoicedTimePosition> TimePositionList;
47 size_t size() {
return timePositions.size(); }
51 int getVoice(VoicedTimePosition e) {
return std::get<2>(e); }
52 int getDefaultX(VoicedTimePosition e) {
return std::get<1>(e); }
53 int getStaff(VoicedTimePosition e) {
return std::get<3>(e); }
56 TimePositionList::iterator
find(TimePositionList &timePos4measure,
int voiceId,
int staff,
double position) {
58 auto it = std::find_if(timePos4measure.begin(), timePos4measure.end(), [voiceId, staff, position] (
const VoicedTimePosition& e) {
59 if ((voiceId > 0) && (std::get<2>(e) != voiceId) ) {
62 if ((staff > 0) && (std::get<3>(e) != staff) ) {
66 return std::get<0>(e) == position;
74 std::map<std::string, std::vector<VoicedTimePosition> > timePositions;
TimePositionList::iterator find(TimePositionList &timePos4measure, int voiceId, int staff, double position)
Returns iterator in TimePositionList with equal voiceId and EQUAL position to query.
Definition timePositions.h:56
float getDxRelativeToMeasureForElement(MusicXML2::xmlelement *element, std::string onMeasure, int voice, double xmlOffset)
Finds Guido Dx for XML Directions whose default horizontal position is from the Beginning of the Meas...
float getDxForElement(MusicXML2::xmlelement *element, double position, std::string onMeasure, int voice, int staff, double xmlOffset)