@benev/math 0.2.0 → 0.3.0-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -3
  3. package/package.json +5 -5
  4. package/s/{tools → core}/circular.ts +1 -1
  5. package/s/core/quat.ts +12 -8
  6. package/s/{tools → core}/scalar.ts +2 -2
  7. package/s/core/vec2.ts +24 -20
  8. package/s/core/vec3.ts +24 -20
  9. package/s/core/vec4.ts +6 -2
  10. package/s/index.ts +5 -10
  11. package/s/optimizers/hash-map.ts +2 -2
  12. package/s/optimizers/zen.ts +4 -4
  13. package/s/physics/2d/collide2d.barrel.ts +3 -0
  14. package/s/physics/2d/collide2d.ts +2 -2
  15. package/s/physics/2d/intersect2d.barrel.ts +3 -0
  16. package/s/physics/2d/intersect2d.ts +11 -11
  17. package/s/physics/index.ts +4 -0
  18. package/s/shapes/2d/circle.ts +3 -3
  19. package/s/shapes/2d/rect.ts +7 -7
  20. package/s/shapes/3d/box.ts +10 -10
  21. package/s/shapes/3d/segment.ts +8 -8
  22. package/s/shapes/index.ts +7 -0
  23. package/s/tools/angles.ts +26 -26
  24. package/s/tools/make-noise.ts +13 -0
  25. package/s/tools/spline.ts +30 -36
  26. package/x/{tools → core}/circular.d.ts +1 -1
  27. package/x/{tools → core}/circular.js +1 -1
  28. package/x/core/circular.js.map +1 -0
  29. package/x/core/quat.d.ts +4 -3
  30. package/x/core/quat.js +11 -8
  31. package/x/core/quat.js.map +1 -1
  32. package/x/{tools → core}/scalar.d.ts +2 -2
  33. package/x/{tools → core}/scalar.js +2 -2
  34. package/x/core/scalar.js.map +1 -0
  35. package/x/core/vec2.d.ts +11 -10
  36. package/x/core/vec2.js +23 -20
  37. package/x/core/vec2.js.map +1 -1
  38. package/x/core/vec3.d.ts +11 -10
  39. package/x/core/vec3.js +23 -20
  40. package/x/core/vec3.js.map +1 -1
  41. package/x/core/vec4.d.ts +2 -1
  42. package/x/core/vec4.js +5 -2
  43. package/x/core/vec4.js.map +1 -1
  44. package/x/index.d.ts +5 -10
  45. package/x/index.js +5 -10
  46. package/x/index.js.map +1 -1
  47. package/x/optimizers/hash-map.js +2 -2
  48. package/x/optimizers/zen.js +4 -4
  49. package/x/optimizers/zen.js.map +1 -1
  50. package/x/physics/2d/collide2d.barrel.d.ts +1 -0
  51. package/x/physics/2d/collide2d.barrel.js +2 -0
  52. package/x/physics/2d/collide2d.barrel.js.map +1 -0
  53. package/x/physics/2d/collide2d.js +2 -2
  54. package/x/physics/2d/collide2d.js.map +1 -1
  55. package/x/physics/2d/intersect2d.barrel.d.ts +1 -0
  56. package/x/physics/2d/intersect2d.barrel.js +2 -0
  57. package/x/physics/2d/intersect2d.barrel.js.map +1 -0
  58. package/x/physics/2d/intersect2d.d.ts +3 -3
  59. package/x/physics/2d/intersect2d.js +11 -11
  60. package/x/physics/2d/intersect2d.js.map +1 -1
  61. package/x/physics/index.d.ts +2 -0
  62. package/x/physics/index.js +3 -0
  63. package/x/physics/index.js.map +1 -0
  64. package/x/shapes/2d/circle.js +3 -3
  65. package/x/shapes/2d/circle.js.map +1 -1
  66. package/x/shapes/2d/rect.js +7 -7
  67. package/x/shapes/2d/rect.js.map +1 -1
  68. package/x/shapes/3d/box.js +10 -10
  69. package/x/shapes/3d/box.js.map +1 -1
  70. package/x/shapes/3d/segment.js +7 -7
  71. package/x/shapes/3d/segment.js.map +1 -1
  72. package/x/shapes/index.d.ts +4 -0
  73. package/x/shapes/index.js +5 -0
  74. package/x/shapes/index.js.map +1 -0
  75. package/x/tools/angles.d.ts +22 -13
  76. package/x/tools/angles.js +27 -29
  77. package/x/tools/angles.js.map +1 -1
  78. package/x/tools/make-noise.d.ts +2 -0
  79. package/x/tools/make-noise.js +9 -0
  80. package/x/tools/make-noise.js.map +1 -0
  81. package/x/tools/spline.d.ts +2 -4
  82. package/x/tools/spline.js +20 -26
  83. package/x/tools/spline.js.map +1 -1
  84. package/x/tools/circular.js.map +0 -1
  85. package/x/tools/scalar.js.map +0 -1
