@adam26davidson/char-matrix-react 0.0.1
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/dist/char-matrix/src/Element/ContainerElement.d.ts +28 -0
- package/dist/char-matrix/src/Element/ContainerElement.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/ContainerElement.js +128 -0
- package/dist/char-matrix/src/Element/ContainerElement.js.map +1 -0
- package/dist/char-matrix/src/Element/Element.d.ts +31 -0
- package/dist/char-matrix/src/Element/Element.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/Element.js +190 -0
- package/dist/char-matrix/src/Element/Element.js.map +1 -0
- package/dist/char-matrix/src/Element/ElementBase.d.ts +66 -0
- package/dist/char-matrix/src/Element/ElementBase.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/ElementBase.js +167 -0
- package/dist/char-matrix/src/Element/ElementBase.js.map +1 -0
- package/dist/char-matrix/src/Element/ElementDrawing.d.ts +41 -0
- package/dist/char-matrix/src/Element/ElementDrawing.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/ElementDrawing.js +232 -0
- package/dist/char-matrix/src/Element/ElementDrawing.js.map +1 -0
- package/dist/char-matrix/src/Element/ElementInteraction.d.ts +21 -0
- package/dist/char-matrix/src/Element/ElementInteraction.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/ElementInteraction.js +110 -0
- package/dist/char-matrix/src/Element/ElementInteraction.js.map +1 -0
- package/dist/char-matrix/src/Element/ElementLayout.d.ts +25 -0
- package/dist/char-matrix/src/Element/ElementLayout.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/ElementLayout.js +152 -0
- package/dist/char-matrix/src/Element/ElementLayout.js.map +1 -0
- package/dist/char-matrix/src/Element/ParentElement.d.ts +24 -0
- package/dist/char-matrix/src/Element/ParentElement.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/ParentElement.js +58 -0
- package/dist/char-matrix/src/Element/ParentElement.js.map +1 -0
- package/dist/char-matrix/src/Element/TextElement.d.ts +28 -0
- package/dist/char-matrix/src/Element/TextElement.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/TextElement.js +214 -0
- package/dist/char-matrix/src/Element/TextElement.js.map +1 -0
- package/dist/char-matrix/src/Element/TransitionSequence.d.ts +15 -0
- package/dist/char-matrix/src/Element/TransitionSequence.d.ts.map +1 -0
- package/dist/char-matrix/src/Element/TransitionSequence.js +113 -0
- package/dist/char-matrix/src/Element/TransitionSequence.js.map +1 -0
- package/dist/char-matrix/src/constants.d.ts +8 -0
- package/dist/char-matrix/src/constants.d.ts.map +1 -0
- package/dist/char-matrix/src/constants.js +8 -0
- package/dist/char-matrix/src/constants.js.map +1 -0
- package/dist/char-matrix/src/index.d.ts +22 -0
- package/dist/char-matrix/src/index.d.ts.map +1 -0
- package/dist/char-matrix/src/index.js +20 -0
- package/dist/char-matrix/src/index.js.map +1 -0
- package/dist/char-matrix/src/interfaces/ElementAnimationHandler.d.ts +29 -0
- package/dist/char-matrix/src/interfaces/ElementAnimationHandler.d.ts.map +1 -0
- package/dist/char-matrix/src/interfaces/ElementAnimationHandler.js +2 -0
- package/dist/char-matrix/src/interfaces/ElementAnimationHandler.js.map +1 -0
- package/dist/char-matrix/src/interfaces/RenderTarget.d.ts +17 -0
- package/dist/char-matrix/src/interfaces/RenderTarget.d.ts.map +1 -0
- package/dist/char-matrix/src/interfaces/RenderTarget.js +2 -0
- package/dist/char-matrix/src/interfaces/RenderTarget.js.map +1 -0
- package/dist/char-matrix/src/interfaces/SurfaceTransform.d.ts +16 -0
- package/dist/char-matrix/src/interfaces/SurfaceTransform.d.ts.map +1 -0
- package/dist/char-matrix/src/interfaces/SurfaceTransform.js +2 -0
- package/dist/char-matrix/src/interfaces/SurfaceTransform.js.map +1 -0
- package/dist/char-matrix/src/types/Axes.d.ts +5 -0
- package/dist/char-matrix/src/types/Axes.d.ts.map +1 -0
- package/dist/char-matrix/src/types/Axes.js +4 -0
- package/dist/char-matrix/src/types/Axes.js.map +1 -0
- package/dist/char-matrix/src/types/CharMatrix.d.ts +21 -0
- package/dist/char-matrix/src/types/CharMatrix.d.ts.map +1 -0
- package/dist/char-matrix/src/types/CharMatrix.js +89 -0
- package/dist/char-matrix/src/types/CharMatrix.js.map +1 -0
- package/dist/char-matrix/src/types/IntPoint.d.ts +21 -0
- package/dist/char-matrix/src/types/IntPoint.d.ts.map +1 -0
- package/dist/char-matrix/src/types/IntPoint.js +59 -0
- package/dist/char-matrix/src/types/IntPoint.js.map +1 -0
- package/dist/char-matrix/src/types/NormPoint.d.ts +10 -0
- package/dist/char-matrix/src/types/NormPoint.d.ts.map +1 -0
- package/dist/char-matrix/src/types/NormPoint.js +28 -0
- package/dist/char-matrix/src/types/NormPoint.js.map +1 -0
- package/dist/char-matrix/src/types/RealPoint.d.ts +21 -0
- package/dist/char-matrix/src/types/RealPoint.d.ts.map +1 -0
- package/dist/char-matrix/src/types/RealPoint.js +58 -0
- package/dist/char-matrix/src/types/RealPoint.js.map +1 -0
- package/dist/char-matrix/src/utils/Logging.d.ts +4 -0
- package/dist/char-matrix/src/utils/Logging.d.ts.map +1 -0
- package/dist/char-matrix/src/utils/Logging.js +8 -0
- package/dist/char-matrix/src/utils/Logging.js.map +1 -0
- package/dist/char-matrix/src/utils/MiscUtils.d.ts +7 -0
- package/dist/char-matrix/src/utils/MiscUtils.d.ts.map +1 -0
- package/dist/char-matrix/src/utils/MiscUtils.js +37 -0
- package/dist/char-matrix/src/utils/MiscUtils.js.map +1 -0
- package/dist/char-matrix/src/utils/Octant.d.ts +42 -0
- package/dist/char-matrix/src/utils/Octant.d.ts.map +1 -0
- package/dist/char-matrix/src/utils/Octant.js +98 -0
- package/dist/char-matrix/src/utils/Octant.js.map +1 -0
- package/dist/char-matrix-react/src/ReactComponentElement.d.ts +25 -0
- package/dist/char-matrix-react/src/ReactComponentElement.d.ts.map +1 -0
- package/dist/char-matrix-react/src/ReactComponentElement.js +66 -0
- package/dist/char-matrix-react/src/ReactComponentElement.js.map +1 -0
- package/dist/char-matrix-react/src/ReactNodeConfig.d.ts +12 -0
- package/dist/char-matrix-react/src/ReactNodeConfig.d.ts.map +1 -0
- package/dist/char-matrix-react/src/ReactNodeConfig.js +2 -0
- package/dist/char-matrix-react/src/ReactNodeConfig.js.map +1 -0
- package/dist/char-matrix-react/src/ReactRenderTarget.d.ts +10 -0
- package/dist/char-matrix-react/src/ReactRenderTarget.d.ts.map +1 -0
- package/dist/char-matrix-react/src/ReactRenderTarget.js +2 -0
- package/dist/char-matrix-react/src/ReactRenderTarget.js.map +1 -0
- package/dist/char-matrix-react/src/index.d.ts +5 -0
- package/dist/char-matrix-react/src/index.d.ts.map +1 -0
- package/dist/char-matrix-react/src/index.js +2 -0
- package/dist/char-matrix-react/src/index.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CharMatrix } from "../types/CharMatrix";
|
|
2
|
+
import { IntPoint } from "../types/IntPoint";
|
|
3
|
+
/**
|
|
4
|
+
* A transform applied to the character matrix before rendering.
|
|
5
|
+
* Transforms are chained: the output of one becomes the input of the next.
|
|
6
|
+
*/
|
|
7
|
+
export interface SurfaceTransform {
|
|
8
|
+
/**
|
|
9
|
+
* Transform the source matrix and write results to the output matrix.
|
|
10
|
+
* @param source The input character matrix
|
|
11
|
+
* @param output The output character matrix to write to
|
|
12
|
+
* @param viewSize The dimensions of the view
|
|
13
|
+
*/
|
|
14
|
+
transform(source: CharMatrix, output: CharMatrix, viewSize: IntPoint): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=SurfaceTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SurfaceTransform.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/interfaces/SurfaceTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SurfaceTransform.js","sourceRoot":"","sources":["../../../../../char-matrix/src/interfaces/SurfaceTransform.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Axes.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/Axes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7B,eAAO,MAAM,CAAC,EAAE,IAAU,CAAC;AAC3B,eAAO,MAAM,CAAC,EAAE,IAAU,CAAC;AAC3B,eAAO,MAAM,IAAI,EAAE,IAAI,EAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Axes.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/Axes.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,CAAC,GAAS,GAAG,CAAC;AAC3B,MAAM,CAAC,MAAM,CAAC,GAAS,GAAG,CAAC;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IntPoint } from "./IntPoint";
|
|
2
|
+
export declare class CharMatrix {
|
|
3
|
+
private matrix;
|
|
4
|
+
constructor(size: IntPoint);
|
|
5
|
+
getSize: () => IntPoint;
|
|
6
|
+
getRawMatrix: () => string[][];
|
|
7
|
+
getChar(location: IntPoint, offset?: IntPoint): string;
|
|
8
|
+
setChar(location: IntPoint, char: string, offset?: IntPoint): void;
|
|
9
|
+
clear(): void;
|
|
10
|
+
/**
|
|
11
|
+
* resizes the matrix and wipes all contents
|
|
12
|
+
* @param newSize the new size of the matrix
|
|
13
|
+
*/
|
|
14
|
+
resize(newSize: IntPoint): void;
|
|
15
|
+
/**
|
|
16
|
+
* uses the provided function to map the contents of this matrix to another
|
|
17
|
+
* @param fn the function to apply to each character
|
|
18
|
+
*/
|
|
19
|
+
map(fn: (char: string, location: IntPoint) => string, other: CharMatrix): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=CharMatrix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharMatrix.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/CharMatrix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAElD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAa;gBAEf,IAAI,EAAE,QAAQ;IAMnB,OAAO,iBAEZ;IAEK,YAAY,mBAAqB;IAEjC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,QAAqB;IAezD,OAAO,CACZ,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,QAAqB;IAgBxB,KAAK;IAUZ;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,QAAQ;IAO/B;;;OAGG;IACI,GAAG,CACR,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,MAAM,EAChD,KAAK,EAAE,UAAU;CAWpB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { SPACE_CHAR } from "../constants";
|
|
2
|
+
import { throttledWarn } from "../utils/Logging";
|
|
3
|
+
import { IntPoint, ZERO_POINT } from "./IntPoint";
|
|
4
|
+
export class CharMatrix {
|
|
5
|
+
constructor(size) {
|
|
6
|
+
Object.defineProperty(this, "matrix", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
configurable: true,
|
|
9
|
+
writable: true,
|
|
10
|
+
value: void 0
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(this, "getSize", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: () => {
|
|
17
|
+
return new IntPoint(this.matrix[0]?.length || 0, this.matrix.length);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(this, "getRawMatrix", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true,
|
|
24
|
+
value: () => this.matrix
|
|
25
|
+
});
|
|
26
|
+
this.matrix = new Array(size.getY())
|
|
27
|
+
.fill(null)
|
|
28
|
+
.map(() => new Array(size.getX()).fill(SPACE_CHAR));
|
|
29
|
+
}
|
|
30
|
+
getChar(location, offset = ZERO_POINT) {
|
|
31
|
+
const x = location.getX() + offset.getX();
|
|
32
|
+
const y = location.getY() + offset.getY();
|
|
33
|
+
if (x >= 0 &&
|
|
34
|
+
x < this.matrix[0].length &&
|
|
35
|
+
y >= 0 &&
|
|
36
|
+
y < this.matrix.length) {
|
|
37
|
+
return this.matrix[y][x];
|
|
38
|
+
}
|
|
39
|
+
throttledWarn(`attempting to get a character outside of matrix bounds`);
|
|
40
|
+
return SPACE_CHAR;
|
|
41
|
+
}
|
|
42
|
+
setChar(location, char, offset = ZERO_POINT) {
|
|
43
|
+
const x = location.getX() + offset.getX();
|
|
44
|
+
const y = location.getY() + offset.getY();
|
|
45
|
+
if (x >= 0 &&
|
|
46
|
+
x < this.matrix[0].length &&
|
|
47
|
+
y >= 0 &&
|
|
48
|
+
y < this.matrix.length) {
|
|
49
|
+
this.matrix[y][x] = char;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
throttledWarn(`attempting to set a character outside of matrix bounds`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
clear() {
|
|
56
|
+
console.log("clearing matrix");
|
|
57
|
+
const size = this.getSize();
|
|
58
|
+
for (let y = 0; y < size.getY(); y++) {
|
|
59
|
+
for (let x = 0; x < size.getX(); x++) {
|
|
60
|
+
this.setChar(new IntPoint(x, y), SPACE_CHAR);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* resizes the matrix and wipes all contents
|
|
66
|
+
* @param newSize the new size of the matrix
|
|
67
|
+
*/
|
|
68
|
+
resize(newSize) {
|
|
69
|
+
console.log("resizing matrix to", newSize.getX(), newSize.getY());
|
|
70
|
+
this.matrix = new Array(newSize.getY())
|
|
71
|
+
.fill(null)
|
|
72
|
+
.map(() => new Array(newSize.getX()).fill(SPACE_CHAR));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* uses the provided function to map the contents of this matrix to another
|
|
76
|
+
* @param fn the function to apply to each character
|
|
77
|
+
*/
|
|
78
|
+
map(fn, other) {
|
|
79
|
+
const size = this.getSize();
|
|
80
|
+
for (let y = 0; y < size.getY(); y++) {
|
|
81
|
+
for (let x = 0; x < size.getX(); x++) {
|
|
82
|
+
const location = new IntPoint(x, y);
|
|
83
|
+
const char = this.getChar(location);
|
|
84
|
+
other.setChar(location, fn(char, location));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=CharMatrix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharMatrix.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/CharMatrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Axis } from "./Axes";
|
|
2
|
+
export declare class IntPoint {
|
|
3
|
+
private x;
|
|
4
|
+
private y;
|
|
5
|
+
constructor(x?: number, y?: number);
|
|
6
|
+
getX: () => number;
|
|
7
|
+
getY: () => number;
|
|
8
|
+
get: (a: Axis) => number;
|
|
9
|
+
set(a: Axis, v: number): void;
|
|
10
|
+
/**
|
|
11
|
+
* returns a new point that is the sum of this point and the given point
|
|
12
|
+
* @param p the point to be added to this point
|
|
13
|
+
* @returns a new point that is the sum of this point and the given point
|
|
14
|
+
*/
|
|
15
|
+
add(p: IntPoint): IntPoint;
|
|
16
|
+
subtract(p: IntPoint): IntPoint;
|
|
17
|
+
copy(): IntPoint;
|
|
18
|
+
equals(p: IntPoint): boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare const ZERO_POINT: IntPoint;
|
|
21
|
+
//# sourceMappingURL=IntPoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntPoint.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/IntPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,QAAQ,CAAC;AAEpC,qBAAa,QAAQ;IACnB,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,CAAC,CAAa;gBAEV,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAKjC,IAAI,eAAgB;IACpB,IAAI,eAAgB;IACpB,GAAG,MAAO,IAAI,YAAa;IAE3B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM;IAI7B;;;;OAIG;IACI,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAI1B,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAItC,IAAI;IAIJ,MAAM,CAAC,CAAC,EAAE,QAAQ;CAGnB;AAED,eAAO,MAAM,UAAU,UAAqB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { X, Y } from "./Axes";
|
|
2
|
+
export class IntPoint {
|
|
3
|
+
constructor(x = 0, y = 0) {
|
|
4
|
+
Object.defineProperty(this, "x", {
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true,
|
|
8
|
+
value: 0
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(this, "y", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true,
|
|
14
|
+
value: 0
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(this, "getX", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: () => this.x
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(this, "getY", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: () => this.y
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, "get", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: (a) => this[a]
|
|
33
|
+
});
|
|
34
|
+
this.set(X, x);
|
|
35
|
+
this.set(Y, y);
|
|
36
|
+
}
|
|
37
|
+
set(a, v) {
|
|
38
|
+
this[a] = Math.floor(v);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* returns a new point that is the sum of this point and the given point
|
|
42
|
+
* @param p the point to be added to this point
|
|
43
|
+
* @returns a new point that is the sum of this point and the given point
|
|
44
|
+
*/
|
|
45
|
+
add(p) {
|
|
46
|
+
return new IntPoint(this.x + p.x, this.y + p.y);
|
|
47
|
+
}
|
|
48
|
+
subtract(p) {
|
|
49
|
+
return new IntPoint(this.x - p.x, this.y - p.y);
|
|
50
|
+
}
|
|
51
|
+
copy() {
|
|
52
|
+
return new IntPoint(this.x, this.y);
|
|
53
|
+
}
|
|
54
|
+
equals(p) {
|
|
55
|
+
return this.x === p.x && this.y === p.y;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export const ZERO_POINT = new IntPoint(0, 0);
|
|
59
|
+
//# sourceMappingURL=IntPoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntPoint.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/IntPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,OAAO,QAAQ;IAInB,YAAY,IAAY,CAAC,EAAE,IAAY,CAAC;QAHhC;;;;mBAAY,CAAC;WAAC;QACd;;;;mBAAY,CAAC;WAAC;QAOf;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAM,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;WAAC;QANhC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;IAMM,GAAG,CAAC,CAAO,EAAE,CAAS;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,CAAW;QACpB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAEM,QAAQ,CAAC,CAAW;QACzB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,CAAW;QAChB,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NormPoint.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/NormPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,SAAS;IACpB,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,CAAC,CAAa;gBAEV,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKzB,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM;IAIpB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM;IAI7B,IAAI;CAGL"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class NormPoint {
|
|
2
|
+
constructor(x, y) {
|
|
3
|
+
Object.defineProperty(this, "x", {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
configurable: true,
|
|
6
|
+
writable: true,
|
|
7
|
+
value: 0
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(this, "y", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: 0
|
|
14
|
+
});
|
|
15
|
+
this.set("x", x);
|
|
16
|
+
this.set("y", y);
|
|
17
|
+
}
|
|
18
|
+
get(a) {
|
|
19
|
+
return this[a];
|
|
20
|
+
}
|
|
21
|
+
set(a, v) {
|
|
22
|
+
this[a] = Math.max(0, Math.min(1, v));
|
|
23
|
+
}
|
|
24
|
+
copy() {
|
|
25
|
+
return new NormPoint(this.x, this.y);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=NormPoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NormPoint.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/NormPoint.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;IAIpB,YAAY,CAAS,EAAE,CAAS;QAHxB;;;;mBAAY,CAAC;WAAC;QACd;;;;mBAAY,CAAC;WAAC;QAGpB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IAEM,GAAG,CAAC,CAAO;QAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,CAAO,EAAE,CAAS;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Axis } from "./Axes";
|
|
2
|
+
import { IntPoint } from "./IntPoint";
|
|
3
|
+
export declare class RealPoint {
|
|
4
|
+
private x;
|
|
5
|
+
private y;
|
|
6
|
+
constructor(x?: number, y?: number);
|
|
7
|
+
getX: () => number;
|
|
8
|
+
getY: () => number;
|
|
9
|
+
get: (a: Axis) => number;
|
|
10
|
+
set(a: Axis, v: number): void;
|
|
11
|
+
/**
|
|
12
|
+
* returns a new point that is the sum of this point and the given point
|
|
13
|
+
* @param p the point to be added to this point
|
|
14
|
+
* @returns a new point that is the sum of this point and the given point
|
|
15
|
+
*/
|
|
16
|
+
add(p: RealPoint): RealPoint;
|
|
17
|
+
subtract(p: RealPoint | IntPoint): RealPoint;
|
|
18
|
+
copy(): RealPoint;
|
|
19
|
+
equals(p: RealPoint): boolean;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=RealPoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealPoint.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/RealPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,qBAAa,SAAS;IACpB,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,CAAC,CAAa;gBAEV,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAKjC,IAAI,eAAgB;IACpB,IAAI,eAAgB;IACpB,GAAG,MAAO,IAAI,YAAa;IAE3B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM;IAI7B;;;;OAIG;IACI,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAI5B,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;IAInD,IAAI;IAIJ,MAAM,CAAC,CAAC,EAAE,SAAS;CAGpB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { X, Y } from "./Axes";
|
|
2
|
+
export class RealPoint {
|
|
3
|
+
constructor(x = 0, y = 0) {
|
|
4
|
+
Object.defineProperty(this, "x", {
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true,
|
|
8
|
+
value: 0
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(this, "y", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true,
|
|
14
|
+
value: 0
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(this, "getX", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: () => this.x
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(this, "getY", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: () => this.y
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, "get", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: (a) => this[a]
|
|
33
|
+
});
|
|
34
|
+
this.set(X, x);
|
|
35
|
+
this.set(Y, y);
|
|
36
|
+
}
|
|
37
|
+
set(a, v) {
|
|
38
|
+
this[a] = v;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* returns a new point that is the sum of this point and the given point
|
|
42
|
+
* @param p the point to be added to this point
|
|
43
|
+
* @returns a new point that is the sum of this point and the given point
|
|
44
|
+
*/
|
|
45
|
+
add(p) {
|
|
46
|
+
return new RealPoint(this.x + p.x, this.y + p.y);
|
|
47
|
+
}
|
|
48
|
+
subtract(p) {
|
|
49
|
+
return new RealPoint(this.x - p.getX(), this.y - p.getY());
|
|
50
|
+
}
|
|
51
|
+
copy() {
|
|
52
|
+
return new RealPoint(this.x, this.y);
|
|
53
|
+
}
|
|
54
|
+
equals(p) {
|
|
55
|
+
return this.x === p.x && this.y === p.y;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=RealPoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealPoint.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/RealPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAGpC,MAAM,OAAO,SAAS;IAIpB,YAAY,IAAY,CAAC,EAAE,IAAY,CAAC;QAHhC;;;;mBAAY,CAAC;WAAC;QACd;;;;mBAAY,CAAC;WAAC;QAOf;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAM,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;WAAC;QANhC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;IAMM,GAAG,CAAC,CAAO,EAAE,CAAS;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,CAAY;QACrB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEM,QAAQ,CAAC,CAAuB;QACrC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI;QACF,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,CAAY;QACjB,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logging.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Logging.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAO,MAAM,YAAY,gDAElB,CAAC;AAER,eAAO,MAAM,aAAa,gDAEnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Logging.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;IACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC,EAAE,GAAG,CAAC,CAAC;AAER,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;IAClD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,EAAE,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function charsToPixelsY(numChars: number): number;
|
|
2
|
+
export declare function charsToPixelsX(numChars: number): number;
|
|
3
|
+
export declare function getPostIdFromTitle(title: string): string;
|
|
4
|
+
export declare function toBold(text: string): string;
|
|
5
|
+
export declare function toBoldChar(char: string): string;
|
|
6
|
+
export declare function toNotBoldChar(char: string): string;
|
|
7
|
+
//# sourceMappingURL=MiscUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiscUtils.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/MiscUtils.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FONT_SIZE } from "../constants";
|
|
2
|
+
export function charsToPixelsY(numChars) {
|
|
3
|
+
return numChars * FONT_SIZE;
|
|
4
|
+
}
|
|
5
|
+
export function charsToPixelsX(numChars) {
|
|
6
|
+
return (numChars * FONT_SIZE) / 2;
|
|
7
|
+
}
|
|
8
|
+
export function getPostIdFromTitle(title) {
|
|
9
|
+
return title.replace(/\s+/g, "-").toLowerCase();
|
|
10
|
+
}
|
|
11
|
+
export function toBold(text) {
|
|
12
|
+
// Convert each character in text to its bold equivalent
|
|
13
|
+
return Array.from(text).map(toBoldChar).join("");
|
|
14
|
+
}
|
|
15
|
+
export function toBoldChar(char) {
|
|
16
|
+
// Check if the character is a letter
|
|
17
|
+
if (char.match(/[A-Z]/)) {
|
|
18
|
+
const boldCharValue = char.charCodeAt(0) + 0x1d400 - 0x41;
|
|
19
|
+
return String.fromCodePoint(boldCharValue);
|
|
20
|
+
}
|
|
21
|
+
else if (char.match(/[a-z]/)) {
|
|
22
|
+
const boldCharValue = char.charCodeAt(0) + 0x1d41a - 0x61;
|
|
23
|
+
return String.fromCodePoint(boldCharValue);
|
|
24
|
+
}
|
|
25
|
+
// If it's not a letter, return the original character
|
|
26
|
+
return char;
|
|
27
|
+
}
|
|
28
|
+
export function toNotBoldChar(char) {
|
|
29
|
+
// Check if the character is a bold letter by code point
|
|
30
|
+
const codePoint = char.codePointAt(0);
|
|
31
|
+
if (codePoint && codePoint >= 0x1d400 && codePoint <= 0x1d7ff) {
|
|
32
|
+
return String.fromCharCode(codePoint - 0x1d400);
|
|
33
|
+
}
|
|
34
|
+
// If it's not a bold letter, return the original character
|
|
35
|
+
return char;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=MiscUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiscUtils.js","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/MiscUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ,GAAG,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,wDAAwD;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;QAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;QAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IACD,sDAAsD;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,wDAAwD;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,2DAA2D;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Octant character utilities.
|
|
3
|
+
*
|
|
4
|
+
* Each character cell is a 2×4 grid of pixels (8 cells).
|
|
5
|
+
* Bit layout:
|
|
6
|
+
* bit0 bit1 (row 0, top)
|
|
7
|
+
* bit2 bit3 (row 1)
|
|
8
|
+
* bit4 bit5 (row 2)
|
|
9
|
+
* bit6 bit7 (row 3, bottom)
|
|
10
|
+
*
|
|
11
|
+
* Characters are encoded at U+1CD00-U+1CDE5 (230 chars),
|
|
12
|
+
* with 26 patterns pre-existing in other Unicode blocks.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Convert an 8-bit octant pattern to the corresponding Unicode character.
|
|
16
|
+
*
|
|
17
|
+
* @param bits 8-bit pattern (0-255) where each bit represents one cell
|
|
18
|
+
* in the 2×4 grid (bit 0 = top-left, bit 7 = bottom-right)
|
|
19
|
+
*/
|
|
20
|
+
export declare function octantChar(bits: number): string;
|
|
21
|
+
/**
|
|
22
|
+
* Convert a 2×4 boolean grid to an octant character.
|
|
23
|
+
*
|
|
24
|
+
* @param grid Array of 4 rows, each an array of 2 booleans [left, right].
|
|
25
|
+
* grid[0] is the top row, grid[3] is the bottom row.
|
|
26
|
+
*/
|
|
27
|
+
export declare function octantFromGrid(grid: [boolean, boolean][]): string;
|
|
28
|
+
/**
|
|
29
|
+
* Convert a 2×4 grid of pixel values to an octant character.
|
|
30
|
+
* Each value is treated as truthy/falsy.
|
|
31
|
+
*
|
|
32
|
+
* @param pixels Flat array of 8 values in row-major order:
|
|
33
|
+
* [row0left, row0right, row1left, row1right, row2left, row2right, row3left, row3right]
|
|
34
|
+
*/
|
|
35
|
+
export declare function octantFromPixels(pixels: (boolean | number)[]): string;
|
|
36
|
+
/** Bit mask for left column of a row (0-3) */
|
|
37
|
+
export declare const OCTANT_LEFT: readonly [1, 4, 16, 64];
|
|
38
|
+
/** Bit mask for right column of a row (0-3) */
|
|
39
|
+
export declare const OCTANT_RIGHT: readonly [2, 8, 32, 128];
|
|
40
|
+
/** Bit mask for both columns of a row (0-3) */
|
|
41
|
+
export declare const OCTANT_ROW: readonly [3, 12, 48, 192];
|
|
42
|
+
//# sourceMappingURL=Octant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Octant.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Octant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqCH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAQjE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAMrE;AAED,8CAA8C;AAC9C,eAAO,MAAM,WAAW,yBAAoC,CAAC;AAE7D,+CAA+C;AAC/C,eAAO,MAAM,YAAY,0BAAoC,CAAC;AAE9D,+CAA+C;AAC/C,eAAO,MAAM,UAAU,2BAAoC,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Octant character utilities.
|
|
3
|
+
*
|
|
4
|
+
* Each character cell is a 2×4 grid of pixels (8 cells).
|
|
5
|
+
* Bit layout:
|
|
6
|
+
* bit0 bit1 (row 0, top)
|
|
7
|
+
* bit2 bit3 (row 1)
|
|
8
|
+
* bit4 bit5 (row 2)
|
|
9
|
+
* bit6 bit7 (row 3, bottom)
|
|
10
|
+
*
|
|
11
|
+
* Characters are encoded at U+1CD00-U+1CDE5 (230 chars),
|
|
12
|
+
* with 26 patterns pre-existing in other Unicode blocks.
|
|
13
|
+
*/
|
|
14
|
+
/** The 26 pre-existing octant patterns and their codepoints */
|
|
15
|
+
const PRE_EXISTING = {
|
|
16
|
+
0x00: 0x0020, // SPACE
|
|
17
|
+
0x01: 0x1CEA8, // LEFT HALF UPPER ONE QUARTER
|
|
18
|
+
0x02: 0x1CEAB, // RIGHT HALF UPPER ONE QUARTER
|
|
19
|
+
0x03: 0x1FB82, // UPPER ONE QUARTER BLOCK
|
|
20
|
+
0x05: 0x2598, // QUADRANT UPPER LEFT
|
|
21
|
+
0x0A: 0x259D, // QUADRANT UPPER RIGHT
|
|
22
|
+
0x0F: 0x2580, // UPPER HALF BLOCK
|
|
23
|
+
0x14: 0x1FBE6, // MIDDLE LEFT ONE QUARTER BLOCK
|
|
24
|
+
0x28: 0x1FBE7, // MIDDLE RIGHT ONE QUARTER BLOCK
|
|
25
|
+
0x3F: 0x1FB85, // UPPER THREE QUARTERS BLOCK
|
|
26
|
+
0x40: 0x1CEA3, // LEFT HALF LOWER ONE QUARTER
|
|
27
|
+
0x50: 0x2596, // QUADRANT LOWER LEFT
|
|
28
|
+
0x55: 0x258C, // LEFT HALF BLOCK
|
|
29
|
+
0x5A: 0x259E, // QUADRANT UPPER RIGHT AND LOWER LEFT
|
|
30
|
+
0x5F: 0x259B, // QUADRANT UL+UR+LL
|
|
31
|
+
0x80: 0x1CEA0, // RIGHT HALF LOWER ONE QUARTER
|
|
32
|
+
0xA0: 0x2597, // QUADRANT LOWER RIGHT
|
|
33
|
+
0xA5: 0x259A, // QUADRANT UL+LR
|
|
34
|
+
0xAA: 0x2590, // RIGHT HALF BLOCK
|
|
35
|
+
0xAF: 0x259C, // QUADRANT UL+UR+LR
|
|
36
|
+
0xC0: 0x2582, // LOWER ONE QUARTER BLOCK
|
|
37
|
+
0xF0: 0x2584, // LOWER HALF BLOCK
|
|
38
|
+
0xF5: 0x2599, // QUADRANT UL+LL+LR
|
|
39
|
+
0xFA: 0x259F, // QUADRANT UR+LL+LR
|
|
40
|
+
0xFC: 0x2586, // LOWER THREE QUARTERS BLOCK
|
|
41
|
+
0xFF: 0x2588, // FULL BLOCK
|
|
42
|
+
};
|
|
43
|
+
/** Sorted pre-existing pattern values for offset calculation */
|
|
44
|
+
const PRE_EXISTING_SORTED = Object.keys(PRE_EXISTING)
|
|
45
|
+
.map(Number)
|
|
46
|
+
.sort((a, b) => a - b);
|
|
47
|
+
/**
|
|
48
|
+
* Convert an 8-bit octant pattern to the corresponding Unicode character.
|
|
49
|
+
*
|
|
50
|
+
* @param bits 8-bit pattern (0-255) where each bit represents one cell
|
|
51
|
+
* in the 2×4 grid (bit 0 = top-left, bit 7 = bottom-right)
|
|
52
|
+
*/
|
|
53
|
+
export function octantChar(bits) {
|
|
54
|
+
if (bits in PRE_EXISTING) {
|
|
55
|
+
return String.fromCodePoint(PRE_EXISTING[bits]);
|
|
56
|
+
}
|
|
57
|
+
const skip = PRE_EXISTING_SORTED.filter((e) => e < bits).length;
|
|
58
|
+
return String.fromCodePoint(0x1CD00 + bits - skip);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Convert a 2×4 boolean grid to an octant character.
|
|
62
|
+
*
|
|
63
|
+
* @param grid Array of 4 rows, each an array of 2 booleans [left, right].
|
|
64
|
+
* grid[0] is the top row, grid[3] is the bottom row.
|
|
65
|
+
*/
|
|
66
|
+
export function octantFromGrid(grid) {
|
|
67
|
+
let bits = 0;
|
|
68
|
+
for (let row = 0; row < 4; row++) {
|
|
69
|
+
const r = grid[row] ?? [false, false];
|
|
70
|
+
if (r[0])
|
|
71
|
+
bits |= 1 << (row * 2);
|
|
72
|
+
if (r[1])
|
|
73
|
+
bits |= 1 << (row * 2 + 1);
|
|
74
|
+
}
|
|
75
|
+
return octantChar(bits);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Convert a 2×4 grid of pixel values to an octant character.
|
|
79
|
+
* Each value is treated as truthy/falsy.
|
|
80
|
+
*
|
|
81
|
+
* @param pixels Flat array of 8 values in row-major order:
|
|
82
|
+
* [row0left, row0right, row1left, row1right, row2left, row2right, row3left, row3right]
|
|
83
|
+
*/
|
|
84
|
+
export function octantFromPixels(pixels) {
|
|
85
|
+
let bits = 0;
|
|
86
|
+
for (let i = 0; i < 8; i++) {
|
|
87
|
+
if (pixels[i])
|
|
88
|
+
bits |= 1 << i;
|
|
89
|
+
}
|
|
90
|
+
return octantChar(bits);
|
|
91
|
+
}
|
|
92
|
+
/** Bit mask for left column of a row (0-3) */
|
|
93
|
+
export const OCTANT_LEFT = [0x01, 0x04, 0x10, 0x40];
|
|
94
|
+
/** Bit mask for right column of a row (0-3) */
|
|
95
|
+
export const OCTANT_RIGHT = [0x02, 0x08, 0x20, 0x80];
|
|
96
|
+
/** Bit mask for both columns of a row (0-3) */
|
|
97
|
+
export const OCTANT_ROW = [0x03, 0x0C, 0x30, 0xC0];
|
|
98
|
+
//# sourceMappingURL=Octant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Octant.js","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Octant.ts"],"names":[],"mappings":"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"}
|