aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/core/poly.js
blob: ad120208e7de6718251cde24b8734c473481d68c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { proportionalSize } from '../../utils/utils.js'
import PointArray from '../../types/PointArray.js'

// Get array
export function array () {
  return this._array || (this._array = new PointArray(this.attr('points')))
}

// Plot new path
export function plot (p) {
  return (p == null) ? this.array()
    : this.clear().attr('points', typeof p === 'string' ? p
      : (this._array = new PointArray(p)))
}

// Clear array cache
export function clear () {
  delete this._array
  return this
}

// Move by left top corner
export function move (x, y) {
  return this.attr('points', this.array().move(x, y))
}

// Set element size to given width and height
export function size (width, height) {
  let p = proportionalSize(this, width, height)
  return this.attr('points', this.array().size(p.width, p.height))
}