ttpg-darrell 1.1.23 → 1.1.25

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 (43) hide show
  1. package/build/cjs/lib/nsid/nsid.d.ts +4 -0
  2. package/build/cjs/lib/nsid/nsid.js +21 -0
  3. package/build/cjs/lib/nsid/nsid.js.map +1 -1
  4. package/build/esm/lib/nsid/nsid.d.ts +4 -0
  5. package/build/esm/lib/nsid/nsid.js +21 -0
  6. package/build/esm/lib/nsid/nsid.js.map +1 -1
  7. package/package.json +1 -1
  8. package/build/cjs/lib/color-lib/color-mapping-rotating.d.ts +0 -1
  9. package/build/cjs/lib/color-lib/color-mapping-rotating.js +0 -72
  10. package/build/cjs/lib/color-lib/color-mapping-rotating.js.map +0 -1
  11. package/build/cjs/lib/parse/parse-color/parse-color.d.ts +0 -7
  12. package/build/cjs/lib/parse/parse-color/parse-color.js +0 -51
  13. package/build/cjs/lib/parse/parse-color/parse-color.js.map +0 -1
  14. package/build/cjs/lib-ext/color-mapping/color-extract.d.ts +0 -1
  15. package/build/cjs/lib-ext/color-mapping/color-extract.js +0 -127
  16. package/build/cjs/lib-ext/color-mapping/color-extract.js.map +0 -1
  17. package/build/cjs/lib-ext/color-mapping/color-mapping-linear-centered.d.ts +0 -1
  18. package/build/cjs/lib-ext/color-mapping/color-mapping-linear-centered.js +0 -230
  19. package/build/cjs/lib-ext/color-mapping/color-mapping-linear-centered.js.map +0 -1
  20. package/build/cjs/lib-ext/color-mapping/color-mapping-linear.d.ts +0 -1
  21. package/build/cjs/lib-ext/color-mapping/color-mapping-linear.js +0 -217
  22. package/build/cjs/lib-ext/color-mapping/color-mapping-linear.js.map +0 -1
  23. package/build/cjs/lib-ext/color-mapping/color-mapping-ridge.d.ts +0 -1
  24. package/build/cjs/lib-ext/color-mapping/color-mapping-ridge.js +0 -216
  25. package/build/cjs/lib-ext/color-mapping/color-mapping-ridge.js.map +0 -1
  26. package/build/cjs/lib-ext/color-mapping/color-mapping.d.ts +0 -15
  27. package/build/cjs/lib-ext/color-mapping/color-mapping.data.d.ts +0 -7
  28. package/build/cjs/lib-ext/color-mapping/color-mapping.data.js +0 -790
  29. package/build/cjs/lib-ext/color-mapping/color-mapping.data.js.map +0 -1
  30. package/build/cjs/lib-ext/color-mapping/color-mapping.js +0 -54
  31. package/build/cjs/lib-ext/color-mapping/color-mapping.js.map +0 -1
  32. package/build/cjs/lib-ext/color-mapping/raw-linear.d.ts +0 -1
  33. package/build/cjs/lib-ext/color-mapping/raw-linear.js +0 -167
  34. package/build/cjs/lib-ext/color-mapping/raw-linear.js.map +0 -1
  35. package/build/cjs/lib-ext/image/cell/cell-parser/cell-parser.test.d.ts +0 -1
  36. package/build/cjs/lib-ext/image/cell/cell-parser/cell-parser.test.js +0 -212
  37. package/build/cjs/lib-ext/image/cell/cell-parser/cell-parser.test.js.map +0 -1
  38. package/build/esm/lib/parse/parse-color/parse-color.d.ts +0 -7
  39. package/build/esm/lib/parse/parse-color/parse-color.js +0 -44
  40. package/build/esm/lib/parse/parse-color/parse-color.js.map +0 -1
  41. package/build/esm/lib-ext/image/cell/cell-parser/cell-parser.test.d.ts +0 -1
  42. package/build/esm/lib-ext/image/cell/cell-parser/cell-parser.test.js +0 -210
  43. package/build/esm/lib-ext/image/cell/cell-parser/cell-parser.test.js.map +0 -1
