int Measure::GetWidth() const { if (!this->IsMeasuredMusic()) { System *system = dynamic_cast<System *>(this->GetFirstParent(SYSTEM)); assert(system); Page *page = dynamic_cast<Page *>(system->GetFirstParent(PAGE)); assert(page); if (system->m_yAbs != VRV_UNSET) { // xAbs2 = page->m_pageWidth - system->m_systemRightMar; return page->m_pageWidth - system->m_systemLeftMar - system->m_systemRightMar; } } if (this->m_xAbs2 != VRV_UNSET) return (m_xAbs2 - m_xAbs); assert(m_measureAligner.GetRightAlignment()); return m_measureAligner.GetRightAlignment()->GetXRel(); }