diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2015-07-24 13:46:12 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-07-24 13:46:21 +0200 |
commit | e55389fb2a43cd7cc2f1db95bc04a1d1eb789fa9 (patch) | |
tree | e2c6dac7c0f584e30e1721969f4720275980deea /qfunctionconfigurator | |
parent | 3c4d10ead91f54fcaa52267aa7f8d81a09336e2a (diff) |
qfc: allow max range as floating point
affects accela
Diffstat (limited to 'qfunctionconfigurator')
-rw-r--r-- | qfunctionconfigurator/functionconfig.cpp | 38 | ||||
-rw-r--r-- | qfunctionconfigurator/functionconfig.h | 14 | ||||
-rw-r--r-- | qfunctionconfigurator/qfunctionconfigurator.cpp | 13 |
3 files changed, 33 insertions, 32 deletions
diff --git a/qfunctionconfigurator/functionconfig.cpp b/qfunctionconfigurator/functionconfig.cpp index 264097ab..2b9d3a07 100644 --- a/qfunctionconfigurator/functionconfig.cpp +++ b/qfunctionconfigurator/functionconfig.cpp @@ -54,17 +54,17 @@ float Map::getValueInternal(int x) { return ret * sign; } -static __inline QPointF ensureInBounds(QList<QPointF> points, int i) { - int siz = points.size(); - if (siz == 0 || i < 0) - return QPointF(0, 0); - if (siz > i) - return points[i]; - return points[siz - 1]; +static QPointF ensureInBounds(QList<QPointF> points, int i) { + int siz = points.size(); + if (siz == 0 || i < 0) + return QPointF(0, 0); + if (siz > i) + return points[i]; + return points[siz - 1]; } static bool sortFn(const QPointF& one, const QPointF& two) { - return one.x() < two.x(); + return one.x() < two.x(); } void Map::reload() { @@ -149,8 +149,8 @@ void Map::removePoint(int i) { void Map::addPoint(QPointF pt) { QMutexLocker foo(&_mutex); - cur.input.append(pt); - reload(); + cur.input.append(pt); + reload(); } void Map::movePoint(int idx, QPointF pt) { @@ -182,15 +182,15 @@ void Map::loadSettings(QSettings& settings, const QString& title) { int max = settings.value("point-count", 0).toInt(); for (int i = 0; i < max; i++) { - newPoint = QPointF(settings.value(QString("point-%1-x").arg(i), 0).toFloat(), - settings.value(QString("point-%1-y").arg(i), 0).toFloat()); - if (newPoint.x() > max_x) { - newPoint.setX(max_x); - } - if (newPoint.y() > max_y) { - newPoint.setY(max_y); - } - points.append(newPoint); + newPoint = QPointF(settings.value(QString("point-%1-x").arg(i), 0).toFloat(), + settings.value(QString("point-%1-y").arg(i), 0).toFloat()); + if (newPoint.x() > max_x) { + newPoint.setX(max_x); + } + if (newPoint.y() > max_y) { + newPoint.setY(max_y); + } + points.append(newPoint); } settings.endGroup(); diff --git a/qfunctionconfigurator/functionconfig.h b/qfunctionconfigurator/functionconfig.h index f7930cb2..7ead2c5d 100644 --- a/qfunctionconfigurator/functionconfig.h +++ b/qfunctionconfigurator/functionconfig.h @@ -32,15 +32,15 @@ private: MyMutex _mutex; QPointF last_input_value; volatile bool activep; - int max_x; - int max_y; + double max_x; + double max_y; State cur, saved; public: - int maxInput() const { return max_x; } - int maxOutput() const { return max_y; } + double maxInput() const { return max_x; } + double maxOutput() const { return max_y; } Map(); - Map(int maxx, int maxy) + Map(double maxx, double maxy) { setMaxInput(maxx); setMaxOutput(maxy); @@ -58,10 +58,10 @@ public: void addPoint(QPointF pt); void movePoint(int idx, QPointF pt); const QList<QPointF> getPoints(); - void setMaxInput(int MaxInput) { + void setMaxInput(double MaxInput) { max_x = MaxInput; } - void setMaxOutput(int MaxOutput) { + void setMaxOutput(double MaxOutput) { max_y = MaxOutput; } diff --git a/qfunctionconfigurator/qfunctionconfigurator.cpp b/qfunctionconfigurator/qfunctionconfigurator.cpp index 3d86216e..d3525c1d 100644 --- a/qfunctionconfigurator/qfunctionconfigurator.cpp +++ b/qfunctionconfigurator/qfunctionconfigurator.cpp @@ -22,7 +22,8 @@ QFunctionConfigurator::QFunctionConfigurator(QWidget *parent) : void QFunctionConfigurator::setConfig(Map* config, const QString& name) { mem<QSettings> iniFile = group::ini_file(); - config->loadSettings(*iniFile, name); + if (name != "") + config->loadSettings(*iniFile, name); _config = config; _draw_function = true; update_range(); @@ -49,8 +50,8 @@ void QFunctionConfigurator::drawBackground() QPen pen(QColor(55, 104, 170, 127), 1, Qt::SolidLine); const int xstep = 10, ystep = 10; - const int maxx = _config->maxInput(); - const int maxy = _config->maxOutput(); + const double maxx = _config->maxInput(); + const double maxy = _config->maxOutput(); // horizontal grid for (int i = 0; i < maxy; i += xstep) @@ -68,7 +69,7 @@ void QFunctionConfigurator::drawBackground() } { - const int i = maxy; + const double i = maxy; double y = pixel_bounds.height() - i * c.y() + pixel_bounds.y(); drawLine(&painter, QPointF(pixel_bounds.x(), y), @@ -97,7 +98,7 @@ void QFunctionConfigurator::drawBackground() text); } { - const int i = maxx; + const double i = maxx; double x = pixel_bounds.x() + i * c.x(); drawLine(&painter, QPointF(x, pixel_bounds.y()), @@ -132,7 +133,7 @@ void QFunctionConfigurator::drawFunction() QPen pen(spline_color, 1.2, Qt::SolidLine); const double max = _config->maxInput(); - const double step = std::max(1e-2, max / 500.); + const double step = std::max(1e-3, max / 1000.); QPointF prev = point_to_pixel(QPointF(0, 0)); for (double i = 0; i < max; i += step) { |