/** * Zoom to a peak * @param presenter: Holds the peaks workspace. * @param peakIndex: The peak index. */ void CompositePeaksPresenter::zoomToPeak(PeaksPresenter* const presenter, const int peakIndex) { MatchPointer comparitor(presenter); m_zoomedPeakIndex = peakIndex; SubjectContainer::iterator it = std::find_if(m_subjects.begin(), m_subjects.end(), comparitor); if( it == m_subjects.end()) { throw std::invalid_argument("Cannot file subject presenter at CompositePeaksPresenter::zoomToPeak"); } const PeakBoundingBox& box = presenter->getBoundingBox(peakIndex); m_zoomablePlottingWidget->zoomToRectangle(box); m_zoomedPresenter = *it; m_zoomedPeakIndex = peakIndex; m_owner->performUpdate(); }
CompositePeaksPresenter::SubjectContainer::iterator CompositePeaksPresenter::getPresenterIteratorFromName(const QString &name) { MatchWorkspaceName comparitor(name); SubjectContainer::iterator presenterFound = m_subjects.end(); for (auto presenterIterator = m_subjects.begin(); presenterIterator != m_subjects.end(); ++presenterIterator) { auto wsOfSubject = (*presenterIterator)->presentedWorkspaces(); SetPeaksWorkspaces::iterator iteratorFound = std::find_if(wsOfSubject.begin(), wsOfSubject.end(), comparitor); if (iteratorFound != wsOfSubject.end()) { presenterFound = presenterIterator; break; } } return presenterFound; }
/** * Get the peaks presenter correspoinding to a peaks workspace name. * @param name * @return Peaks presenter. */ PeaksPresenter* CompositePeaksPresenter::getPeaksPresenter(const QString& name) { MatchWorkspaceName comparitor(name); SubjectContainer::iterator presenterFound = m_subjects.end(); for (auto presenterIterator = m_subjects.begin(); presenterIterator != m_subjects.end(); ++presenterIterator) { auto wsOfSubject = (*presenterIterator)->presentedWorkspaces(); SetPeaksWorkspaces::iterator iteratorFound = std::find_if(wsOfSubject.begin(), wsOfSubject.end(), comparitor); if (iteratorFound != wsOfSubject.end()) { presenterFound = presenterIterator; break; } } if(presenterFound == m_subjects.end()) { throw std::invalid_argument("Cannot find peaks workspace called :" + name.toStdString()); } return (*presenterFound).get(); }
/** * Does this cluster contain the label of the argument. * @param label : Label id to find * @return True only if that label is contained. */ bool CompositeCluster::containsLabel(const size_t &label) const { Comparitor comparitor(label); return m_ownedClusters.end() != std::find_if(m_ownedClusters.begin(), m_ownedClusters.end(), comparitor); }