From 6d932f5be6bfe14b7a6c4131f84c0952c4686265 Mon Sep 17 00:00:00 2001 From: Michael Zinsmaier Date: Sun, 26 Oct 2014 22:32:58 +0100 Subject: [PATCH] added new parameters to the tests and improved the parameter box --- curvedLines.js | 4 +- tests/_TestSetup.js | 224 +++++++++++++++++++++----------------------- 2 files changed, 108 insertions(+), 120 deletions(-) diff --git a/curvedLines.js b/curvedLines.js index 554c828..07475fe 100644 --- a/curvedLines.js +++ b/curvedLines.js @@ -190,7 +190,7 @@ var xStart = points[curX]; var xEnd = points[curX + ps]; - var xStep = (xEnd - xStart) / curvedLinesOptions.nrSplinePoints; + var xStep = (xEnd - xStart) / Number(curvedLinesOptions.nrSplinePoints); //add point result.push(points[curX]); @@ -256,7 +256,7 @@ for (var i = ps; i < points.length - ps; i += ps) { var curX = i; var curY = i + yPos; - c1s.push(curvedLinesOptions.tension * (points[curX + ps] - points[curY - ps]) / (points[curX + ps] - points[curX - ps])); + c1s.push(Number(curvedLinesOptions.tension) * (points[curY + ps] - points[curY - ps]) / (points[curX + ps] - points[curX - ps])); } } c1s.push(ms[ms.length - 1]); diff --git a/tests/_TestSetup.js b/tests/_TestSetup.js index 836982a..88df906 100644 --- a/tests/_TestSetup.js +++ b/tests/_TestSetup.js @@ -1,146 +1,134 @@ -!function() { - +! function() { + var TestSetup = function(div, lineParameter, replotFunctions) { div.append("
"); - $("#normalParameters").append("apply"); + $("#normalParameters").append("apply"); + $("#normalParameters").append("monotonicFit"); + $("#normalParameters").append("tension /in [0,1]"); + $("#normalParameters").append("# spline points"); div.append("
"); - $("#legacyParameters").append("use legacy options"); - $("#legacyParameters").append("fit"); - $("#legacyParameters").append("point factor"); - $("#legacyParameters").append("fit point dist"); - + $("#legacyParameters").append("use legacy options"); + $("#legacyParameters").append("fit"); + $("#legacyParameters").append("point factor"); + $("#legacyParameters").append("fit point dist"); - var parameter = lineParameter; - var changing = false; - - function replotAll(parameter, replotFunctions) { - for (var i = 0; i < replotFunctions.length; i++) { + function replotAll() { + + var parameter = { + apply: $("#apply").prop("checked"), + monotonicFit: $("#monotonicFit").prop("checked"), + tension: $("#tension").val(), + nrSplinePoints: $("#nrSplinePoints").val(), + legacyOverride: undefined + }; + + if ($("#useLegacy").prop("checked")) { + var fDist = $("#legacyFitPointDist").val(); + + parameter.legacyOverride = { + fit: $("#legacyFit").prop("checked"), + curvePointFactor: $("#legacyPointFactor").val(), + fitPointDist: (fDist == '') ? undefined : fDist, + }; + } + + for (var i = 0; i < replotFunctions.length; i++) { replotFunctions[i](parameter); } } - + function init(parameter) { - if (changing) return; - changing = true; - { - var defaultParam = { - active : false, - apply : false, - monotonicFit : false, - tension : 0.0, - legacyOverride : undefined - }; - - var combinedParam = jQuery.extend(defaultParam, parameter); - - if (combinedParam.legacyOverride == true) { - combinedParam.legacyOverride = { - fit : false, - curvePointFactor : 20, - fitPointDist : undefined - }; - parameter.legacyOverride = { - fit : false, - curvePointFactor : 20, - fitPointDist : undefined - }; - } + var defaultParam = { + active: false, + apply: false, + monotonicFit: false, + tension: 0.0, + nrSplinePoints: 20, + legacyOverride: undefined + }; - $("#apply").prop("checked", combinedParam.apply); - - var withLegacy = (typeof combinedParam.legacyOverride != 'undefined' && combinedParam.legacyOverride != false); - var fit = withLegacy ? combinedParam.legacyOverride.fit : false; - var pointFactor = withLegacy ? combinedParam.legacyOverride.curvePointFactor : '20'; - var fitDist = withLegacy ? combinedParam.legacyOverride.fitPointDist : ''; - - $("#useLegacy").prop("checked", withLegacy); - $("#legacyFit").prop("checked", fit); - $("#legacyPointFactor").val(pointFactor); - $("#legacyFitPointDist").val(fitDist); - - replotAll(parameter, replotFunctions); + var defaultLegacy = { + fit: false, + curvePointFactor: 20, + fitPointDist: undefined + }; + + if (typeof parameter.legacyOverride != 'undefined' ) { + defaultParam.legacyOverride = defaultLegacy; + if (parameter.legacyOverride == true) { + parameter.legacyOverride = defaultLegacy; + } } - changing = false; - } - + + var combinedParam = jQuery.extend(true, defaultParam, parameter); + + $("#apply").prop("checked", combinedParam.apply); + + var withLegacy = (typeof combinedParam.legacyOverride != 'undefined'); + var fit = combinedParam.legacyOverride.fit; + var pointFactor = combinedParam.legacyOverride.curvePointFactor; + var fitDist = combinedParam.legacyOverride.fitPointDist; + var monotone = combinedParam.monotonicFit; + var tension = combinedParam.tension; + var nrPoints = combinedParam.nrSplinePoints; + + $("#useLegacy").prop("checked", withLegacy); + $("#legacyFit").prop("checked", fit); + $("#legacyPointFactor").val(pointFactor); + $("#legacyFitPointDist").val(fitDist); + $("#monotonicFit").prop("checked", monotone); + $("#tension").val(tension); + $("#nrSplinePoints").val(nrPoints); + + replotAll(parameter, replotFunctions); + } + + TestSetup.applyChanged = function() { - if (changing) return; - changing = true; - { - parameter.apply = $("#apply").prop("checked"); - replotAll(parameter, replotFunctions); - } - changing = false; + replotAll(); }; - + TestSetup.useLegacyChanged = function() { - if (changing) return; - changing = true; - { - if ($("#useLegacy").prop("checked")) { - parameter.legacyOverride = { - fit : false, - curvePointFactor : 20, - fitPointDist : undefined - }; - } else { - parameter.legacyOverride = undefined; - } - - $("#legacyFit").prop("checked", false); - $("#legacyPointFactor").val(20); - $("#legacyFitPointDist").val(''); - replotAll(parameter, replotFunctions); - } - changing = false; + replotAll(); }; - + TestSetup.legacyFitChanged = function() { - if (changing) return; - changing = true; - { - if ($("#useLegacy").prop("checked")) { - parameter.legacyOverride.fit = $("#legacyFit").prop("checked"); - replotAll(parameter, replotFunctions); - } + if ($("#useLegacy").prop("checked")) { + replotAll(); } - changing = false; }; - + TestSetup.legacyPointFactorChanged = function() { - if (changing) return; - changing = true; - { - if ($("#useLegacy").prop("checked")) { - parameter.legacyOverride.curvePointFactor = $("#legacyPointFactor").val(); - replotAll(parameter, replotFunctions); - } + if ($("#useLegacy").prop("checked")) { + replotAll(); } - changing = false; }; - + TestSetup.legacyFitPointDistChanged = function() { - if (changing) return; - changing = true; - { - if ($("#useLegacy").prop("checked")) { - var text = $("#legacyFitPointDist").val(); - if (text == '') { - parameter.legacyOverride.fitPointDist = undefined; - } else { - parameter.legacyOverride.fitPointDist = text; - } - - replotAll(parameter, replotFunctions); - } + if ($("#useLegacy").prop("checked")) { + replotAll(); } - changing = false; }; - - init(parameter); + + TestSetup.monotonicFitChanged = function() { + $("#useLegacy").prop("checked", false); + replotAll(); + }; + + TestSetup.tensionChanged = function() { + $("#useLegacy").prop("checked", false); + replotAll(); + }; + + TestSetup.nrSplinePointsChanged = function() { + $("#useLegacy").prop("checked", false); + replotAll(); + }; + + init(lineParameter); }; this.TestSetup = TestSetup; -}(); \ No newline at end of file +}(); \ No newline at end of file