@bhbr/affr2 0.0.0-stage → 1.0.0

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.
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # Temporary Holding Version
1
+ # Description
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ This package provides functions for vertex operations in 2D, and a class of affine vertex transforms.
@@ -0,0 +1,32 @@
1
+ import { BetterObject } from '@bhbr/better-things';
2
+ import { vertex } from './vertex.js';
3
+ export declare class Transform extends BetterObject {
4
+ anchor: vertex;
5
+ angle: number;
6
+ scale: number;
7
+ shift: vertex;
8
+ defaults(): object;
9
+ static identity(): Transform;
10
+ det(): number;
11
+ toCSSString(): string;
12
+ toString(): string;
13
+ toMatrix(): string;
14
+ a(): number;
15
+ b(): number;
16
+ c(): number;
17
+ d(): number;
18
+ e(): number;
19
+ f(): number;
20
+ inverse(): Transform;
21
+ appliedTo(p: vertex): vertex;
22
+ appliedToVertices(vertices: Array<vertex>): Array<vertex>;
23
+ copy(): Transform;
24
+ rightComposedWith(t: Transform): Transform;
25
+ rightComposeWith(t: Transform): void;
26
+ leftComposeWith(t: Transform): void;
27
+ leftComposedWith(t: Transform): Transform;
28
+ interpolate(newTransform: Transform, weight: number): Transform;
29
+ withoutAnchor(): Transform;
30
+ equals(t: Transform): boolean;
31
+ }
32
+ //# sourceMappingURL=Transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../src/Transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,MAAM,EAAqL,MAAM,aAAa,CAAA;AAEvN,qBAAa,SAAU,SAAQ,YAAY;IAK1C,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IAEb,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,QAAQ,IAAI,SAAS;IAE5B,GAAG,IAAI,MAAM;IAEb,WAAW,IAAI,MAAM;IAUrB,QAAQ,IAAI,MAAM;IAQlB,QAAQ,IAAI,MAAM;IAKlB,CAAC,IAAI,MAAM;IACX,CAAC,IAAI,MAAM;IACX,CAAC,IAAI,MAAM;IACX,CAAC,IAAI,MAAM;IACX,CAAC,IAAI,MAAM;IACX,CAAC,IAAI,MAAM;IAEX,OAAO,IAAI,SAAS;IAYpB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAO5B,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IASzD,IAAI,IAAI,SAAS;IAMjB,iBAAiB,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAW1C,gBAAgB,CAAC,CAAC,EAAE,SAAS;IAI7B,eAAe,CAAC,CAAC,EAAE,SAAS;IAI5B,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAIzC,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IASnD,aAAa,IAAI,SAAS;IAM1B,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO;CAoB7B"}
@@ -0,0 +1,117 @@
1
+ import { BetterObject } from '@bhbr/better-things';
2
+ import { DEGREES } from './constants.js';
3
+ import { vertexOrigin, vertexIsZero, vertexOpposite, vertexAdd, vertexSubtract, vertexCentrallyRotatedBy, vertexCentrallyScaledBy, vertexTranslatedBy, vertexInterpolate } from './vertex.js';
4
+ export class Transform extends BetterObject {
5
+ /*
6
+ A Transform describes the positioning of a Mobject relative to its parent. Transforms compose as mobjects are nested into each other.
7
+ */
8
+ anchor; // the point around which the Transform scales and rotates
9
+ angle;
10
+ scale;
11
+ shift; // translations are mainly realized by mobject anchors, but we offer the option. (Note that Transform({ anchor: p, angle: 0, scale: 1 }) is the identity, not a translation).
12
+ defaults() {
13
+ return {
14
+ anchor: vertexOrigin(),
15
+ angle: 0,
16
+ scale: 1,
17
+ shift: vertexOrigin()
18
+ };
19
+ }
20
+ static identity() { return new Transform(); }
21
+ det() { return this.scale ** 2; }
22
+ toCSSString() {
23
+ let str1 = vertexIsZero(this.shift) ? `` : `translate(${this.shift[0]}px,${this.shift[1]}px) `;
24
+ let str2 = vertexIsZero(this.anchor) || (this.scale == 1 && this.angle == 0) ? `` : `translate(${-this.anchor[0]}px,${-this.anchor[1]}px) `;
25
+ let str3 = this.scale == 1 ? `` : `scale(${this.scale}) `;
26
+ let str4 = this.angle == 0 ? `` : `rotate(${-this.angle / DEGREES}deg) `;
27
+ let str5 = vertexIsZero(this.anchor) || (this.scale == 1 && this.angle == 0) ? `` : `translate(${this.anchor[0]}px,${this.anchor[1]}px) `;
28
+ return (str1 + str2 + str3 + str4 + str5).replace(` `, ` `).trim();
29
+ }
30
+ toString() {
31
+ // for debugging
32
+ return `Transform(anchor: ${this.anchor}, angle: ${this.angle / DEGREES}°, scale: ${this.scale}, shift: ${this.shift})`;
33
+ }
34
+ // Matrix representation just in case anyone wants to do something fancy
35
+ toMatrix() {
36
+ // for debugging
37
+ return `[[${this.a()} ${this.b()}] [${this.c()} ${this.d()}]]; [${this.e()} ${this.f()}]`;
38
+ }
39
+ a() { return this.scale * Math.cos(this.angle); }
40
+ b() { return this.scale * Math.sin(this.angle); }
41
+ c() { return -this.scale * Math.sin(this.angle); }
42
+ d() { return this.scale * Math.cos(this.angle); }
43
+ e() { return (1 - this.a()) * this.anchor[0] - this.b() * this.anchor[1] + this.shift[0]; }
44
+ f() { return -this.c() * this.anchor[0] + (1 - this.d()) * this.anchor[1] + this.shift[1]; }
45
+ inverse() {
46
+ let t = new Transform({
47
+ angle: -this.angle,
48
+ scale: 1 / this.scale
49
+ });
50
+ t.update({
51
+ shift: vertexOpposite(t.appliedTo(this.shift)),
52
+ anchor: this.anchor
53
+ });
54
+ return t;
55
+ }
56
+ appliedTo(p) {
57
+ return [
58
+ this.a() * p[0] + this.b() * p[1] + this.e(),
59
+ this.c() * p[0] + this.d() * p[1] + this.f()
60
+ ];
61
+ }
62
+ appliedToVertices(vertices) {
63
+ // This method also accepts an undertyped argument
64
+ let ret = [];
65
+ for (let v of vertices) {
66
+ ret.push(this.appliedTo(v));
67
+ }
68
+ return ret;
69
+ }
70
+ copy() {
71
+ let ct = new Transform();
72
+ ct.copyFrom(this);
73
+ return ct;
74
+ }
75
+ rightComposedWith(t) {
76
+ let v = vertexSubtract(vertexAdd(t.shift, t.anchor), this.anchor);
77
+ let w = vertexSubtract(vertexAdd(this.shift, this.anchor), t.anchor);
78
+ return new Transform({
79
+ anchor: t.anchor,
80
+ scale: this.scale * t.scale,
81
+ angle: this.angle + t.angle,
82
+ shift: vertexTranslatedBy(vertexCentrallyScaledBy(vertexCentrallyRotatedBy(v, this.angle), this.scale), w)
83
+ });
84
+ }
85
+ rightComposeWith(t) {
86
+ this.copyFrom(this.rightComposedWith(t));
87
+ }
88
+ leftComposeWith(t) {
89
+ this.copyFrom(this.leftComposedWith(t));
90
+ }
91
+ leftComposedWith(t) {
92
+ return t.rightComposedWith(this);
93
+ }
94
+ interpolate(newTransform, weight) {
95
+ return new Transform({
96
+ anchor: vertexInterpolate(this.anchor, newTransform.anchor, weight),
97
+ angle: (1 - weight) * this.angle + weight * newTransform.angle,
98
+ scale: (1 - weight) * this.scale + weight * newTransform.scale,
99
+ shift: vertexInterpolate(this.shift, newTransform.shift, weight)
100
+ });
101
+ }
102
+ withoutAnchor() {
103
+ let t = this.copy();
104
+ t.anchor = vertexOrigin();
105
+ return t;
106
+ }
107
+ equals(t) {
108
+ let tolerance = 1e-6;
109
+ return (Math.abs(this.a() - t.a()) < tolerance
110
+ && Math.abs(this.b() - t.b()) < tolerance
111
+ && Math.abs(this.c() - t.c()) < tolerance
112
+ && Math.abs(this.d() - t.d()) < tolerance
113
+ && Math.abs(this.e() - t.e()) < tolerance
114
+ && Math.abs(this.f() - t.f()) < tolerance);
115
+ }
116
+ }
117
+ //# sourceMappingURL=Transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transform.js","sourceRoot":"","sources":["../src/Transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const TAU: number;
2
+ export declare const PI: number;
3
+ export declare const DEGREES: number;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,GAAG,EAAE,MAAoB,CAAA;AACtC,eAAO,MAAM,EAAE,EAAE,MAAgB,CAAA;AACjC,eAAO,MAAM,OAAO,EAAE,MAAkB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export const TAU = 2 * Math.PI;
2
+ export const PI = TAU / 2;
3
+ export const DEGREES = TAU / 360;
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,GAAG,GAAW,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;AACtC,MAAM,CAAC,MAAM,EAAE,GAAW,GAAG,GAAG,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,GAAG,GAAG,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { Transform } from './Transform.js';
2
+ export { vertex, vertexArray, isVertex, isVertexArray, vertexX, vertexY, vertexOrigin, vertexDot, vertexNorm2, vertexNorm, vertexIsCloseTo, vertexIsZero, vertexEquals, vertexArrayEquals, vertexCopyFrom, vertexUpdate, vertexCopy, vertexImageUnder, vertexApply, vertexTranslatedBy, vertexTranslateBy, vertexCentrallyRotatedBy, vertexCentrallyRotateBy, vertexRotateBy, vertexCentrallyScaledBy, vertexCentrallyScaleBy, vertexNormalized, vertexNormalize, vertexAdd, vertexMultiply, vertexDivide, vertexOpposite, vertexSubtract, vertexIsNaN, vertexInterpolate, vertexToString, vertexInnerProduct, vertexOuterProduct, vertexArrayImageUnder } from './vertex.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EACN,MAAM,EACN,WAAW,EACX,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,aAAa,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { Transform } from './Transform.js';
2
+ export { isVertex, isVertexArray, vertexX, vertexY, vertexOrigin, vertexDot, vertexNorm2, vertexNorm, vertexIsCloseTo, vertexIsZero, vertexEquals, vertexArrayEquals, vertexCopyFrom, vertexUpdate, vertexCopy, vertexImageUnder, vertexApply, vertexTranslatedBy, vertexTranslateBy, vertexCentrallyRotatedBy, vertexCentrallyRotateBy, vertexRotateBy, vertexCentrallyScaledBy, vertexCentrallyScaleBy, vertexNormalized, vertexNormalize, vertexAdd, vertexMultiply, vertexDivide, vertexOpposite, vertexSubtract, vertexIsNaN, vertexInterpolate, vertexToString, vertexInnerProduct, vertexOuterProduct, vertexArrayImageUnder } from './vertex.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAGN,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,aAAa,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { Transform } from './Transform.js';
2
+ export type vertex = Array<number>;
3
+ export type vertexArray = Array<vertex>;
4
+ export declare function isVertex(obj: any): boolean;
5
+ export declare function isVertexArray(obj: any): boolean;
6
+ export declare function vertexX(v: vertex): number;
7
+ export declare function vertexY(v: vertex): number;
8
+ export declare function vertexOrigin(): vertex;
9
+ export declare function vertexDot(v: vertex, w: vertex): number;
10
+ export declare function vertexNorm2(v: vertex): number;
11
+ export declare function vertexNorm(v: vertex): number;
12
+ export declare function vertexIsCloseTo(v: vertex, w: vertex, tolerance?: number): boolean;
13
+ export declare function vertexIsZero(v: vertex): boolean;
14
+ export declare function vertexEquals(v: vertex, w: vertex): boolean;
15
+ export declare function vertexArrayEquals(va: vertexArray, wa: vertexArray): boolean;
16
+ export declare function vertexCopyFrom(v: vertex, w: vertex): void;
17
+ export declare function vertexUpdate(v: vertex, w: vertex): void;
18
+ export declare function vertexCopy(v: vertex): vertex;
19
+ export declare function vertexImageUnder(v: vertex, t: Transform): vertex;
20
+ export declare function vertexApply(v: vertex, t: Transform): void;
21
+ export declare function vertexTranslatedBy(v: vertex, w: vertex): vertex;
22
+ export declare function vertexTranslateBy(v: vertex, w: vertex): void;
23
+ export declare function vertexCentrallyRotatedBy(v: vertex, angle: number): vertex;
24
+ export declare function vertexRotatedBy(v: vertex, angle: number, center: vertex): vertex;
25
+ export declare function vertexCentrallyRotateBy(v: vertex, angle: number): void;
26
+ export declare function vertexRotateBy(v: vertex, angle: number, center: vertex): void;
27
+ export declare function vertexCentrallyScaledBy(v: vertex, scale: number): vertex;
28
+ export declare function vertexScaledBy(v: vertex, scale: number, center: vertex | undefined): vertex;
29
+ export declare function vertexCentrallyScaleBy(v: vertex, scale: number, center: vertex | undefined): void;
30
+ export declare function vertexNormalized(v: vertex): vertex;
31
+ export declare function vertexNormalize(v: vertex): void;
32
+ export declare function vertexAdd(v: vertex, w: vertex): vertex;
33
+ export declare function vertexMultiply(v: vertex, factor: number): vertex;
34
+ export declare function vertexDivide(v: vertex, factor: number): vertex;
35
+ export declare function vertexOpposite(v: vertex): vertex;
36
+ export declare function vertexSubtract(v: vertex, w: vertex): vertex;
37
+ export declare function vertexIsNaN(v: vertex): boolean;
38
+ export declare function vertexInterpolate(v: vertex, w: vertex, weight: number): vertex;
39
+ export declare function vertexToString(v: vertex): string;
40
+ export declare function vertexInnerProduct(v: vertex, w: vertex): number;
41
+ export declare function vertexOuterProduct(v: vertex, w: vertex): number;
42
+ export declare function vertexArrayInterpolate(vtxArray1: vertexArray, vtxArray2: vertexArray, weight: any): vertexArray;
43
+ export declare function vertexArrayImageUnder(vtxArray: vertexArray, transform: Transform): vertexArray;
44
+ //# sourceMappingURL=vertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex.d.ts","sourceRoot":"","sources":["../src/vertex.ts"],"names":[],"mappings":"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"}
package/dist/vertex.js ADDED
@@ -0,0 +1,169 @@
1
+ export function isVertex(obj) {
2
+ if (!(obj instanceof Array)) {
3
+ return false;
4
+ }
5
+ if (obj.length != 2) {
6
+ return false;
7
+ }
8
+ return (typeof obj[0] == 'number') && (typeof obj[1] == 'number');
9
+ }
10
+ export function isVertexArray(obj) {
11
+ if (!(obj instanceof Array)) {
12
+ return false;
13
+ }
14
+ return obj.every((el) => isVertex(el));
15
+ }
16
+ export function vertexX(v) { return v[0]; }
17
+ export function vertexY(v) { return v[1]; }
18
+ export function vertexOrigin() { return [0, 0]; }
19
+ export function vertexDot(v, w) {
20
+ return v[0] * w[0] + v[1] * w[1];
21
+ }
22
+ export function vertexNorm2(v) {
23
+ return v[0] ** 2 + v[1] ** 2;
24
+ }
25
+ export function vertexNorm(v) {
26
+ return Math.sqrt(vertexNorm2(v));
27
+ }
28
+ export function vertexIsCloseTo(v, w, tolerance = 1e-6) {
29
+ if (vertexIsNaN(v)) {
30
+ return false;
31
+ }
32
+ if (vertexIsNaN(w)) {
33
+ return false;
34
+ }
35
+ if (!tolerance) {
36
+ tolerance = 1;
37
+ }
38
+ return vertexNorm2(vertexSubtract(v, w)) < tolerance ** 2;
39
+ }
40
+ export function vertexIsZero(v) {
41
+ return v[0] == 0 && v[1] == 0;
42
+ }
43
+ export function vertexEquals(v, w) {
44
+ return vertexIsCloseTo(v, w, 1e-6);
45
+ }
46
+ export function vertexArrayEquals(va, wa) {
47
+ if (va.length != wa.length) {
48
+ return false;
49
+ }
50
+ for (let i = 0; i < va.length; i++) {
51
+ if (!vertexEquals(va[i], wa[i])) {
52
+ return false;
53
+ }
54
+ }
55
+ return true;
56
+ }
57
+ export function vertexCopyFrom(v, w) {
58
+ v[0] = w[0];
59
+ v[1] = w[1];
60
+ }
61
+ export function vertexUpdate(v, w) {
62
+ vertexCopyFrom(v, w);
63
+ }
64
+ export function vertexCopy(v) {
65
+ return [v[0], v[1]];
66
+ }
67
+ export function vertexImageUnder(v, t) {
68
+ return [t.a() * v[0] + t.b() * v[1] + t.e(), t.c() * v[0] + t.d() * v[1] + t.f()];
69
+ }
70
+ export function vertexApply(v, t) {
71
+ vertexCopyFrom(v, vertexImageUnder(v, t));
72
+ }
73
+ export function vertexTranslatedBy(v, w) {
74
+ return vertexAdd(v, w);
75
+ }
76
+ export function vertexTranslateBy(v, w) {
77
+ vertexCopyFrom(v, vertexTranslatedBy(v, w));
78
+ }
79
+ export function vertexCentrallyRotatedBy(v, angle) {
80
+ let c = Math.cos(angle);
81
+ let s = Math.sin(angle);
82
+ return [c * v[0] + s * v[1], -s * v[0] + c * v[1]];
83
+ }
84
+ export function vertexRotatedBy(v, angle, center) {
85
+ if (vertexIsZero(center)) {
86
+ return vertexCentrallyRotatedBy(v, angle);
87
+ }
88
+ let w = vertexSubtract(v, center);
89
+ let rw = vertexCentrallyRotatedBy(w, angle);
90
+ return vertexAdd(rw, center);
91
+ }
92
+ export function vertexCentrallyRotateBy(v, angle) {
93
+ vertexCopyFrom(v, vertexCentrallyRotatedBy(v, angle));
94
+ }
95
+ export function vertexRotateBy(v, angle, center) {
96
+ if (vertexIsZero(center)) {
97
+ vertexCopyFrom(v, vertexCentrallyRotatedBy(v, angle));
98
+ }
99
+ vertexCopyFrom(v, vertexRotatedBy(v, angle, center));
100
+ }
101
+ export function vertexCentrallyScaledBy(v, scale) {
102
+ return [scale * v[0], scale * v[1]];
103
+ }
104
+ export function vertexScaledBy(v, scale, center) {
105
+ if (center == undefined || vertexIsZero(center)) {
106
+ return vertexCentrallyScaledBy(v, scale);
107
+ }
108
+ let w = vertexSubtract(v, center);
109
+ let rw = vertexCentrallyScaledBy(w, scale);
110
+ return vertexAdd(rw, center);
111
+ }
112
+ export function vertexCentrallyScaleBy(v, scale, center) {
113
+ if (center == undefined) {
114
+ vertexCopyFrom(v, vertexCentrallyScaledBy(v, scale));
115
+ }
116
+ vertexCopyFrom(v, vertexScaledBy(v, scale, center));
117
+ }
118
+ export function vertexNormalized(v) {
119
+ let l = 1 / vertexNorm(v);
120
+ return vertexCentrallyScaledBy(v, l);
121
+ }
122
+ export function vertexNormalize(v) {
123
+ vertexCopyFrom(v, vertexNormalized(v));
124
+ }
125
+ export function vertexAdd(v, w) {
126
+ return [v[0] + w[0], v[1] + w[1]];
127
+ }
128
+ export function vertexMultiply(v, factor) {
129
+ return [v[0] * factor, v[1] * factor];
130
+ }
131
+ export function vertexDivide(v, factor) {
132
+ return [v[0] / factor, v[1] / factor];
133
+ }
134
+ export function vertexOpposite(v) {
135
+ return [-v[0], -v[1]];
136
+ }
137
+ export function vertexSubtract(v, w) {
138
+ return [v[0] - w[0], v[1] - w[1]];
139
+ }
140
+ export function vertexIsNaN(v) {
141
+ return (isNaN(v[0]) || isNaN(v[1]));
142
+ }
143
+ export function vertexInterpolate(v, w, weight) {
144
+ return [v[0] + weight * (w[0] - v[0]), v[1] + weight * (w[1] - v[1])];
145
+ }
146
+ export function vertexToString(v) {
147
+ return `[${v[0]}, ${v[1]}]`;
148
+ }
149
+ export function vertexInnerProduct(v, w) {
150
+ return vertexDot(v, w);
151
+ }
152
+ export function vertexOuterProduct(v, w) {
153
+ return v[0] * w[1] - v[1] * w[0];
154
+ }
155
+ export function vertexArrayInterpolate(vtxArray1, vtxArray2, weight) {
156
+ let interpolatedVertexArray = [];
157
+ for (let i = 0; i < vtxArray1.length; i++) {
158
+ interpolatedVertexArray.push(vertexInterpolate(vtxArray1[i], vtxArray2[i], weight));
159
+ }
160
+ return interpolatedVertexArray;
161
+ }
162
+ export function vertexArrayImageUnder(vtxArray, transform) {
163
+ let image = [];
164
+ for (let i = 0; i < vtxArray.length; i++) {
165
+ image.push(vertexImageUnder(vtxArray[i], transform));
166
+ }
167
+ return image;
168
+ }
169
+ //# sourceMappingURL=vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex.js","sourceRoot":"","sources":["../src/vertex.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,38 @@
1
1
  {
2
2
  "name": "@bhbr/affr2",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "Vertex operations in the affine plane (translations, rotations and scalings)",
5
+ "type": "module",
6
+ "main": "./dist/affr2.js",
7
+ "types": "./dist/affr2.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/affr2.d.ts",
11
+ "import": "./dist/affr2.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist/",
16
+ "!dist/_tests/"
17
+ ],
18
+ "scripts": {
19
+ "build": "cd build && ./build.sh",
20
+ "test": "node dist/_tests/affr2_tests.js",
21
+ "prepack": "npm run build"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/bhbr/affr2"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/bhbr/affr2/issues"
29
+ },
30
+ "homepage": "https://github.com/bhbr/affr2#readme",
31
+ "keywords": [],
32
+ "author": "Ben Hambrecht",
33
+ "license": "ISC",
34
+ "dependencies": {
35
+ "@bhbr/better-things": "^1.0.2",
36
+ "@bhbr/tsts": "^1.1.3"
37
+ }
38
+ }