@@ -34,10 +34,14 @@ export declare abstract class NSID {
34
34
  * Create NSID from a metadata string or object. A deck with multiple cards
35
35
  * gets a special "deck" NSID, consumers should call `stack` to get by card.
36
36
  *
37
+ * This get strips off any extra metadata (after the "|") from the string.
38
+ *
37
39
  * @param input
38
40
  * @returns NSID string
39
41
  */
40
42
  static get(input: StaticObject): string;
43
+ static getExtra(input: StaticObject): string;
44
+ static getWithExtra(input: StaticObject): string;
41
45
  /**
42
46
  * Get NSIDs for each card in a deck.
43
47
  *
@@ -30,10 +30,31 @@ class NSID {
30
30
  * Create NSID from a metadata string or object. A deck with multiple cards
31
31
  * gets a special "deck" NSID, consumers should call `stack` to get by card.
32
32
  *
33
+ * This get strips off any extra metadata (after the "|") from the string.
34
+ *
33
35
  * @param input
34
36
  * @returns NSID string
35
37
  */
36
38
  static get(input) {
39
+ let metadata = NSID.getWithExtra(input);
40
+ const extraStartIndex = metadata.indexOf("|");
41
+ if (extraStartIndex > -1) {
42
+ // Remove extra metadata from the string.
43
+ metadata = metadata.substring(0, extraStartIndex);
44
+ }
45
+ return metadata;
46
+ }
47
+ static getExtra(input) {
48
+ const metadata = NSID.getWithExtra(input);
49
+ const extraStartIndex = metadata.indexOf("|");
50
+ let extra = "";
51
+ if (extraStartIndex > -1) {
52
+ // Extract extra metadata from the string.
53
+ extra = metadata.substring(extraStartIndex + 1);
54
+ }
55
+ return extra;
56
+ }
57
+ static getWithExtra(input) {
37
58
  let metadata = "";
38
59
  if (input instanceof api_1.Card) {
39
60
  if (input.getStackSize() === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"nsid.js","sourceRoot":"","sources":["../../../../src/lib/nsid/nsid.ts"],"names":[],"mappings":";;;AAAA,kDAA2E;AAU9D,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAsB,IAAI;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,KAAmB;QAC1B,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,YAAY,UAAI,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7B,yCAAyC;gBACzC,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,6CAA6C;gBAC7C,QAAQ,GAAG,iBAAS,CAAC;YACzB,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,YAAY,kBAAY,EAAE,CAAC;YACvC,yDAAyD;YACzD,QAAQ,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,KAAW;QACtB,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAwB,EAAE,EAAE;YAC9D,OAAO,WAAW,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY;;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACpC,MAAM,IAAI,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO;YACH,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAC9B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7C,CAAC;IACN,CAAC;CACJ;AA3DD,oBA2DC"}
1
+ {"version":3,"file":"nsid.js","sourceRoot":"","sources":["../../../../src/lib/nsid/nsid.ts"],"names":[],"mappings":";;;AAAA,kDAA2E;AAU9D,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAsB,IAAI;IACtB;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,CAAC,KAAmB;QAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;YACvB,yCAAyC;YACzC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAmB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;YACvB,0CAA0C;YAC1C,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,KAAmB;QACnC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,YAAY,UAAI,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7B,yCAAyC;gBACzC,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,6CAA6C;gBAC7C,QAAQ,GAAG,iBAAS,CAAC;YACzB,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,YAAY,kBAAY,EAAE,CAAC;YACvC,yDAAyD;YACzD,QAAQ,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,KAAW;QACtB,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAwB,EAAE,EAAE;YAC9D,OAAO,WAAW,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY;;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACpC,MAAM,IAAI,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO;YACH,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAC9B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7C,CAAC;IACN,CAAC;CACJ;AAlFD,oBAkFC"}
@@ -34,10 +34,14 @@ export declare abstract class NSID {
34
34
  * Create NSID from a metadata string or object. A deck with multiple cards
35
35
  * gets a special "deck" NSID, consumers should call `stack` to get by card.
36
36
  *
37
+ * This get strips off any extra metadata (after the "|") from the string.
38
+ *
37
39
  * @param input
38
40
  * @returns NSID string
39
41
  */
40
42
  static get(input: StaticObject): string;
43
+ static getExtra(input: StaticObject): string;
44
+ static getWithExtra(input: StaticObject): string;
41
45
  /**
42
46
  * Get NSIDs for each card in a deck.
43
47
  *
@@ -27,10 +27,31 @@ export class NSID {
27
27
  * Create NSID from a metadata string or object. A deck with multiple cards
28
28
  * gets a special "deck" NSID, consumers should call `stack` to get by card.
29
29
  *
30
+ * This get strips off any extra metadata (after the "|") from the string.
31
+ *
30
32
  * @param input
31
33
  * @returns NSID string
32
34
  */
33
35
  static get(input) {
36
+ let metadata = NSID.getWithExtra(input);
37
+ const extraStartIndex = metadata.indexOf("|");
38
+ if (extraStartIndex > -1) {
39
+ // Remove extra metadata from the string.
40
+ metadata = metadata.substring(0, extraStartIndex);
41
+ }
42
+ return metadata;
43
+ }
44
+ static getExtra(input) {
45
+ const metadata = NSID.getWithExtra(input);
46
+ const extraStartIndex = metadata.indexOf("|");
47
+ let extra = "";
48
+ if (extraStartIndex > -1) {
49
+ // Extract extra metadata from the string.
50
+ extra = metadata.substring(extraStartIndex + 1);
51
+ }
52
+ return extra;
53
+ }
54
+ static getWithExtra(input) {
34
55
  let metadata = "";
35
56
  if (input instanceof Card) {
36
57
  if (input.getStackSize() === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"nsid.js","sourceRoot":"","sources":["../../../../src/lib/nsid/nsid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAU3E,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAgB,IAAI;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,KAAmB;QAC1B,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7B,yCAAyC;gBACzC,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,6CAA6C;gBAC7C,QAAQ,GAAG,SAAS,CAAC;YACzB,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YACvC,yDAAyD;YACzD,QAAQ,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,KAAW;QACtB,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAwB,EAAE,EAAE;YAC9D,OAAO,WAAW,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY;;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACpC,MAAM,IAAI,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO;YACH,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAC9B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7C,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"nsid.js","sourceRoot":"","sources":["../../../../src/lib/nsid/nsid.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ttpg-darrell",
3
- "version": "1.1.23",
3
+ "version": "1.1.25",
4
4
  "description": "TTPG TypeScript library",
5
5
  "main": "./build/cjs/index.js",
6
6
  "module": "./build/esm/index.js",
@@ -1 +0,0 @@
1
- export {};
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Create game objects using given source colors, screenshot then use the
5
- * lib-ext extract tool to read color values.
6
- */
7
- const api_1 = require("@tabletop-playground/api");
8
- const shuffle_1 = require("../shuffle/shuffle");
9
- // Clear the world before (re)creating objects.
10
- for (const obj of api_1.world.getAllObjects()) {
11
- if (obj !== api_1.refObject) {
12
- obj.destroy();
13
- }
14
- }
15
- const templateId = "83FDE12C4E6D912B16B85E9A00422F43"; // cube
16
- const cube = api_1.world.createObjectFromTemplate(
17
- templateId,
18
- new api_1.Vector(0, 0, api_1.world.getTableHeight() + 4)
19
- );
20
- if (!cube) {
21
- throw new Error("Failed to create object");
22
- }
23
- cube.setRoughness(1);
24
- cube.setMetallic(0);
25
- cube.snapToGround();
26
- const border = new api_1.Border();
27
- const ui = new api_1.UIElement();
28
- ui.position = new api_1.Vector(-4, 0, 2);
29
- ui.widget = border.setChild(
30
- new api_1.LayoutBox().setOverrideWidth(25).setOverrideHeight(25)
31
- );
32
- cube.addUI(ui);
33
- // Look straight down at result.
34
- const player = api_1.world.getAllPlayers()[0];
35
- if (player) {
36
- console.log(player.getPosition());
37
- console.log(player.getRotation());
38
- const z = api_1.world.getTableHeight() + 40;
39
- player.setPositionAndRotation([-10, -25, z], [-90, 0, 0]);
40
- }
41
- const n = 16;
42
- let colors = [];
43
- for (let r = 0; r < n; r++) {
44
- for (let g = 0; g < n; g++) {
45
- for (let b = 0; b < n; b++) {
46
- const color = new api_1.Color(
47
- r / (n - 1),
48
- g / (n - 1),
49
- b / (n - 1)
50
- );
51
- colors.push(color);
52
- }
53
- }
54
- }
55
- colors = new shuffle_1.Shuffle().shuffle(colors);
56
- console.log("|colors|:", colors.length);
57
- function setToNextColor() {
58
- const color = colors.shift();
59
- if (color) {
60
- console.log(color.toHex(), colors.length);
61
- api_1.world.setSlotColor(0, color);
62
- cube === null || cube === void 0 ? void 0 : cube.setPrimaryColor(color);
63
- border.setColor(color);
64
- }
65
- return color !== undefined;
66
- }
67
- const handle = setInterval(() => {
68
- if (!setToNextColor()) {
69
- clearInterval(handle);
70
- }
71
- }, 3000);
72
- //# sourceMappingURL=color-mapping-rotating.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-mapping-rotating.js","sourceRoot":"","sources":["../../../../src/lib/color-lib/color-mapping-rotating.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,kDAUkC;AAClC,gDAA6C;AAE7C,+CAA+C;AAC/C,KAAK,MAAM,GAAG,IAAI,WAAK,CAAC,aAAa,EAAE,EAAE,CAAC;IACtC,IAAI,GAAG,KAAK,eAAS,EAAE,CAAC;QACpB,GAAG,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,GAAW,kCAAkC,CAAC,CAAC,OAAO;AACtE,MAAM,IAAI,GAA2B,WAAK,CAAC,wBAAwB,CAC/D,UAAU,EACV,IAAI,YAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAC/C,CAAC;AACF,IAAI,CAAC,IAAI,EAAE,CAAC;IACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC/C,CAAC;AACD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,CAAC,YAAY,EAAE,CAAC;AAEpB,MAAM,MAAM,GAAW,IAAI,YAAM,EAAE,CAAC;AACpC,MAAM,EAAE,GAAc,IAAI,eAAS,EAAE,CAAC;AACtC,EAAE,CAAC,QAAQ,GAAG,IAAI,YAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CACvB,IAAI,eAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAC7D,CAAC;AACF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEf,gCAAgC;AAChC,MAAM,MAAM,GAAuB,WAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,IAAI,MAAM,EAAE,CAAC;IACT,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAElC,MAAM,CAAC,GAAG,WAAK,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC;IACtC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,GAAW,EAAE,CAAC;AACrB,IAAI,MAAM,GAAiB,EAAE,CAAC;AAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,KAAK,GAAU,IAAI,WAAK,CAC1B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EACX,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EACX,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CACd,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;AACL,CAAC;AACD,MAAM,GAAG,IAAI,iBAAO,EAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,SAAS,cAAc;IACnB,MAAM,KAAK,GAAsB,MAAM,CAAC,KAAK,EAAE,CAAC;IAChD,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,WAAK,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7B,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,CAAC;AAC/B,CAAC;AAED,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;IAC5B,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACpB,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;AACL,CAAC,EAAE,IAAI,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import { Color } from "@tabletop-playground/api";
2
- export declare const HEX_COLOR_REGEX: RegExp;
3
- export declare class ParseColor {
4
- private readonly _hexColorRegex;
5
- parseColor(hexColor: string): Color | undefined;
6
- parseColorOrThrow(hexColor: string): Color;
7
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParseColor = exports.HEX_COLOR_REGEX = void 0;
4
- const api_1 = require("@tabletop-playground/api");
5
- exports.HEX_COLOR_REGEX = /^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
6
- class ParseColor {
7
- constructor() {
8
- this._hexColorRegex = new RegExp(exports.HEX_COLOR_REGEX);
9
- }
10
- parseColor(hexColor) {
11
- var _a;
12
- const m = hexColor.match(this._hexColorRegex);
13
- const hexStr =
14
- (_a = m === null || m === void 0 ? void 0 : m[1]) !== null &&
15
- _a !== void 0
16
- ? _a
17
- : "";
18
- if (!m) {
19
- return undefined;
20
- }
21
- if (hexStr.length !== 3 && hexStr.length !== 6 && hexStr.length !== 8) {
22
- return undefined;
23
- }
24
- let r = 0;
25
- let g = 0;
26
- let b = 0;
27
- let a = 1;
28
- if (hexStr.length === 3) {
29
- r = Number.parseInt(hexStr.substring(0, 1), 16) / 15;
30
- g = Number.parseInt(hexStr.substring(1, 2), 16) / 15;
31
- b = Number.parseInt(hexStr.substring(2, 3), 16) / 15;
32
- } else {
33
- r = Number.parseInt(hexStr.substring(0, 2), 16) / 255;
34
- g = Number.parseInt(hexStr.substring(2, 4), 16) / 255;
35
- b = Number.parseInt(hexStr.substring(4, 6), 16) / 255;
36
- }
37
- if (hexStr.length === 8) {
38
- a = Number.parseInt(hexStr.substring(6, 8), 16) / 255;
39
- }
40
- return new api_1.Color(r, g, b, a);
41
- }
42
- parseColorOrThrow(hexColor) {
43
- const color = this.parseColor(hexColor);
44
- if (!color) {
45
- throw new Error(`bad hexColor "${hexColor}"`);
46
- }
47
- return color;
48
- }
49
- }
50
- exports.ParseColor = ParseColor;
51
- //# sourceMappingURL=parse-color.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-color.js","sourceRoot":"","sources":["../../../../../src/lib/parse/parse-color/parse-color.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AAEpC,QAAA,eAAe,GAAG,2CAA2C,CAAC;AAE3E,MAAa,UAAU;IAAvB;QACqB,mBAAc,GAAW,IAAI,MAAM,CAAC,uBAAe,CAAC,CAAC;IAsC1E,CAAC;IApCG,UAAU,CAAC,QAAgB;;QACvB,MAAM,CAAC,GAA4B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,MAAM,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpE,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACrD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACrD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;YACtD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;YACtD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAC9B,MAAM,KAAK,GAAsB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAvCD,gCAuCC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,127 +0,0 @@
1
- "use strict";
2
- var __awaiter =
3
- (this && this.__awaiter) ||
4
- function (thisArg, _arguments, P, generator) {
5
- function adopt(value) {
6
- return value instanceof P
7
- ? value
8
- : new P(function (resolve) {
9
- resolve(value);
10
- });
11
- }
12
- return new (P || (P = Promise))(function (resolve, reject) {
13
- function fulfilled(value) {
14
- try {
15
- step(generator.next(value));
16
- } catch (e) {
17
- reject(e);
18
- }
19
- }
20
- function rejected(value) {
21
- try {
22
- step(generator["throw"](value));
23
- } catch (e) {
24
- reject(e);
25
- }
26
- }
27
- function step(result) {
28
- result.done
29
- ? resolve(result.value)
30
- : adopt(result.value).then(fulfilled, rejected);
31
- }
32
- step(
33
- (generator = generator.apply(thisArg, _arguments || [])).next()
34
- );
35
- });
36
- };
37
- var __importDefault =
38
- (this && this.__importDefault) ||
39
- function (mod) {
40
- return mod && mod.__esModule ? mod : { default: mod };
41
- };
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- /**
44
- * Given a screenshot and start/end coordinates extract the color values.
45
- */
46
- const fs_1 = __importDefault(require("fs"));
47
- const sharp_1 = __importDefault(require("sharp"));
48
- function extractColors(filename, startX, startY, endX, endY, n) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const result = [];
51
- const image = (0, sharp_1.default)(filename);
52
- const metadata = yield image.metadata();
53
- const w = metadata.width;
54
- const h = metadata.height;
55
- if (!w || !h) {
56
- throw new Error("bad metadata");
57
- }
58
- const raw = yield image.raw().toBuffer();
59
- const pixelArray = new Uint8ClampedArray(raw); // [r, g, b, a] repeated
60
- if (pixelArray.length !== w * h * 4) {
61
- throw new Error("bad pixel array");
62
- }
63
- const getPx = (x, y) => {
64
- const i = (y * w + x) * 4;
65
- const pixel = pixelArray.slice(i, i + 4);
66
- const s = 10000;
67
- const r = Math.floor((pixel[0] * s) / 255) / s;
68
- const g = Math.floor((pixel[1] * s) / 255) / s;
69
- const b = Math.floor((pixel[2] * s) / 255) / s;
70
- return [r, g, b];
71
- };
72
- const dx = (endX - startX) / (n - 1);
73
- const dy = (endY - startY) / (n - 1);
74
- for (let i = 0; i < n; i++) {
75
- const x = Math.round(startX + i * dx);
76
- const y = Math.round(startY + i * dy);
77
- const rgb = getPx(x, y);
78
- result.push(rgb);
79
- }
80
- return result;
81
- });
82
- }
83
- function processScreenshot() {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- const filename =
86
- "/Users/darrell/Desktop/Screenshot 2024-08-16 at 10.34.21 AM.png";
87
- if (!fs_1.default.existsSync(filename)) {
88
- throw new Error(`file not found "${filename}"`);
89
- }
90
- // Plastic.
91
- {
92
- const startX = 50;
93
- const startY = 44;
94
- const endX = 4904;
95
- const endY = 43;
96
- const n = 40;
97
- const colors = yield extractColors(
98
- filename,
99
- startX,
100
- startY,
101
- endX,
102
- endY,
103
- n
104
- );
105
- console.log(colors);
106
- }
107
- // Widget.
108
- {
109
- const startX = 55;
110
- const startY = 107;
111
- const endX = 4898;
112
- const endY = 107;
113
- const n = 40;
114
- const colors = yield extractColors(
115
- filename,
116
- startX,
117
- startY,
118
- endX,
119
- endY,
120
- n
121
- );
122
- console.log(colors);
123
- }
124
- });
125
- }
126
- processScreenshot();
127
- //# sourceMappingURL=color-extract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-extract.js","sourceRoot":"","sources":["../../../../src/lib-ext/color-mapping/color-extract.ts"],"names":[],"mappings":"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"}
@@ -1,230 +0,0 @@
1
- "use strict";
2
- var __createBinding =
3
- (this && this.__createBinding) ||
4
- (Object.create
5
- ? function (o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (
9
- !desc ||
10
- ("get" in desc
11
- ? !m.__esModule
12
- : desc.writable || desc.configurable)
13
- ) {
14
- desc = {
15
- enumerable: true,
16
- get: function () {
17
- return m[k];
18
- },
19
- };
20
- }
21
- Object.defineProperty(o, k2, desc);
22
- }
23
- : function (o, m, k, k2) {
24
- if (k2 === undefined) k2 = k;
25
- o[k2] = m[k];
26
- });
27
- var __setModuleDefault =
28
- (this && this.__setModuleDefault) ||
29
- (Object.create
30
- ? function (o, v) {
31
- Object.defineProperty(o, "default", {
32
- enumerable: true,
33
- value: v,
34
- });
35
- }
36
- : function (o, v) {
37
- o["default"] = v;
38
- });
39
- var __importStar =
40
- (this && this.__importStar) ||
41
- function (mod) {
42
- if (mod && mod.__esModule) return mod;
43
- var result = {};
44
- if (mod != null)
45
- for (var k in mod)
46
- if (
47
- k !== "default" &&
48
- Object.prototype.hasOwnProperty.call(mod, k)
49
- )
50
- __createBinding(result, mod, k);
51
- __setModuleDefault(result, mod);
52
- return result;
53
- };
54
- var __awaiter =
55
- (this && this.__awaiter) ||
56
- function (thisArg, _arguments, P, generator) {
57
- function adopt(value) {
58
- return value instanceof P
59
- ? value
60
- : new P(function (resolve) {
61
- resolve(value);
62
- });
63
- }
64
- return new (P || (P = Promise))(function (resolve, reject) {
65
- function fulfilled(value) {
66
- try {
67
- step(generator.next(value));
68
- } catch (e) {
69
- reject(e);
70
- }
71
- }
72
- function rejected(value) {
73
- try {
74
- step(generator["throw"](value));
75
- } catch (e) {
76
- reject(e);
77
- }
78
- }
79
- function step(result) {
80
- result.done
81
- ? resolve(result.value)
82
- : adopt(result.value).then(fulfilled, rejected);
83
- }
84
- step(
85
- (generator = generator.apply(thisArg, _arguments || [])).next()
86
- );
87
- });
88
- };
89
- Object.defineProperty(exports, "__esModule", { value: true });
90
- const color_mapping_data_1 = require("./color-mapping.data");
91
- const scikitjs_1 = require("scikitjs");
92
- const tensorflow = __importStar(require("@tensorflow/tfjs"));
93
- (0, scikitjs_1.setBackend)(tensorflow);
94
- function centerRGBs(colors) {
95
- colors.forEach((rgb) => {
96
- rgb[0] = rgb[0] - 0.5;
97
- rgb[1] = rgb[1] - 0.5;
98
- rgb[2] = rgb[2] - 0.5;
99
- });
100
- }
101
- centerRGBs(color_mapping_data_1.PLASTIC_COLORS);
102
- centerRGBs(color_mapping_data_1.WIDGET_COLORS);
103
- centerRGBs(color_mapping_data_1.RAW_COLORS);
104
- centerRGBs(color_mapping_data_1.PLASTIC_COLORS_SPECTRUM);
105
- centerRGBs(color_mapping_data_1.WIDGET_COLORS_SPECTRUM);
106
- centerRGBs(color_mapping_data_1.RAW_COLORS_SPECTRUM);
107
- // Because we are using squares, center values around [-0.5:0.5]
108
- const raw = {
109
- R: color_mapping_data_1.RAW_COLORS.map(([r, _g, _b]) => r),
110
- G: color_mapping_data_1.RAW_COLORS.map(([_r, g, _b]) => g),
111
- B: color_mapping_data_1.RAW_COLORS.map(([_r, _g, b]) => b),
112
- RS: color_mapping_data_1.RAW_COLORS_SPECTRUM.map(([r, _g, _b]) => r),
113
- GS: color_mapping_data_1.RAW_COLORS_SPECTRUM.map(([_r, g, _b]) => g),
114
- BS: color_mapping_data_1.RAW_COLORS_SPECTRUM.map(([_r, _g, b]) => b),
115
- };
116
- function processOne(channel, raw) {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- let best;
119
- let bestScore = 0;
120
- for (let i = 0; i < 20; i++) {
121
- const model = yield new scikitjs_1.LinearRegression({
122
- fitIntercept: true,
123
- }).fit(raw, channel);
124
- const score = model.score(raw, channel);
125
- if (score > bestScore) {
126
- const coefs = model.coef.arraySync().flat();
127
- best = {
128
- intercept: model.intercept,
129
- coefs,
130
- score,
131
- };
132
- const scrub = (x) => Math.round(x * 10000) / 10000;
133
- best.intercept = scrub(best.intercept);
134
- best.coefs = best.coefs.map(scrub);
135
- best.score = scrub(best.score);
136
- bestScore = score;
137
- }
138
- }
139
- return best;
140
- });
141
- }
142
- function processOneSq(channel, raw) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- raw = raw.map((entry) => {
145
- const result = [...entry];
146
- for (const value of entry) {
147
- result.push(value * value);
148
- }
149
- return result;
150
- });
151
- return yield processOne(channel, raw);
152
- });
153
- }
154
- function processAll() {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- let result;
157
- console.log("----------------------------------------");
158
- result = {
159
- r: yield processOne(raw.R, color_mapping_data_1.PLASTIC_COLORS),
160
- g: yield processOne(raw.G, color_mapping_data_1.PLASTIC_COLORS),
161
- b: yield processOne(raw.B, color_mapping_data_1.PLASTIC_COLORS),
162
- score: 0,
163
- };
164
- result.score = (result.r.score + result.g.score + result.b.score) / 3;
165
- console.log("plastic", JSON.stringify(result));
166
- result = {
167
- r: yield processOne(raw.R, color_mapping_data_1.WIDGET_COLORS),
168
- g: yield processOne(raw.G, color_mapping_data_1.WIDGET_COLORS),
169
- b: yield processOne(raw.B, color_mapping_data_1.WIDGET_COLORS),
170
- score: 0,
171
- };
172
- result.score = (result.r.score + result.g.score + result.b.score) / 3;
173
- console.log("widget", JSON.stringify(result));
174
- console.log("----------------------------------------");
175
- result = {
176
- r: yield processOneSq(raw.R, color_mapping_data_1.PLASTIC_COLORS),
177
- g: yield processOneSq(raw.G, color_mapping_data_1.PLASTIC_COLORS),
178
- b: yield processOneSq(raw.B, color_mapping_data_1.PLASTIC_COLORS),
179
- score: 0,
180
- };
181
- result.score = (result.r.score + result.g.score + result.b.score) / 3;
182
- console.log("plasticSq", JSON.stringify(result));
183
- result = {
184
- r: yield processOneSq(raw.R, color_mapping_data_1.WIDGET_COLORS),
185
- g: yield processOneSq(raw.G, color_mapping_data_1.WIDGET_COLORS),
186
- b: yield processOneSq(raw.B, color_mapping_data_1.WIDGET_COLORS),
187
- score: 0,
188
- };
189
- result.score = (result.r.score + result.g.score + result.b.score) / 3;
190
- console.log("widgetSq", JSON.stringify(result));
191
- console.log("----------------------------------------");
192
- result = {
193
- r: yield processOneSq(
194
- raw.RS,
195
- color_mapping_data_1.PLASTIC_COLORS_SPECTRUM
196
- ),
197
- g: yield processOneSq(
198
- raw.GS,
199
- color_mapping_data_1.PLASTIC_COLORS_SPECTRUM
200
- ),
201
- b: yield processOneSq(
202
- raw.BS,
203
- color_mapping_data_1.PLASTIC_COLORS_SPECTRUM
204
- ),
205
- score: 0,
206
- };
207
- result.score = (result.r.score + result.g.score + result.b.score) / 3;
208
- console.log("plasticSqSpectrum", JSON.stringify(result));
209
- result = {
210
- r: yield processOneSq(
211
- raw.RS,
212
- color_mapping_data_1.WIDGET_COLORS_SPECTRUM
213
- ),
214
- g: yield processOneSq(
215
- raw.GS,
216
- color_mapping_data_1.WIDGET_COLORS_SPECTRUM
217
- ),
218
- b: yield processOneSq(
219
- raw.BS,
220
- color_mapping_data_1.WIDGET_COLORS_SPECTRUM
221
- ),
222
- score: 0,
223
- };
224
- result.score = (result.r.score + result.g.score + result.b.score) / 3;
225
- console.log("widgetSqSpectrun", JSON.stringify(result));
226
- console.log("----------------------------------------");
227
- });
228
- }
229
- processAll();
230
- //# sourceMappingURL=color-mapping-linear-centered.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-mapping-linear-centered.js","sourceRoot":"","sources":["../../../../src/lib-ext/color-mapping/color-mapping-linear-centered.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAQ8B;AAE9B,uCAAwD;AAExD,6DAA+C;AAE/C,IAAA,qBAAU,EAAC,UAAU,CAAC,CAAC;AAEvB,SAAS,UAAU,CAAC,MAAkB;IAClC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAQ,EAAE;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1B,CAAC,CAAC,CAAC;AACP,CAAC;AACD,UAAU,CAAC,mCAAc,CAAC,CAAC;AAC3B,UAAU,CAAC,kCAAa,CAAC,CAAC;AAC1B,UAAU,CAAC,+BAAU,CAAC,CAAC;AACvB,UAAU,CAAC,4CAAuB,CAAC,CAAC;AACpC,UAAU,CAAC,2CAAsB,CAAC,CAAC;AACnC,UAAU,CAAC,wCAAmB,CAAC,CAAC;AAEhC,gEAAgE;AAChE,MAAM,GAAG,GAAG;IACR,CAAC,EAAE,+BAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,+BAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,+BAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAErC,EAAE,EAAE,wCAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,EAAE,EAAE,wCAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,EAAE,EAAE,wCAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF,SAAe,UAAU,CAAC,OAAsB,EAAE,GAAyB;;QACvE,IAAI,IAAI,CAAC;QACT,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAiB,MAAM,IAAI,2BAAgB,CAAC;gBACnD,YAAY,EAAE,IAAI;aACrB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrB,MAAM,KAAK,GAAW,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAa,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,GAAG;oBACH,SAAS,EAAE,KAAK,CAAC,SAAmB;oBACpC,KAAK;oBACL,KAAK;iBACR,CAAC;gBACF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;gBACnE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/B,SAAS,GAAG,KAAK,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CAAA;AAED,SAAe,YAAY,CAAC,OAAsB,EAAE,GAAyB;;QACzE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAoB,EAAiB,EAAE;YAClD,MAAM,MAAM,GAAkB,CAAC,GAAG,KAAK,CAAC,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;CAAA;AAED,SAAe,UAAU;;QACrB,IAAI,MAAM,CAAC;QAEX,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAExD,MAAM,GAAG;YACL,CAAC,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAc,CAAC;YAC1C,CAAC,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAc,CAAC;YAC1C,CAAC,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAc,CAAC;YAC1C,KAAK,EAAE,CAAC;SACX,CAAC;QACF,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/C,MAAM,GAAG;YACL,CAAC,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAa,CAAC;YACzC,CAAC,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAa,CAAC;YACzC,CAAC,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAa,CAAC;YACzC,KAAK,EAAE,CAAC;SACX,CAAC;QACF,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAExD,MAAM,GAAG;YACL,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAc,CAAC;YAC5C,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAc,CAAC;YAC5C,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,mCAAc,CAAC;YAC5C,KAAK,EAAE,CAAC;SACX,CAAC;QACF,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjD,MAAM,GAAG;YACL,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAa,CAAC;YAC3C,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAa,CAAC;YAC3C,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAa,CAAC;YAC3C,KAAK,EAAE,CAAC;SACX,CAAC;QACF,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAExD,MAAM,GAAG;YACL,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,4CAAuB,CAAC;YACtD,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,4CAAuB,CAAC;YACtD,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,4CAAuB,CAAC;YACtD,KAAK,EAAE,CAAC;SACX,CAAC;QACF,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEzD,MAAM,GAAG;YACL,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,2CAAsB,CAAC;YACrD,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,2CAAsB,CAAC;YACrD,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,2CAAsB,CAAC;YACrD,KAAK,EAAE,CAAC;SACX,CAAC;QACF,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;CAAA;AAED,UAAU,EAAE,CAAC"}