src/qvgui/qvnumericplot.cpp

Go to the documentation of this file.
00001 /*
00002  *      Copyright (C) 2007, 2008. PARP Research Group.
00003  *      <http://perception.inf.um.es>
00004  *      University of Murcia, Spain.
00005  *
00006  *      This file is part of the QVision library.
00007  *
00008  *      QVision is free software: you can redistribute it and/or modify
00009  *      it under the terms of the GNU Lesser General Public License as
00010  *      published by the Free Software Foundation, version 3 of the License.
00011  *
00012  *      QVision is distributed in the hope that it will be useful,
00013  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  *      GNU Lesser General Public License for more details.
00016  *
00017  *      You should have received a copy of the GNU Lesser General Public
00018  *      License along with QVision. If not, see <http://www.gnu.org/licenses/>.
00019  */
00020 
00024 
00025 #include <iostream>
00026 #include <qvgui/qvnumericplot.h>
00027 
00028 QVNumericPlot::QVNumericPlot(const QString name, bool time, int step, QWidget *parent): QVPlot(name, true, false, false, true, time, step, parent)
00029         { }
00030 
00031 bool QVNumericPlot::linkProperty(QVWorker &worker, const QString propertyName)
00032         {
00033         int propType = worker.getPropertyType(propertyName);
00034 
00035         if ( (propType != QVariant::Int) && (propType != QVariant::Double) ) {
00036                 std::cerr << "Warning: a numericplot only can be linked to a int or double property." << std::endl;
00037                 return false;
00038         }
00039         else
00040                 return QVPlot::linkProperty(worker, propertyName);
00041         }
00042 
00043 void QVNumericPlot::linkProperty(QVWorker &worker)
00044         {
00045         QStringList inputProper = worker.getPropertyListByType<int>() + worker.getPropertyListByType<double>();
00046         for (int i = 0; i < inputProper.size(); i++)
00047                 if (worker.isOutput(inputProper[i])) // si la propiedad es de salida
00048                         linkProperty(worker, inputProper[i]);
00049         }
00050 
00051 QStringList QVNumericPlot::getPropertyCurvNames(QString property) const
00052         {
00053         return (QStringList() << property);
00054         }
00055 
00056 QList<double> QVNumericPlot::getPropertyCurvValues(QString property) const
00057         {
00058         int propType = getPropertyType(property);
00059 
00060         QList<double> value;
00061         if (propType == QVariant::Int)
00062                 value << getPropertyValue<int>(property);
00063         else if (propType == QVariant::Double)
00064                 value << getPropertyValue<double>(property);
00065 
00066         return value;
00067         }
00068 
00069 QList<int> QVNumericPlot::getPropertyCurvOrders(QString property) const
00070         {
00071         QList<int> order;
00072         return (order << 1);
00073         }
00074