@@ -18,19 +18,19 @@ export class Rect {
18
18
  }
19
19
 
20
20
  static fromCorner(min: Vec2, size: Vec2) {
21
- const max = min.clone().add(size)
21
+ const max = min.dup().add(size)
22
22
  return new this(min, max)
23
23
  }
24
24
 
25
25
  static fromCenter(center: Vec2, size: Vec2) {
26
- const halfSize = size.clone().half()
27
- const min = center.clone().subtract(halfSize)
28
- const max = center.clone().add(halfSize)
26
+ const halfSize = size.dup().half()
27
+ const min = center.dup().sub(halfSize)
28
+ const max = center.dup().add(halfSize)
29
29
  return new this(min, max)
30
30
  }
31
31
 
32
32
  clone() {
33
- return new Rect(this.min.clone(), this.max.clone())
33
+ return new Rect(this.min.dup(), this.max.dup())
34
34
  }
35
35
 
36
36
  toJSON(): RectJson {
@@ -50,11 +50,11 @@ export class Rect {
50
50
  }
51
51
 
52
52
  size() {
53
- return this.max.clone().subtract(this.min)
53
+ return this.max.dup().sub(this.min)
54
54
  }
55
55
 
56
56
  center() {
57
- return this.min.clone().add(this.size().half())
57
+ return this.min.dup().add(this.size().half())
58
58
  }
59
59
 
60
60
  translate(delta: Vec2) {
@@ -17,13 +17,13 @@ export class Box {
17
17
  }
18
18
 
19
19
  static fromCorner(min: Vec3, size: Vec3) {
20
- return new this(min, min.clone().add(size))
20
+ return new this(min, min.dup().add(size))
21
21
  }
22
22
 
23
23
  static fromCenter(center: Vec3, size: Vec3) {
24
- const halfSize = size.clone().half()
25
- const min = center.clone().subtract(halfSize)
26
- const max = center.clone().add(halfSize)
24
+ const halfSize = size.dup().half()
25
+ const min = center.dup().sub(halfSize)
26
+ const max = center.dup().add(halfSize)
27
27
  return new this(min, max)
28
28
  }
29
29
 
@@ -32,7 +32,7 @@ export class Box {
32
32
  }
33
33
 
34
34
  clone() {
35
- return new Box(this.min.clone(), this.max.clone())
35
+ return new Box(this.min.dup(), this.max.dup())
36
36
  }
37
37
 
38
38
  set(box: BoxLike) {
@@ -41,11 +41,11 @@ export class Box {
41
41
  }
42
42
 
43
43
  size() {
44
- return this.max.clone().subtract(this.min)
44
+ return this.max.dup().sub(this.min)
45
45
  }
46
46
 
47
47
  center() {
48
- return this.min.clone().add(this.size().half())
48
+ return this.min.dup().add(this.size().half())
49
49
  }
50
50
 
51
51
  normalize() {
@@ -68,15 +68,15 @@ export class Box {
68
68
  }
69
69
 
70
70
  grow(increase: Vec3) {
71
- const halfIncrease = increase.clone().half()
72
- this.min.subtract(halfIncrease)
71
+ const halfIncrease = increase.dup().half()
72
+ this.min.sub(halfIncrease)
73
73
  this.max.add(halfIncrease)
74
74
  return this
75
75
  }
76
76
 
77
77
  growBy(increase: number) {
78
78
  const halfIncrease = increase / 2
79
- this.min.subtractBy(halfIncrease)
79
+ this.min.subBy(halfIncrease)
80
80
  this.max.addBy(halfIncrease)
81
81
  return this
82
82
  }
@@ -8,7 +8,7 @@ export class Segment {
8
8
  ) {}
9
9
 
10
10
  vector() {
11
- return this.end.clone().subtract(this.start)
11
+ return this.end.dup().sub(this.start)
12
12
  }
13
13
 
14
14
  length() {
@@ -16,31 +16,31 @@ export class Segment {
16
16
  }
17
17
 
18
18
  center() {
19
- return this.start.clone()
19
+ return this.start.dup()
20
20
  .add(this.end)
21
21
  .half()
22
22
  }
23
23
 
24
24
  clone() {
25
25
  return new Segment(
26
- this.start.clone(),
27
- this.end.clone(),
26
+ this.start.dup(),
27
+ this.end.dup(),
28
28
  )
29
29
  }
30
30
 
31
31
  fromStart(length: number) {
32
32
  const direction = this.vector().normalize()
33
- return this.start.clone().add(direction.multiplyBy(length))
33
+ return this.start.dup().add(direction.mulBy(length))
34
34
  }
35
35
 
36
36
  point(fraction: number) {
37
- return this.start.clone().add(this.vector().multiplyBy(fraction))
37
+ return this.start.dup().add(this.vector().mulBy(fraction))
38
38
  }
39
39
 
40
40
  scale(fraction: number) {
41
41
  const {center} = this
42
- const newHalfVector = this.vector().multiplyBy(fraction / 2)
43
- this.start.set(center().subtract(newHalfVector))
42
+ const newHalfVector = this.vector().mulBy(fraction / 2)
43
+ this.start.set(center().sub(newHalfVector))
44
44
  this.end.set(center().add(newHalfVector))
45
45
  return this
46
46
  }
@@ -0,0 +1,7 @@
1
+
2
+ export * from "./2d/index.js"
3
+ export * as shapes2d from "./2d/index.js"
4
+
5
+ export * from "./3d/index.js"
6
+ export * as shapes3d from "./3d/index.js"
7
+
package/s/tools/angles.ts CHANGED
@@ -1,49 +1,49 @@
1
1
 
2
- import {Scalar} from "./scalar.js"
2
+ import {Scalar} from "../core/scalar.js"
3
3
 
4
- const pi = Math.PI
4
+ export const pi = Math.PI
5
5
 
6
- export const Radians = {
6
+ /** basic unit for measuring rotations */
7
+ export const radians = {
7
8
  circle: 2 * pi,
8
- halfcircle: pi,
9
+ halfCircle: pi,
9
10
 
10
11
  toDegrees(r: number) {
11
12
  return r * (180 / pi)
12
13
  },
14
+
13
15
  toArcseconds(r: number) {
14
- return Radians.toDegrees(r) * 3600
16
+ return radians.toDegrees(r) * 3600
15
17
  },
18
+
16
19
  toTurns(r: number) {
17
- return r / Radians.circle
20
+ return r / radians.circle
18
21
  },
19
22
 
20
23
  circleDistance(radiansA: number, radiansB: number): number {
21
- const diff = Math.abs(Scalar.wrap(radiansA - radiansB, 0, Radians.circle))
22
- return Math.min(diff, Radians.circle - diff)
24
+ const diff = Math.abs(Scalar.wrap(radiansA - radiansB, 0, radians.circle))
25
+ return Math.min(diff, radians.circle - diff)
23
26
  },
24
27
  }
25
28
 
26
- export const Turns = {
27
- toRadians(t: number) {
28
- return t * Radians.circle
29
- },
30
- toDegrees(t: number) {
31
- return Radians.toDegrees(Turns.toRadians(t))
32
- },
29
+ /** convert turns to radians */
30
+ export function turns(t: number) {
31
+ return t * radians.circle
33
32
  }
33
+ turns.toRadians = turns
34
+ turns.toDegrees = (t: number) => radians.toDegrees(turns(t))
34
35
 
35
- export const Arcseconds = {
36
- toRadians(a: number) {
37
- return Degrees.toRadians(a / 3600)
38
- },
36
+ /** convert arcseconds to radians */
37
+ export function arcseconds(a: number) {
38
+ return degrees.toRadians(a / 3600)
39
39
  }
40
+ arcseconds.toRadians = arcseconds
41
+ arcseconds.toDegrees = (a: number) => radians.toDegrees(arcseconds(a))
40
42
 
41
- export const Degrees = {
42
- toRadians(d: number) {
43
- return d * (pi / 180)
44
- },
45
- toTurns(d: number) {
46
- return Radians.toTurns(Degrees.toRadians(d))
47
- },
43
+ /** convert degrees to radians */
44
+ export function degrees(d: number) {
45
+ return d * (pi / 180)
48
46
  }
47
+ degrees.toRadians = degrees
48
+ degrees.toTurns = (d: number) => radians.toTurns(degrees(d))
49
49
 
@@ -0,0 +1,13 @@
1
+
2
+ import {createNoise2D} from "simplex-noise"
3
+ import {Random} from "./randy.js"
4
+
5
+ export function makeNoise(random: Random) {
6
+ const noise2d = createNoise2D(random)
7
+
8
+ return (x: number, y = 0, scale = 1) => {
9
+ const s = noise2d(x * scale, y * scale)
10
+ return (s + 1) / 2
11
+ }
12
+ }
13
+
package/s/tools/spline.ts CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- import {Scalar} from "./scalar.js"
2
+ import {Scalar} from "../core/scalar.js"
3
3
  import {XyArray} from "../core/vec2.js"
4
4
 
5
5
  /** resolve a number within a linear spline. */
@@ -40,50 +40,44 @@ export function catmullRom(x: number, points: XyArray[]) {
40
40
 
41
41
  if (x >= x1 && x <= x2) {
42
42
  const t = (x - x1) / (x2 - x1)
43
- return helpers.catmullRom(t, points[i - 1], points[i], points[i + 1], points[i + 2])
43
+ return catmullRomMechanics(t, points[i - 1], points[i], points[i + 1], points[i + 2])
44
44
  }
45
45
  }
46
46
 
47
47
  throw new Error("x is out of bounds, try again")
48
48
  }
49
49
 
50
- export const ez = {
51
-
52
- /** simple linear spline where the control points are equally-spaced based on their array indices (x is expected to be between 0 and 1). */
53
- linear(x: number, points: number[]) {
54
- if (points.length < 2)
55
- throw new Error("need at least two points, come on")
50
+ /** simple linear spline where the control points are equally-spaced based on their array indices (x is expected to be between 0 and 1). */
51
+ export function ezLinear(x: number, points: number[]) {
52
+ if (points.length < 2)
53
+ throw new Error("need at least two points, come on")
56
54
 
57
- const points2 = points.map(
58
- (p, index): XyArray =>
59
- [Scalar.clamp(index / (points.length - 1)), p]
60
- )
55
+ const points2 = points.map(
56
+ (p, index): XyArray =>
57
+ [Scalar.clamp(index / (points.length - 1)), p]
58
+ )
61
59
 
62
- return linear(Scalar.clamp(x), points2)
63
- }
60
+ return linear(Scalar.clamp(x), points2)
64
61
  }
65
62
 
66
- namespace helpers {
67
-
68
- /** internal big-brain maths for the catmull-rom implementation */
69
- export function catmullRom(
70
- t: number,
71
- [,p0]: XyArray,
72
- [,p1]: XyArray,
73
- [,p2]: XyArray,
74
- [,p3]: XyArray,
75
- ) {
76
-
77
- const t2 = t * t
78
- const t3 = t2 * t
79
-
80
- // coefficients for the cubic polynomial (Catmull-Rom)
81
- const a = -0.5 * p0 + 1.5 * p1 - 1.5 * p2 + 0.5 * p3
82
- const b = p0 - 2.5 * p1 + 2 * p2 - 0.5 * p3
83
- const c = -0.5 * p0 + 0.5 * p2
84
- const d = p1
85
-
86
- return a * t3 + b * t2 + c * t + d
87
- }
63
+ /** internal big-brain maths for the catmull-rom implementation */
64
+ function catmullRomMechanics(
65
+ t: number,
66
+ [,p0]: XyArray,
67
+ [,p1]: XyArray,
68
+ [,p2]: XyArray,
69
+ [,p3]: XyArray,
70
+ ) {
71
+
72
+ const t2 = t * t
73
+ const t3 = t2 * t
74
+
75
+ // coefficients for the cubic polynomial (Catmull-Rom)
76
+ const a = -0.5 * p0 + 1.5 * p1 - 1.5 * p2 + 0.5 * p3
77
+ const b = p0 - 2.5 * p1 + 2 * p2 - 0.5 * p3
78
+ const c = -0.5 * p0 + 0.5 * p2
79
+ const d = p1
80
+
81
+ return a * t3 + b * t2 + c * t + d
88
82
  }
89
83
 
@@ -1,7 +1,7 @@
1
1
  export declare class Circular {
2
2
  x: number;
3
3
  constructor(x: number);
4
- clone(): Circular;
4
+ dup(): Circular;
5
5
  set(x: number): this;
6
6
  static value(x: number | Circular): number;
7
7
  static normalize(x: number): number;
@@ -5,7 +5,7 @@ export class Circular {
5
5
  constructor(x) {
6
6
  this.x = x;
7
7
  }
8
- clone() {
8
+ dup() {
9
9
  return new Circular(this.x);
10
10
  }
11
11
  set(x) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular.js","sourceRoot":"","sources":["../../s/core/circular.ts"],"names":[],"mappings":"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"}
package/x/core/quat.d.ts CHANGED
@@ -17,9 +17,10 @@ export declare class Quat {
17
17
  static from(q: XyzwArray | Xyzw): Quat;
18
18
  static rotate_(pitch: number, yaw: number, roll: number): Quat;
19
19
  static rotate(vec: Xyz): Quat;
20
+ array(): XyzwArray;
20
21
  toJSON(): XyzwArray;
21
22
  toString(): string;
22
- clone(): Quat;
23
+ dup(): Quat;
23
24
  lengthSquared(): number;
24
25
  length(): number;
25
26
  isUnit(epsilon?: number): boolean;
@@ -35,6 +36,6 @@ export declare class Quat {
35
36
  rotateAroundAxis(angle: number, axis: Xyz, global?: boolean): Quat;
36
37
  set_(x: number, y: number, z: number, w: number): this;
37
38
  set({ x, y, z, w }: Xyzw): this;
38
- multiply_(x2: number, y2: number, z2: number, w2: number): Quat;
39
- multiply(...quats: Quat[]): this;
39
+ mul_(x2: number, y2: number, z2: number, w2: number): Quat;
40
+ mul(...quats: Quat[]): this;
40
41
  }
package/x/core/quat.js CHANGED
@@ -26,14 +26,17 @@ export class Quat {
26
26
  static rotate(vec) {
27
27
  return this.identity().rotate(vec);
28
28
  }
29
- toJSON() {
29
+ array() {
30
30
  const { x, y, z, w } = this;
31
31
  return [x, y, z, w];
32
32
  }
33
+ toJSON() {
34
+ return this.array();
35
+ }
33
36
  toString() {
34
37
  return `(Quat x${this.x.toFixed(2)}, y${this.y.toFixed(2)}, z${this.z.toFixed(2)}, w${this.w.toFixed(2)})`;
35
38
  }
36
- clone() {
39
+ dup() {
37
40
  return new Quat(...this.toJSON());
38
41
  }
39
42
  lengthSquared() {
@@ -81,11 +84,11 @@ export class Quat {
81
84
  }
82
85
  transform_(x, y, z, w, global = false) {
83
86
  if (global) {
84
- const original = this.clone();
85
- return this.set_(x, y, z, w).multiply(original);
87
+ const original = this.dup();
88
+ return this.set_(x, y, z, w).mul(original);
86
89
  }
87
90
  else {
88
- return this.multiply_(x, y, z, w);
91
+ return this.mul_(x, y, z, w);
89
92
  }
90
93
  }
91
94
  transform({ x, y, z, w }, global = false) {
@@ -130,7 +133,7 @@ export class Quat {
130
133
  this.w = w;
131
134
  return this;
132
135
  }
133
- multiply_(x2, y2, z2, w2) {
136
+ mul_(x2, y2, z2, w2) {
134
137
  const { x, y, z, w } = this;
135
138
  this.x = w * x2 + x * w2 + y * z2 - z * y2;
136
139
  this.y = w * y2 - x * z2 + y * w2 + z * x2;
@@ -138,9 +141,9 @@ export class Quat {
138
141
  this.w = w * w2 - x * x2 - y * y2 - z * z2;
139
142
  return this;
140
143
  }
141
- multiply(...quats) {
144
+ mul(...quats) {
142
145
  for (const { x, y, z, w } of quats)
143
- this.multiply_(x, y, z, w);
146
+ this.mul_(x, y, z, w);
144
147
  return this;
145
148
  }
146
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quat.js","sourceRoot":"","sources":["../../s/core/quat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quat.js","sourceRoot":"","sources":["../../s/core/quat.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ export declare class Scalar {
2
2
  x: number;
3
3
  constructor(x: number);
4
4
  static new(x: number): Scalar;
5
- clone(): Scalar;
5
+ dup(): Scalar;
6
6
  set(x: number): this;
7
7
  static isBetween(x: number, a?: number, b?: number): boolean;
8
8
  isBetween(a?: number, b?: number): boolean;
@@ -10,7 +10,7 @@ export declare class Scalar {
10
10
  isNear(y: number, epsilon?: number): boolean;
11
11
  static add(...nums: number[]): number;
12
12
  add(...nums: number[]): this;
13
- subtract(...nums: number[]): this;
13
+ sub(...nums: number[]): this;
14
14
  static atLeast(x: number, least?: number): number;
15
15
  atLeast(least?: number): this;
16
16
  static atMost(x: number, most?: number): number;
@@ -6,7 +6,7 @@ export class Scalar {
6
6
  static new(x) {
7
7
  return new this(x);
8
8
  }
9
- clone() {
9
+ dup() {
10
10
  return new Scalar(this.x);
11
11
  }
12
12
  set(x) {
@@ -43,7 +43,7 @@ export class Scalar {
43
43
  this.x = Scalar.add(this.x, ...nums);
44
44
  return this;
45
45
  }
46
- subtract(...nums) {
46
+ sub(...nums) {
47
47
  for (const n of nums)
48
48
  this.x -= n;
49
49
  return this;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../s/core/scalar.ts"],"names":[],"mappings":"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"}
package/x/core/vec2.d.ts CHANGED
@@ -17,8 +17,9 @@ export declare class Vec2 implements Xy {
17
17
  static min(...vecs: Xy[]): Vec2;
18
18
  static max(...vecs: Xy[]): Vec2;
19
19
  static fromAngle(radians: number): Vec2;
20
- clone(): Vec2;
20
+ dup(): Vec2;
21
21
  [Symbol.iterator](): Generator<number, void, unknown>;
22
+ array(): XyArray;
22
23
  toJSON(): XyArray;
23
24
  toString(): string;
24
25
  /** mutator */
@@ -73,27 +74,27 @@ export declare class Vec2 implements Xy {
73
74
  /** mutator */
74
75
  addBy(delta: number): this;
75
76
  /** mutator */
76
- subtractBy(delta: number): this;
77
+ subBy(delta: number): this;
77
78
  /** mutator */
78
- multiplyBy(coefficient: number): this;
79
+ mulBy(coefficient: number): this;
79
80
  /** mutator */
80
- divideBy(divisor: number): this;
81
+ divBy(divisor: number): this;
81
82
  /** mutator */
82
83
  add_(x: number, y: number): this;
83
84
  /** mutator */
84
85
  add(...vecs: Xy[]): this;
85
86
  /** mutator */
86
- subtract_(x: number, y: number): this;
87
+ sub_(x: number, y: number): this;
87
88
  /** mutator */
88
- subtract(...vecs: Xy[]): this;
89
+ sub(...vecs: Xy[]): this;
89
90
  /** mutator */
90
- multiply_(x: number, y: number): this;
91
+ mul_(x: number, y: number): this;
91
92
  /** mutator */
92
- multiply(...vecs: Xy[]): this;
93
+ mul(...vecs: Xy[]): this;
93
94
  /** mutator */
94
- divide_(x: number, y: number): this;
95
+ div_(x: number, y: number): this;
95
96
  /** mutator */
96
- divide(...vecs: Xy[]): this;
97
+ div(...vecs: Xy[]): this;
97
98
  /** mutator */
98
99
  lerp_(x: number, y: number, fraction: number): this;
99
100
  /** mutator */