diff options
Diffstat (limited to 'src/PathArray.js')
-rw-r--r-- | src/PathArray.js | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/src/PathArray.js b/src/PathArray.js index 5c4fa5e..9fa5b99 100644 --- a/src/PathArray.js +++ b/src/PathArray.js @@ -289,220 +289,3 @@ extend(PathArray, { return parser.nodes.path.getBBox() } }) - -// export default class PathArray extends SVGArray { -// constructor (array, fallback = [['M', 0, 0]]) { -// super(array, fallback) -// } -// -// // Convert array to string -// toString () { -// return arrayToString(this) -// } -// -// toArray () { -// return this.reduce(function (prev, curr) { -// return [].concat.call(prev, curr) -// }, []) -// } -// -// // Move path string -// move (x, y) { -// // get bounding box of current situation -// var box = this.bbox() -// -// // get relative offset -// x -= box.x -// y -= box.y -// -// if (!isNaN(x) && !isNaN(y)) { -// // move every point -// for (var l, i = this.length - 1; i >= 0; i--) { -// l = this[i][0] -// -// if (l === 'M' || l === 'L' || l === 'T') { -// this[i][1] += x -// this[i][2] += y -// } else if (l === 'H') { -// this[i][1] += x -// } else if (l === 'V') { -// this[i][1] += y -// } else if (l === 'C' || l === 'S' || l === 'Q') { -// this[i][1] += x -// this[i][2] += y -// this[i][3] += x -// this[i][4] += y -// -// if (l === 'C') { -// this[i][5] += x -// this[i][6] += y -// } -// } else if (l === 'A') { -// this[i][6] += x -// this[i][7] += y -// } -// } -// } -// -// return this -// } -// -// // Resize path string -// size (width, height) { -// // get bounding box of current situation -// var box = this.bbox() -// var i, l -// -// // recalculate position of all points according to new size -// for (i = this.length - 1; i >= 0; i--) { -// l = this[i][0] -// -// if (l === 'M' || l === 'L' || l === 'T') { -// this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x -// this[i][2] = ((this[i][2] - box.y) * height) / box.height + box.y -// } else if (l === 'H') { -// this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x -// } else if (l === 'V') { -// this[i][1] = ((this[i][1] - box.y) * height) / box.height + box.y -// } else if (l === 'C' || l === 'S' || l === 'Q') { -// this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x -// this[i][2] = ((this[i][2] - box.y) * height) / box.height + box.y -// this[i][3] = ((this[i][3] - box.x) * width) / box.width + box.x -// this[i][4] = ((this[i][4] - box.y) * height) / box.height + box.y -// -// if (l === 'C') { -// this[i][5] = ((this[i][5] - box.x) * width) / box.width + box.x -// this[i][6] = ((this[i][6] - box.y) * height) / box.height + box.y -// } -// } else if (l === 'A') { -// // resize radii -// this[i][1] = (this[i][1] * width) / box.width -// this[i][2] = (this[i][2] * height) / box.height -// -// // move position values -// this[i][6] = ((this[i][6] - box.x) * width) / box.width + box.x -// this[i][7] = ((this[i][7] - box.y) * height) / box.height + box.y -// } -// } -// -// return this -// } -// -// // Test if the passed path array use the same path data commands as this path array -// equalCommands (pathArray) { -// var i, il, equalCommands -// -// pathArray = new PathArray(pathArray) -// -// equalCommands = this.length === pathArray.value.length -// for (i = 0, il = this.length; equalCommands && i < il; i++) { -// equalCommands = this[i][0] === pathArray.value[i][0] -// } -// -// return equalCommands -// } -// -// // Make path array morphable -// morph (pathArray) { -// pathArray = new PathArray(pathArray) -// -// if (this.equalCommands(pathArray)) { -// this.destination = pathArray -// } else { -// this.destination = null -// } -// -// return this -// } -// -// // Get morphed path array at given position -// at (pos) { -// // make sure a destination is defined -// if (!this.destination) return this -// -// var sourceArray = this -// var destinationArray = this.destination.value -// var array = [] -// var pathArray = new PathArray() -// var i, il, j, jl -// -// // Animate has specified in the SVG spec -// // See: https://www.w3.org/TR/SVG11/paths.html#PathElement -// for (i = 0, il = sourceArray.length; i < il; i++) { -// array[i] = [sourceArray[i][0]] -// for (j = 1, jl = sourceArray[i].length; j < jl; j++) { -// array[i][j] = sourceArray[i][j] + (destinationArray[i][j] - sourceArray[i][j]) * pos -// } -// // For the two flags of the elliptical arc command, the SVG spec say: -// // Flags and booleans are interpolated as fractions between zero and one, with any non-zero value considered to be a value of one/true -// // Elliptical arc command as an array followed by corresponding indexes: -// // ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y] -// // 0 1 2 3 4 5 6 7 -// if (array[i][0] === 'A') { -// array[i][4] = +(array[i][4] !== 0) -// array[i][5] = +(array[i][5] !== 0) -// } -// } -// -// // Directly modify the value of a path array, this is done this way for performance -// pathArray.value = array -// return pathArray -// } -// -// // Absolutize and parse path to array -// parse (array) { -// // if it's already a patharray, no need to parse it -// if (array instanceof PathArray) return array.valueOf() -// -// // prepare for parsing -// var s -// var paramCnt = { 'M': 2, 'L': 2, 'H': 1, 'V': 1, 'C': 6, 'S': 4, 'Q': 4, 'T': 2, 'A': 7, 'Z': 0 } -// -// if (typeof array === 'string') { -// array = array -// .replace(numbersWithDots, pathRegReplace) // convert 45.123.123 to 45.123 .123 -// .replace(pathLetters, ' $& ') // put some room between letters and numbers -// .replace(hyphen, '$1 -') // add space before hyphen -// .trim() // trim -// .split(delimiter) // split into array -// } else { -// array = array.reduce(function (prev, curr) { -// return [].concat.call(prev, curr) -// }, []) -// } -// -// // array now is an array containing all parts of a path e.g. ['M', '0', '0', 'L', '30', '30' ...] -// var result = [] -// var p = new Point() -// var p0 = new Point() -// var index = 0 -// var len = array.length -// -// do { -// // Test if we have a path letter -// if (isPathLetter.test(array[index])) { -// s = array[index] -// ++index -// // If last letter was a move command and we got no new, it defaults to [L]ine -// } else if (s === 'M') { -// s = 'L' -// } else if (s === 'm') { -// s = 'l' -// } -// -// result.push(pathHandlers[s].call(null, -// array.slice(index, (index = index + paramCnt[s.toUpperCase()])).map(parseFloat), -// p, p0 -// ) -// ) -// } while (len > index) -// -// return result -// } -// -// // Get bounding box of path -// bbox () { -// parser().path.setAttribute('d', this.toString()) -// return parser.nodes.path.getBBox() -// } -// } |