00001 /****************************************************************************************************** 00002 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * 00003 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * 00004 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * 00005 ******************************************************************************************************/ 00006 00007 #include "CallbackNextOrdinal.h" 00008 #include "Logger.h" 00009 #include "Point.h" 00010 00011 CallbackNextOrdinal::CallbackNextOrdinal(const QString &curveName) : 00012 m_curveName (curveName), 00013 m_maxOrdinalUsed (0) 00014 { 00015 } 00016 00017 CallbackSearchReturn CallbackNextOrdinal::callback (const QString &curveName, 00018 const Point &point) 00019 { 00020 if (curveName == m_curveName) { 00021 if (point.ordinal() > m_maxOrdinalUsed) { 00022 m_maxOrdinalUsed = point.ordinal(); 00023 } 00024 } 00025 00026 return CALLBACK_SEARCH_RETURN_CONTINUE; 00027 } 00028 00029 double CallbackNextOrdinal::nextOrdinal () const 00030 { 00031 int nextOrdinal = m_maxOrdinalUsed + 1; 00032 00033 LOG4CPP_INFO_S ((*mainCat)) << "CallbackNextOrdinal::nextOrdinal" 00034 << " ordinal=" << nextOrdinal; 00035 00036 return nextOrdinal; 00037 }