aboutsummaryrefslogtreecommitdiffstats
path: root/src/pointarray.js
diff options
context:
space:
mode:
authorRémi Tétreault <tetreault.remi@gmail.com>2017-02-16 20:35:05 -0500
committerRémi Tétreault <tetreault.remi@gmail.com>2017-02-16 21:36:35 -0500
commit0f21fd2aead7b6c409d0fb36cce55c56e9529a1a (patch)
treeada98d3503862f2a36b0d46615ceb89100daa784 /src/pointarray.js
parent0f1649e7e3179f8c95058daffdbfb62133483f0e (diff)
downloadsvg.js-0f21fd2aead7b6c409d0fb36cce55c56e9529a1a.tar.gz
svg.js-0f21fd2aead7b6c409d0fb36cce55c56e9529a1a.zip
Sort out leftovers from the old fx module
This commit is mostly to clean up the implementation of the initAnimation method of the Fx Module (issue #547). It also fixes these issues: #552, #582 and #584. Here is a list of the changes and fixes that are made: * Add a plot and array method to SVG.TextPath (issue #582) * Make the method plot a getter when no parameter is passed for SVG.Polyline, SVG.Polygon, SVG.Line, SVG.Path (this idea come from issue #547) * Allow SVG.PointArray to be passed flat array * Change the regexp SVG.PointArray use to parse string to allow more flexibility in the way spaces and commas can be used to separate points (something like this is now accepted: '1, 2, 3, 4') * Allow plot to be called with 4 parameters when animating an SVG.Line * Fix a bug in the plain morphing part of SVG.MorphObj that is in the FX module * Relative value for SVG.Number are now calculated in its morph method (idea from issue #547) * Clean up the implementation of the initAnimation method of the FX module (issues #547, #552, #584)
Diffstat (limited to 'src/pointarray.js')
-rw-r--r--src/pointarray.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/pointarray.js b/src/pointarray.js
index c1e4c86..0a4401a 100644
--- a/src/pointarray.js
+++ b/src/pointarray.js
@@ -38,17 +38,22 @@ SVG.extend(SVG.PointArray, {
return new SVG.PointArray(array)
}
- // Parse point string
+ // Parse point string and flat array
, parse: function(array) {
var points = []
array = array.valueOf()
- // if already is an array, no need to parse it
- if (Array.isArray(array)) return array
-
- // parse points
- array = array.trim().split(/\s+|,/)
+ // if it is an array
+ if (Array.isArray(array)) {
+ // and it is not flat, there is no need to parse it
+ if(Array.isArray(array[0])) {
+ return array
+ }
+ } else { // Else, it is considered as a string
+ // parse points
+ array = array.trim().split(/[\s,]+/)
+ }
// validate points - https://svgwg.org/svg2-draft/shapes.html#DataTypePoints
// Odd number of coordinates is an error. In such cases, drop the last odd coordinate.
@@ -94,4 +99,4 @@ SVG.extend(SVG.PointArray, {
return SVG.parser.poly.getBBox()
}
-}) \ No newline at end of file
+})