cubing 0.26.0 → 0.26.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/{types → esm}/.DS_Store +0 -0
- package/dist/esm/{2x2x2.kpuzzle.json-BHTFIME6.js → 2x2x2.kpuzzle.json-RJHNQ246.js} +1 -1
- package/dist/esm/{2x2x2.kpuzzle.json-BHTFIME6.js.map → 2x2x2.kpuzzle.json-RJHNQ246.js.map} +1 -1
- package/dist/esm/{2x2x2.sgs.json-2TQNXTEF.js → 2x2x2.sgs.json-OIAKZDZZ.js} +5 -5
- package/dist/esm/{2x2x2.sgs.json-2TQNXTEF.js.map → 2x2x2.sgs.json-OIAKZDZZ.js.map} +1 -1
- package/dist/esm/{3d-dynamic-DBLQHCS5.js → 3d-dynamic-OTQHIOVR.js} +5 -5
- package/dist/esm/{3d-dynamic-DBLQHCS5.js.map → 3d-dynamic-OTQHIOVR.js.map} +1 -1
- package/dist/esm/{3x3x3-min2phase-UBW46KDU.js → 3x3x3-min2phase-GFNNX26U.js} +1 -1
- package/dist/esm/{3x3x3-min2phase-UBW46KDU.js.map → 3x3x3-min2phase-GFNNX26U.js.map} +1 -1
- package/dist/esm/{444-solver-YC3E4W2L.js → 444-solver-2ECPETB3.js} +6 -6
- package/dist/esm/{444-solver-YC3E4W2L.js.map → 444-solver-2ECPETB3.js.map} +1 -1
- package/dist/esm/alg/index.js +1 -1
- package/dist/esm/bluetooth/index.js +3 -3
- package/dist/esm/bluetooth/index.js.map +1 -1
- package/dist/esm/{chunk-FB7SFELN.js → chunk-3CEMUTUD.js} +2 -2
- package/dist/esm/{chunk-FB7SFELN.js.map → chunk-3CEMUTUD.js.map} +1 -1
- package/dist/esm/{chunk-NSLR2SC4.js → chunk-5Q4SJSNY.js} +2 -2
- package/dist/esm/{chunk-NSLR2SC4.js.map → chunk-5Q4SJSNY.js.map} +1 -1
- package/dist/esm/{chunk-ZPAGJE7S.js → chunk-AD6PFNOU.js} +2 -2
- package/dist/esm/{chunk-ZPAGJE7S.js.map → chunk-AD6PFNOU.js.map} +1 -1
- package/dist/esm/{chunk-GBMX6FHY.js → chunk-ALBEW4DJ.js} +1 -1
- package/dist/esm/{chunk-GBMX6FHY.js.map → chunk-ALBEW4DJ.js.map} +1 -1
- package/dist/esm/{chunk-IEI2CWII.js → chunk-CRU5TVHA.js} +4 -4
- package/dist/esm/{chunk-IEI2CWII.js.map → chunk-CRU5TVHA.js.map} +1 -1
- package/dist/esm/{chunk-OQ56YI7H.js → chunk-CYG3DDTX.js} +2 -2
- package/dist/esm/{chunk-OQ56YI7H.js.map → chunk-CYG3DDTX.js.map} +1 -1
- package/dist/esm/{chunk-HD2CMNE4.js → chunk-HUCMGBEC.js} +2 -2
- package/dist/esm/{chunk-HD2CMNE4.js.map → chunk-HUCMGBEC.js.map} +1 -1
- package/dist/esm/{chunk-OUSRVS3Y.js → chunk-J7OB2GEM.js} +6 -6
- package/dist/esm/{chunk-OUSRVS3Y.js.map → chunk-J7OB2GEM.js.map} +1 -1
- package/dist/esm/{chunk-OOTCOZEV.js → chunk-JIBAUV55.js} +7 -7
- package/dist/esm/{chunk-OOTCOZEV.js.map → chunk-JIBAUV55.js.map} +1 -1
- package/dist/esm/{chunk-KCKHYE6N.js → chunk-MC2D6L32.js} +3 -3
- package/dist/esm/{chunk-KCKHYE6N.js.map → chunk-MC2D6L32.js.map} +1 -1
- package/dist/esm/{chunk-BH3AI6DL.js → chunk-PDVAUAMY.js} +2 -2
- package/dist/esm/{chunk-BH3AI6DL.js.map → chunk-PDVAUAMY.js.map} +1 -1
- package/dist/esm/{chunk-3MBTISUG.js → chunk-PMKVGKT4.js} +4 -4
- package/dist/esm/{chunk-3MBTISUG.js.map → chunk-PMKVGKT4.js.map} +1 -1
- package/dist/esm/{chunk-DO7GZAW4.js → chunk-QZOJPCN5.js} +1 -1
- package/dist/esm/{chunk-DO7GZAW4.js.map → chunk-QZOJPCN5.js.map} +1 -1
- package/dist/esm/{chunk-BEXHMXCT.js → chunk-RHC3DIN3.js} +1 -1
- package/dist/esm/{chunk-BEXHMXCT.js.map → chunk-RHC3DIN3.js.map} +1 -1
- package/dist/esm/{chunk-NYAPGKCW.js → chunk-V55YSWJY.js} +1 -1
- package/dist/esm/{chunk-NYAPGKCW.js.map → chunk-V55YSWJY.js.map} +1 -1
- package/dist/esm/{chunk-3YHGF72G.js → chunk-XQKTAWAA.js} +6 -6
- package/dist/esm/{chunk-3YHGF72G.js.map → chunk-XQKTAWAA.js.map} +1 -1
- package/dist/esm/{clock.kpuzzle.json-PYHONPBY.js → clock.kpuzzle.json-3Q7KDODZ.js} +1 -1
- package/dist/esm/clock.kpuzzle.json-3Q7KDODZ.js.map +7 -0
- package/dist/esm/{fto-solver-QFOR6LKK.js → fto-solver-5EQEC77M.js} +2 -2
- package/dist/esm/{fto-solver-QFOR6LKK.js.map → fto-solver-5EQEC77M.js.map} +1 -1
- package/dist/esm/{fto.dynamic-3LJUL35Q.js → fto.dynamic-ISSUUAOX.js} +6 -6
- package/dist/esm/{fto.dynamic-3LJUL35Q.js.map → fto.dynamic-ISSUUAOX.js.map} +1 -1
- package/dist/esm/{kilosolver-QN5CWSPC.js → kilosolver-RP3POREU.js} +3 -3
- package/dist/esm/{kilosolver-QN5CWSPC.js.map → kilosolver-RP3POREU.js.map} +1 -1
- package/dist/esm/kpuzzle/index.js +2 -2
- package/dist/esm/{master_tetraminx-solver-4JXXIBVR.js → master_tetraminx-solver-RFBUNQMC.js} +2 -2
- package/dist/esm/{master_tetraminx-solver-4JXXIBVR.js.map → master_tetraminx-solver-RFBUNQMC.js.map} +1 -1
- package/dist/esm/{megaminx.sgs.json-746K2ZJG.js → megaminx.sgs.json-NUXKWG2L.js} +6 -6
- package/dist/esm/{megaminx.sgs.json-746K2ZJG.js.map → megaminx.sgs.json-NUXKWG2L.js.map} +0 -0
- package/dist/esm/notation/index.js +2 -2
- package/dist/esm/protocol/index.js +2 -2
- package/dist/esm/puzzle-geometry/index.js +2 -2
- package/dist/esm/puzzles/index.js +3 -3
- package/dist/esm/pyraminx.sgs.json-2BVIFZAF.js +14 -0
- package/dist/esm/{pyraminx.sgs.json-G2OWNIDF.js.map → pyraminx.sgs.json-2BVIFZAF.js.map} +0 -0
- package/dist/esm/{redi_cube-6LJBQEBD.js → redi_cube-5B6YHJGL.js} +3 -3
- package/dist/esm/{redi_cube-6LJBQEBD.js.map → redi_cube-5B6YHJGL.js.map} +1 -1
- package/dist/esm/{redi_cube.kpuzzle.json-43CP47Z6.js → redi_cube.kpuzzle.json-VGO74GBL.js} +1 -1
- package/dist/esm/{redi_cube.kpuzzle.json-43CP47Z6.js.map → redi_cube.kpuzzle.json-VGO74GBL.js.map} +1 -1
- package/dist/esm/scramble/index.js +8 -8
- package/dist/esm/search/index.js +8 -8
- package/dist/esm/{search-worker-js-entry-RSHPVUYJ.js → search-worker-js-entry-CZHIWNVF.js} +24 -24
- package/dist/esm/{search-worker-js-entry-RSHPVUYJ.js.map → search-worker-js-entry-CZHIWNVF.js.map} +1 -1
- package/dist/esm/{search-worker-ts-entry-O7OQ4BT5.js → search-worker-ts-entry-4WJDKASM.js} +5 -5
- package/dist/esm/{search-worker-ts-entry-O7OQ4BT5.js.map → search-worker-ts-entry-4WJDKASM.js.map} +1 -1
- package/dist/esm/skewb.sgs.json-IMR7QJQC.js +16 -0
- package/dist/esm/{skewb.sgs.json-DUKJ2AF5.js.map → skewb.sgs.json-IMR7QJQC.js.map} +0 -0
- package/dist/esm/{sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js → sq1-hyperorbit.kpuzzle.json-NHAYS6MD.js} +1 -1
- package/dist/esm/sq1-hyperorbit.kpuzzle.json-NHAYS6MD.js.map +7 -0
- package/dist/esm/{sq1-solver-E4EE73CO.js → sq1-solver-G73T6FTJ.js} +2 -2
- package/dist/esm/{sq1-solver-E4EE73CO.js.map → sq1-solver-G73T6FTJ.js.map} +1 -1
- package/dist/esm/stream/index.js +1 -1
- package/dist/esm/stream/index.js.map +1 -1
- package/dist/esm/twisty/index.js +16 -9
- package/dist/esm/twisty/index.js.map +2 -2
- package/dist/esm/{worker-inside-generated-string-J4XQMLW2.js → worker-inside-generated-string-4FDHMKDI.js} +2 -2
- package/dist/esm/{worker-inside-generated-string-J4XQMLW2.js.map → worker-inside-generated-string-4FDHMKDI.js.map} +1 -1
- package/dist/types/twisty/index.d.ts +2 -0
- package/package.json +1 -1
- package/dist/esm/clock.kpuzzle.json-PYHONPBY.js.map +0 -7
- package/dist/esm/pyraminx.sgs.json-G2OWNIDF.js +0 -14
- package/dist/esm/skewb.sgs.json-DUKJ2AF5.js +0 -16
- package/dist/esm/sq1-hyperorbit.kpuzzle.json-AMXAFQCM.js.map +0 -7
|
Binary file
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.ts"],
|
|
4
4
|
"sourcesContent": ["import type { KPuzzleDefinition } from \"../../../kpuzzle\";\n\nexport const cube2x2x2KPuzzleDefinition: KPuzzleDefinition = {\n name: \"2x2x2\",\n orbits: {\n CORNERS: { numPieces: 8, numOrientations: 3 },\n },\n startStateData: {\n CORNERS: {\n pieces: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n },\n moves: {\n U: {\n CORNERS: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n },\n y: {\n CORNERS: {\n permutation: [1, 2, 3, 0, 7, 4, 5, 6],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n },\n x: {\n CORNERS: {\n permutation: [4, 0, 3, 5, 7, 6, 2, 1],\n orientation: [2, 1, 2, 1, 1, 2, 1, 2],\n },\n },\n L: {\n CORNERS: {\n permutation: [0, 1, 6, 2, 4, 3, 5, 7],\n orientation: [0, 0, 2, 1, 0, 2, 1, 0],\n },\n },\n F: {\n CORNERS: {\n permutation: [3, 1, 2, 5, 0, 4, 6, 7],\n orientation: [1, 0, 0, 2, 2, 1, 0, 0],\n },\n },\n R: {\n CORNERS: {\n permutation: [4, 0, 2, 3, 7, 5, 6, 1],\n orientation: [2, 1, 0, 0, 1, 0, 0, 2],\n },\n },\n B: {\n CORNERS: {\n permutation: [0, 7, 1, 3, 4, 5, 2, 6],\n orientation: [0, 2, 1, 0, 0, 0, 2, 1],\n },\n },\n D: {\n CORNERS: {\n permutation: [0, 1, 2, 3, 5, 6, 7, 4],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n },\n z: {\n CORNERS: {\n permutation: [3, 2, 6, 5, 0, 4, 7, 1],\n orientation: [1, 2, 1, 2, 2, 1, 2, 1],\n },\n },\n },\n};\n\ncube2x2x2KPuzzleDefinition.moves[\"Rv\"] = cube2x2x2KPuzzleDefinition.moves[\"x\"];\ncube2x2x2KPuzzleDefinition.moves[\"Uv\"] = cube2x2x2KPuzzleDefinition.moves[\"y\"];\ncube2x2x2KPuzzleDefinition.moves[\"Fv\"] = cube2x2x2KPuzzleDefinition.moves[\"z\"];\ncube2x2x2KPuzzleDefinition.moves[\"Lv\"] = {\n CORNERS: {\n permutation: [1, 7, 6, 2, 0, 3, 5, 4],\n orientation: [2, 1, 2, 1, 1, 2, 1, 2],\n },\n};\ncube2x2x2KPuzzleDefinition.moves[\"Dv\"] = {\n CORNERS: {\n permutation: [3, 0, 1, 2, 5, 6, 7, 4],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n};\ncube2x2x2KPuzzleDefinition.moves[\"Bv\"] = {\n CORNERS: {\n permutation: [4, 7, 1, 0, 5, 3, 2, 6],\n orientation: [1, 2, 1, 2, 2, 1, 2, 1],\n },\n};\n"],
|
|
5
|
-
"mappings": ";;;AAEO,IAAM,6BAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,SAAS,EAAE,WAAW,GAAG,iBAAiB;AAAA;AAAA,
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseSGS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3CEMUTUD.js";
|
|
4
4
|
import {
|
|
5
5
|
cube2x2x2
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-XQKTAWAA.js";
|
|
7
|
+
import "./chunk-HUCMGBEC.js";
|
|
8
|
+
import "./chunk-QZOJPCN5.js";
|
|
9
9
|
import "./chunk-MGJA5U5O.js";
|
|
10
10
|
|
|
11
11
|
// src/cubing/search/inside/solve/puzzles/2x2x2.sgs.json.ts
|
|
@@ -119,4 +119,4 @@ export {
|
|
|
119
119
|
cachedData222,
|
|
120
120
|
data222
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=2x2x2.sgs.json-
|
|
122
|
+
//# sourceMappingURL=2x2x2.sgs.json-OIAKZDZZ.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/search/inside/solve/puzzles/2x2x2.sgs.json.ts"],
|
|
4
4
|
"sourcesContent": ["import { cube2x2x2 } from \"../../../../puzzles\";\nimport { parseSGS, SGSCachedData } from \"../parseSGS\";\n\nlet cachedData: Promise<SGSCachedData> | null = null;\nexport async function cachedData222() {\n return (cachedData ??= data222());\n}\n\n// TODO: Reduce info.\nexport async function data222(): Promise<SGSCachedData> {\n return parseSGS(\n await cube2x2x2.kpuzzle(),\n `SubgroupSizes 24 21 18 15 12 9 6\n\nAlg F\nAlg F2\nAlg F'\nAlg D\nAlg D2\nAlg D'\nAlg L\nAlg L2\nAlg L'\nAlg F U\nAlg F U2\nAlg F U'\nAlg F L\nAlg F L2\nAlg F L'\nAlg F2 U\nAlg F2 U'\nAlg F2 R\nAlg F2 R'\nAlg F' D\nAlg F' D'\nAlg F' R\nAlg F' R'\nAlg B\nAlg B2\nAlg B'\nAlg B R\nAlg B R2\nAlg B R'\nAlg B2 U\nAlg B2 U2\nAlg B2 U'\nAlg B2 R\nAlg B2 R2\nAlg B2 R'\nAlg B' U\nAlg B' U'\nAlg F D' F'\nAlg F2 L F2\nAlg B R' B2\nAlg B R' U2\nAlg B2 U R'\nAlg B2 R B'\nAlg R\nAlg R2\nAlg R'\nAlg R2 U\nAlg R2 U2\nAlg R2 U'\nAlg R' U\nAlg R' U2\nAlg R' U'\nAlg F R F'\nAlg F R2 F'\nAlg L2 D' L2\nAlg L' B L\nAlg R2 U' R\nAlg R' U R2\nAlg R' U R'\nAlg F R F' U2\nAlg F' U F\nAlg F' U2 F\nAlg F' U' F\nAlg L F L'\nAlg L F2 L'\nAlg L F' L'\nAlg F' D R D'\nAlg F' U2 F U'\nAlg F D2 B D2 F'\nAlg F2 D' L2 D F2\nAlg F2 L F L' F\nAlg L' F2 L' F2 L\nAlg F L' U' L2 F L'\nAlg F2 L F L' U2 F\nAlg U\nAlg U2\nAlg U'\nAlg F2 D2 B D2 F2\nAlg F2 D2 B' D2 F2\nAlg L2 D2 R D2 L2\nAlg L2 D2 R' D2 L2\nAlg F2 D2 B D2 F2 U\nAlg F2 D2 B D2 F2 U'\nAlg U F2 D2 B D2 F2\nAlg U F2 D2 B' D2 F2\nAlg F D B D' R' F' U\nAlg F' D L F U B' L'\nAlg F' L' F U L U L'\nAlg D' L F D R' U' F'\nAlg L F L' U' F' U' F\nAlg L D' F' L' U' R F\nAlg F D F U F' L' F' R'\nAlg F2 D' F L F2 D F' R'\nAlg F D' F L' D F R2 U2 F' U'\nAlg F D' L D' L F D2 L2 B' R'\nAlg F L' D F R2 D2 L D F' U2\nAlg F L' D F2 D' L F L2 F2 U\nAlg F D F' D L2 F R' F' D' B2 U'`,\n );\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;AAGA,IAAI,aAA4C;AAChD,+BAAsC;AACpC,SAAQ,4BAAe;
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAGA,IAAI,aAA4C;AAChD,+BAAsC;AACpC,SAAQ,4BAAe,QAAQ;AACjC;AAGA,yBAAwD;AACtD,SAAO,SACL,MAAM,UAAU,QAAQ,GACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAoGF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
THREEJS,
|
|
4
4
|
experimentalStickerings,
|
|
5
5
|
hintFaceletStyles
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PDVAUAMY.js";
|
|
7
7
|
import {
|
|
8
8
|
cube3x3x3,
|
|
9
9
|
getFaceletAppearance,
|
|
10
10
|
puzzles
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-XQKTAWAA.js";
|
|
12
|
+
import "./chunk-HUCMGBEC.js";
|
|
13
13
|
import {
|
|
14
14
|
Move
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-QZOJPCN5.js";
|
|
16
16
|
import {
|
|
17
17
|
__privateAdd,
|
|
18
18
|
__privateGet,
|
|
@@ -1499,4 +1499,4 @@ export {
|
|
|
1499
1499
|
cube3DShim,
|
|
1500
1500
|
pg3dShim
|
|
1501
1501
|
};
|
|
1502
|
-
//# sourceMappingURL=3d-dynamic-
|
|
1502
|
+
//# sourceMappingURL=3d-dynamic-OTQHIOVR.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/twisty/views/3D/puzzles/Cube3D.ts", "../../src/cubing/twisty/controllers/easing.ts", "../../src/cubing/twisty/views/3D/puzzles/PG3D.ts", "../../src/cubing/twisty/heavy-code-imports/dynamic-entries/3d-dynamic.ts", "../../src/cubing/twisty/views/3D/Twisty3DScene.ts"],
|
|
4
4
|
"sourcesContent": ["import {\n BackSide,\n BoxGeometry,\n BufferAttribute,\n BufferGeometry,\n DoubleSide,\n Euler,\n Group,\n Matrix4,\n Mesh,\n MeshBasicMaterial,\n Object3D,\n Quaternion,\n Texture,\n TextureLoader,\n Vector2,\n Vector3,\n} from \"three\";\nimport type { ExperimentalStickering } from \"../../..\";\nimport type { KPuzzle } from \"../../../../kpuzzle\";\nimport { puzzles } from \"../../../../puzzles\";\nimport type {\n FaceletMeshAppearance,\n PuzzleAppearance,\n} from \"../../../../puzzles/stickerings/appearance\";\nimport type { PuzzlePosition } from \"../../../controllers/AnimationTypes\";\nimport { smootherStep } from \"../../../controllers/easing\";\nimport {\n HintFaceletStyle,\n hintFaceletStyles,\n} from \"../../../model/props/puzzle/display/HintFaceletProp\";\nimport { experimentalStickerings } from \"../../../model/props/puzzle/display/StickeringProp\";\nimport { TAU } from \"../TAU\";\nimport type { Twisty3DPuzzle } from \"./Twisty3DPuzzle\";\n\nconst svgLoader = new TextureLoader();\n\nconst ignoredMaterial = new MeshBasicMaterial({\n color: 0x444444,\n side: DoubleSide,\n});\n\nconst ignoredMaterialHint = new MeshBasicMaterial({\n color: 0xcccccc,\n side: BackSide,\n transparent: true,\n opacity: 0.75,\n});\n\nconst invisibleMaterial = new MeshBasicMaterial({\n visible: false,\n});\n\nconst orientedMaterial = new MeshBasicMaterial({\n color: 0x44ddcc,\n});\n\nconst orientedMaterialHint = new MeshBasicMaterial({\n color: 0x44ddcc,\n side: BackSide,\n transparent: true,\n opacity: 0.5,\n});\n\ninterface MaterialMap extends Record<FaceletMeshAppearance, MeshBasicMaterial> {\n regular: MeshBasicMaterial;\n dim: MeshBasicMaterial;\n ignored: MeshBasicMaterial;\n invisible: MeshBasicMaterial;\n}\n\nclass AxisInfo {\n public stickerMaterial: MaterialMap;\n public hintStickerMaterial: MaterialMap;\n constructor(\n public vector: Vector3,\n public fromZ: Euler,\n public color: number,\n public dimColor: number,\n public hintOpacityScale: number, // TODO: make this work better across bright *and* dark backgrounds. Maybe tweak sticker compositing settings?\n options?: { hintColor?: number; hintDimColor?: number },\n ) {\n // TODO: Make sticker material single-sided when cubie foundation is opaque?\n this.stickerMaterial = {\n regular: new MeshBasicMaterial({\n color,\n side: DoubleSide,\n }),\n dim: new MeshBasicMaterial({\n color: dimColor,\n side: DoubleSide,\n }),\n oriented: orientedMaterial,\n ignored: ignoredMaterial,\n invisible: invisibleMaterial,\n };\n this.hintStickerMaterial = {\n regular: new MeshBasicMaterial({\n color: options?.hintColor ?? color,\n side: BackSide,\n transparent: true,\n opacity: 0.5 * hintOpacityScale,\n }),\n dim: new MeshBasicMaterial({\n color: options?.hintDimColor ?? dimColor,\n side: BackSide,\n transparent: true,\n opacity: 0.5 * hintOpacityScale,\n }),\n oriented: orientedMaterialHint,\n ignored: ignoredMaterialHint,\n invisible: invisibleMaterial,\n };\n }\n}\n\nconst axesInfo: AxisInfo[] = [\n new AxisInfo(\n new Vector3(0, 1, 0),\n new Euler(-TAU / 4, 0, 0),\n 0xffffff,\n 0xdddddd,\n 1.25,\n ),\n new AxisInfo(\n new Vector3(-1, 0, 0),\n new Euler(0, -TAU / 4, 0),\n 0xff8800,\n 0x884400,\n 1,\n { hintDimColor: 0x996600 },\n ),\n new AxisInfo(\n new Vector3(0, 0, 1),\n new Euler(0, 0, 0),\n 0x00ff00,\n 0x008800,\n 1,\n { hintDimColor: 0x009900 },\n ),\n new AxisInfo(\n new Vector3(1, 0, 0),\n new Euler(0, TAU / 4, 0),\n 0xff0000,\n 0x660000,\n 1,\n { hintDimColor: 0x990000 },\n ),\n new AxisInfo(\n new Vector3(0, 0, -1),\n new Euler(0, TAU / 2, 0),\n 0x0000ff,\n 0x000088,\n 0.75,\n { hintColor: 0x0044ff, hintDimColor: 0x001866 },\n ),\n new AxisInfo(\n new Vector3(0, -1, 0),\n new Euler(TAU / 4, 0, 0),\n 0xffff00,\n 0x888800,\n 1.25,\n { hintDimColor: 0xbbbb00 },\n ),\n];\n\nconst face: { [s: string]: number } = {\n U: 0,\n L: 1,\n F: 2,\n R: 3,\n B: 4,\n D: 5,\n};\n\nconst familyToAxis: { [s: string]: number } = {\n U: face.U,\n u: face.U,\n Uw: face.U,\n Uv: face.U,\n y: face.U,\n L: face.L,\n l: face.L,\n Lw: face.L,\n Lv: face.L,\n M: face.L,\n F: face.F,\n f: face.F,\n Fw: face.F,\n Fv: face.F,\n S: face.F,\n z: face.F,\n R: face.R,\n r: face.R,\n Rw: face.R,\n Rv: face.R,\n x: face.R,\n B: face.B,\n b: face.B,\n Bw: face.B,\n Bv: face.B,\n D: face.D,\n d: face.D,\n Dw: face.D,\n Dv: face.D,\n E: face.D,\n};\n\nconst cubieDimensions = {\n stickerWidth: 0.85,\n stickerElevation: 0.503,\n foundationWidth: 1,\n hintStickerElevation: 1.45,\n};\nconst EXPERIMENTAL_PICTURE_CUBE_HINT_ELEVATION = 2;\n\n/** @deprecated */\nexport function experimentalSetDefaultStickerElevation(\n stickerElevation: number,\n): void {\n cubieDimensions.stickerElevation = stickerElevation;\n}\n\nexport interface Cube3DOptions {\n showMainStickers?: boolean;\n hintFacelets?: HintFaceletStyle;\n showFoundation?: boolean; // TODO: better name\n experimentalStickering?: ExperimentalStickering;\n foundationSprite?: Texture | null;\n hintSprite?: Texture | null;\n}\n\nconst cube3DOptionsDefaults: Cube3DOptions = {\n showMainStickers: true,\n hintFacelets: \"floating\",\n showFoundation: true,\n experimentalStickering: \"full\",\n foundationSprite: null,\n hintSprite: null,\n};\n\n// TODO: Make internal foundation faces one-sided, facing to the outside of the cube.\nconst blackMesh = new MeshBasicMaterial({\n color: 0x000000,\n opacity: 1,\n transparent: true,\n});\n\nconst blackTranslucentMesh = new MeshBasicMaterial({\n color: 0x000000,\n opacity: 0.3,\n transparent: true,\n});\n\nclass CubieDef {\n public matrix: Matrix4;\n public stickerFaces: number[];\n // stickerFaceNames can be e.g. [\"U\", \"F\", \"R\"], \"UFR\" if every face is a single letter.\n constructor(\n public orbit: string,\n stickerFaceNames: string[] | string,\n q: Quaternion,\n ) {\n const individualStickerFaceNames =\n typeof stickerFaceNames === \"string\"\n ? stickerFaceNames.split(\"\")\n : stickerFaceNames;\n this.stickerFaces = individualStickerFaceNames.map((s) => face[s]);\n this.matrix = new Matrix4();\n this.matrix.setPosition(firstPiecePosition[orbit]);\n this.matrix.premultiply(new Matrix4().makeRotationFromQuaternion(q));\n }\n}\n\nfunction t(v: Vector3, t4: number): Quaternion {\n return new Quaternion().setFromAxisAngle(v, (TAU * t4) / 4);\n}\n\nconst r = {\n O: new Vector3(0, 0, 0),\n U: new Vector3(0, -1, 0),\n L: new Vector3(1, 0, 0),\n F: new Vector3(0, 0, -1),\n R: new Vector3(-1, 0, 0),\n B: new Vector3(0, 0, 1),\n D: new Vector3(0, 1, 0),\n};\n\ninterface OrbitIndexed<T> {\n [s: string]: T;\n}\ntype PieceIndexed<T> = OrbitIndexed<T[]>;\n\nconst firstPiecePosition: OrbitIndexed<Vector3> = {\n EDGES: new Vector3(0, 1, 1),\n CORNERS: new Vector3(1, 1, 1),\n CENTERS: new Vector3(0, 1, 0),\n};\nconst orientationRotation: OrbitIndexed<Matrix4[]> = {\n EDGES: [0, 1].map((i) =>\n new Matrix4().makeRotationAxis(\n firstPiecePosition.EDGES.clone().normalize(),\n (-i * TAU) / 2,\n ),\n ),\n CORNERS: [0, 1, 2].map((i) =>\n new Matrix4().makeRotationAxis(\n firstPiecePosition.CORNERS.clone().normalize(),\n (-i * TAU) / 3,\n ),\n ),\n CENTERS: [0, 1, 2, 3].map((i) =>\n new Matrix4().makeRotationAxis(\n firstPiecePosition.CENTERS.clone().normalize(),\n (-i * TAU) / 4,\n ),\n ),\n};\nconst cubieStickerOrder = [face.U, face.F, face.R];\n\nconst pieceDefs: PieceIndexed<CubieDef> = {\n EDGES: [\n new CubieDef(\"EDGES\", \"UF\", t(r.O, 0)),\n new CubieDef(\"EDGES\", \"UR\", t(r.U, 3)),\n new CubieDef(\"EDGES\", \"UB\", t(r.U, 2)),\n new CubieDef(\"EDGES\", \"UL\", t(r.U, 1)),\n new CubieDef(\"EDGES\", \"DF\", t(r.F, 2)),\n new CubieDef(\"EDGES\", \"DR\", t(r.F, 2).premultiply(t(r.D, 1))),\n new CubieDef(\"EDGES\", \"DB\", t(r.F, 2).premultiply(t(r.D, 2))),\n new CubieDef(\"EDGES\", \"DL\", t(r.F, 2).premultiply(t(r.D, 3))),\n new CubieDef(\"EDGES\", \"FR\", t(r.U, 3).premultiply(t(r.R, 3))),\n new CubieDef(\"EDGES\", \"FL\", t(r.U, 1).premultiply(t(r.R, 3))),\n new CubieDef(\"EDGES\", \"BR\", t(r.U, 3).premultiply(t(r.R, 1))),\n new CubieDef(\"EDGES\", \"BL\", t(r.U, 1).premultiply(t(r.R, 1))),\n ],\n CORNERS: [\n new CubieDef(\"CORNERS\", \"UFR\", t(r.O, 0)),\n new CubieDef(\"CORNERS\", \"URB\", t(r.U, 3)),\n new CubieDef(\"CORNERS\", \"UBL\", t(r.U, 2)),\n new CubieDef(\"CORNERS\", \"ULF\", t(r.U, 1)),\n new CubieDef(\"CORNERS\", \"DRF\", t(r.F, 2).premultiply(t(r.D, 1))),\n new CubieDef(\"CORNERS\", \"DFL\", t(r.F, 2).premultiply(t(r.D, 0))),\n new CubieDef(\"CORNERS\", \"DLB\", t(r.F, 2).premultiply(t(r.D, 3))),\n new CubieDef(\"CORNERS\", \"DBR\", t(r.F, 2).premultiply(t(r.D, 2))),\n ],\n CENTERS: [\n new CubieDef(\"CENTERS\", \"U\", t(r.O, 0)),\n new CubieDef(\"CENTERS\", \"L\", t(r.R, 3).premultiply(t(r.U, 1))),\n new CubieDef(\"CENTERS\", \"F\", t(r.R, 3)),\n new CubieDef(\"CENTERS\", \"R\", t(r.R, 3).premultiply(t(r.D, 1))),\n new CubieDef(\"CENTERS\", \"B\", t(r.R, 3).premultiply(t(r.D, 2))),\n new CubieDef(\"CENTERS\", \"D\", t(r.R, 2)),\n ],\n};\n\nconst CUBE_SCALE = 1 / 3;\n\ninterface FaceletInfo {\n faceIdx: number;\n facelet: Mesh;\n hintFacelet?: Mesh;\n}\n\n// TODO: Compatibility with Randelshofer or standard net layout? Offer a\n// conversion function?\nconst pictureStickerCoords: Record<string, number[][][]> = {\n EDGES: [\n [\n [0, 4, 6],\n [0, 4, 5],\n ],\n [\n [3, 5, 7],\n [0, 7, 5],\n ],\n [\n [2, 4, 8],\n [0, 10, 5],\n ],\n [\n [1, 3, 7],\n [0, 1, 5],\n ],\n [\n [2, 4, 2],\n [2, 4, 3],\n ],\n [\n [3, 5, 1],\n [2, 7, 3],\n ],\n [\n [0, 4, 0],\n [2, 10, 3],\n ],\n [\n [1, 3, 1],\n [2, 1, 3],\n ],\n [\n [3, 5, 4],\n [3, 6, 4],\n ],\n [\n [1, 3, 4],\n [1, 2, 4],\n ],\n [\n [1, 9, 4],\n [1, 8, 4],\n ],\n [\n [3, 11, 4],\n [3, 0, 4],\n ],\n ],\n CORNERS: [\n [\n [0, 5, 6],\n [0, 5, 5],\n [0, 6, 5],\n ],\n [\n [3, 5, 8],\n [0, 8, 5],\n [0, 9, 5],\n ],\n [\n [2, 3, 8],\n [0, 11, 5],\n [0, 0, 5],\n ],\n [\n [1, 3, 6],\n [0, 2, 5],\n [0, 3, 5],\n ],\n [\n [3, 5, 2],\n [2, 6, 3],\n [2, 5, 3],\n ],\n [\n [2, 3, 2],\n [2, 3, 3],\n [2, 2, 3],\n ],\n [\n [1, 3, 0],\n [2, 0, 3],\n [2, 11, 3],\n ],\n [\n [0, 5, 0],\n [2, 9, 3],\n [2, 8, 3],\n ],\n ],\n CENTERS: [\n [[0, 4, 7]],\n [[0, 1, 4]],\n [[0, 4, 4]],\n [[0, 7, 4]],\n [[0, 10, 4]],\n [[0, 4, 1]],\n ],\n};\n\nlet sharedCubieFoundationGeometryCache: BoxGeometry | null = null;\nfunction sharedCubieFoundationGeometry(): BoxGeometry {\n return (\n sharedCubieFoundationGeometryCache ??\n (sharedCubieFoundationGeometryCache = new BoxGeometry(\n cubieDimensions.foundationWidth,\n cubieDimensions.foundationWidth,\n cubieDimensions.foundationWidth,\n ))\n );\n}\n\nfunction newStickerGeometry(): BufferGeometry {\n const r = new BufferGeometry();\n const half = 0.5 * cubieDimensions.stickerWidth;\n r.setAttribute(\n \"position\",\n new BufferAttribute(\n new Float32Array([\n half,\n half,\n 0,\n -half,\n half,\n 0,\n half,\n -half,\n 0,\n -half,\n half,\n 0,\n -half,\n -half,\n 0,\n half,\n -half,\n 0,\n ]),\n 3,\n ),\n );\n r.setAttribute(\n \"uv\",\n new BufferAttribute(\n new Float32Array([\n 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1,\n ]),\n 2,\n ),\n );\n // r.setAttribute('normals', new BufferAttribute(new Float32Array([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]), 3));\n return r;\n}\n\nlet sharedStickerGeometryCache: BufferGeometry | null = null;\nfunction sharedStickerGeometry(): BufferGeometry {\n return (\n sharedStickerGeometryCache ??\n (sharedStickerGeometryCache = newStickerGeometry())\n );\n}\n\n// TODO: Split into \"scene model\" and \"view\".\nexport class Cube3D extends Object3D implements Twisty3DPuzzle {\n kpuzzleFaceletInfo: Record<string, FaceletInfo[][]>;\n private pieces: PieceIndexed<Object3D> = {};\n private options: Cube3DOptions;\n // TODO: Keep track of option-based meshes better.\n private experimentalHintStickerMeshes: Mesh[] = [];\n private experimentalFoundationMeshes: Mesh[] = [];\n\n private setSpriteURL: (url: string) => void;\n private sprite: Texture | Promise<Texture> = new Promise((resolve) => {\n this.setSpriteURL = (url: string): void => {\n svgLoader.load(url, resolve);\n };\n });\n\n // TODO: Don't overwrite the static function.\n // TODO: This doesn't work dynamically yet.\n setSprite(texture: Texture): void {\n this.sprite = texture;\n }\n\n private setHintSpriteURL: (url: string) => void;\n private hintSprite: Texture | Promise<Texture> = new Promise((resolve) => {\n this.setHintSpriteURL = (url: string): void => {\n svgLoader.load(url, resolve);\n };\n });\n\n // TODO: Don't overwrite the static function.\n // TODO: This doesn't work dynamically yet.\n setHintSprite(texture: Texture): void {\n this.hintSprite = texture;\n }\n\n constructor(\n private kpuzzle: KPuzzle,\n private scheduleRenderCallback?: () => void,\n options: Cube3DOptions = {},\n ) {\n super();\n\n this.options = { ...cube3DOptionsDefaults };\n Object.assign(this.options, options); // TODO: check if this works\n\n if (this.kpuzzle.name() !== \"3x3x3\") {\n throw new Error(\n `Invalid puzzle for this Cube3D implementation: ${this.kpuzzle.name()}`,\n );\n }\n\n if (options.foundationSprite) {\n this.setSprite(options.foundationSprite);\n }\n if (options.hintSprite) {\n this.setHintSprite(options.hintSprite);\n }\n\n this.kpuzzleFaceletInfo = {};\n for (const orbit in pieceDefs) {\n const orbitFaceletInfo: FaceletInfo[][] = [];\n this.kpuzzleFaceletInfo[orbit] = orbitFaceletInfo;\n this.pieces[orbit] = pieceDefs[orbit].map(\n this.createCubie.bind(this, orbit, orbitFaceletInfo),\n );\n }\n this.scale.set(CUBE_SCALE, CUBE_SCALE, CUBE_SCALE);\n\n // TODO: Can we construct this directly instead of applying it later? Would that be more code-efficient?\n if (this.options.experimentalStickering) {\n this.setStickering(this.options.experimentalStickering);\n }\n }\n\n // Can only be called once.\n /** @deprecated */\n experimentalSetStickerSpriteURL(stickerSpriteURL: string): void {\n this.setSpriteURL(stickerSpriteURL);\n }\n\n // Can only be called once.\n /** @deprecated */\n experimentalSetHintStickerSpriteURL(hintStickerSpriteURL: string): void {\n this.setHintSpriteURL(hintStickerSpriteURL);\n }\n\n setStickering(stickering: ExperimentalStickering): void {\n // TODO\n (async () => {\n // TODO\n const appearance = await puzzles[\"3x3x3\"].appearance!(\n stickering ?? \"full\",\n );\n this.setAppearance(\n appearance ?? (await puzzles[\"3x3x3\"].appearance!(\"full\")),\n );\n })();\n }\n\n setAppearance(appearance: PuzzleAppearance): void {\n for (const [orbitName, orbitAppearance] of Object.entries(\n appearance.orbits,\n )) {\n for (\n let pieceIdx = 0;\n pieceIdx < orbitAppearance.pieces.length;\n pieceIdx++\n ) {\n const pieceAppearance = orbitAppearance.pieces[pieceIdx];\n if (pieceAppearance) {\n const pieceInfo = this.kpuzzleFaceletInfo[orbitName][pieceIdx];\n for (\n let faceletIdx = 0;\n faceletIdx < pieceInfo.length;\n faceletIdx++\n ) {\n const faceletAppearance = pieceAppearance.facelets[faceletIdx];\n if (faceletAppearance) {\n const faceletInfo = pieceInfo[faceletIdx];\n\n const appearance =\n typeof faceletAppearance === \"string\"\n ? faceletAppearance\n : faceletAppearance?.appearance;\n\n faceletInfo.facelet.material =\n axesInfo[faceletInfo.faceIdx].stickerMaterial[appearance];\n // TODO\n const hintAppearance =\n typeof faceletAppearance === \"string\"\n ? appearance\n : faceletAppearance.hintAppearance ?? appearance;\n if (faceletInfo.hintFacelet) {\n faceletInfo.hintFacelet.material =\n axesInfo[faceletInfo.faceIdx].hintStickerMaterial[\n hintAppearance\n ];\n }\n }\n }\n }\n }\n }\n if (this.scheduleRenderCallback) {\n this.scheduleRenderCallback();\n }\n }\n\n /** @deprecated */\n public experimentalUpdateOptions(options: Cube3DOptions): void {\n if (\"showMainStickers\" in options) {\n throw new Error(\"Unimplemented\");\n }\n\n const showFoundation = options.showFoundation;\n if (\n typeof showFoundation !== \"undefined\" &&\n this.options.showFoundation !== showFoundation\n ) {\n this.options.showFoundation = showFoundation;\n for (const foundation of this.experimentalFoundationMeshes) {\n foundation.visible = showFoundation;\n }\n }\n\n const hintFacelets = options.hintFacelets;\n if (\n typeof hintFacelets !== \"undefined\" &&\n this.options.hintFacelets !== hintFacelets &&\n hintFaceletStyles[hintFacelets] // TODO: test this\n ) {\n this.options.hintFacelets = hintFacelets;\n for (const hintSticker of this.experimentalHintStickerMeshes) {\n hintSticker.visible = hintFacelets === \"floating\";\n }\n this.scheduleRenderCallback!(); // TODO\n }\n\n const experimentalStickering = options.experimentalStickering;\n if (\n typeof experimentalStickering !== \"undefined\" &&\n this.options.experimentalStickering !== experimentalStickering &&\n experimentalStickerings[experimentalStickering] // TODO: test this\n ) {\n this.options.experimentalStickering = experimentalStickering;\n // TODO\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.setStickering(experimentalStickering);\n this.scheduleRenderCallback!(); // TODO\n }\n }\n\n public onPositionChange(p: PuzzlePosition): void {\n const reid333 = p.state;\n for (const orbit in pieceDefs) {\n const pieces = pieceDefs[orbit];\n for (let i = 0; i < pieces.length; i++) {\n const j = reid333.stateData[orbit].pieces[i];\n this.pieces[orbit][j].matrix.copy(pieceDefs[orbit][i].matrix);\n this.pieces[orbit][j].matrix.multiply(\n orientationRotation[orbit][reid333.stateData[orbit].orientation[i]],\n );\n }\n for (const moveProgress of p.movesInProgress) {\n const move = moveProgress.move;\n const turnNormal = axesInfo[familyToAxis[move.family]].vector;\n const moveMatrix = new Matrix4().makeRotationAxis(\n turnNormal,\n (-this.ease(moveProgress.fraction) *\n moveProgress.direction *\n move.amount *\n TAU) /\n 4,\n );\n for (let i = 0; i < pieces.length; i++) {\n const k =\n this.kpuzzle.definition.moves[move.family][orbit].permutation[i];\n if (\n i !== k ||\n this.kpuzzle.definition.moves[move.family][orbit].orientation[i] !==\n 0\n ) {\n const j = reid333.stateData[orbit].pieces[i];\n this.pieces[orbit][j].matrix.premultiply(moveMatrix);\n }\n }\n }\n }\n this.scheduleRenderCallback!();\n }\n\n // TODO: Always create (but sometimes hide parts) so we can show them later,\n // or (better) support creating puzzle parts on demand.\n private createCubie(\n orbit: string,\n orbitFacelets: FaceletInfo[][],\n piece: CubieDef,\n orbitPieceIdx: number,\n ): Object3D {\n const cubieFaceletInfo: FaceletInfo[] = [];\n orbitFacelets.push(cubieFaceletInfo);\n const cubie = new Group();\n if (this.options.showFoundation) {\n const foundation = this.createCubieFoundation();\n cubie.add(foundation);\n this.experimentalFoundationMeshes.push(foundation);\n }\n for (let i = 0; i < piece.stickerFaces.length; i++) {\n const sticker = this.createSticker(\n axesInfo[cubieStickerOrder[i]],\n axesInfo[piece.stickerFaces[i]],\n false,\n );\n const faceletInfo: FaceletInfo = {\n faceIdx: piece.stickerFaces[i],\n facelet: sticker,\n };\n cubie.add(sticker);\n if (this.options.hintFacelets === \"floating\") {\n const hintSticker = this.createSticker(\n axesInfo[cubieStickerOrder[i]],\n axesInfo[piece.stickerFaces[i]],\n true,\n );\n cubie.add(hintSticker);\n faceletInfo.hintFacelet = hintSticker;\n this.experimentalHintStickerMeshes.push(hintSticker);\n }\n\n if (\n this.options.experimentalStickering === \"picture\" &&\n pictureStickerCoords[orbit] &&\n pictureStickerCoords[orbit][orbitPieceIdx] &&\n pictureStickerCoords[orbit][orbitPieceIdx][i]\n ) {\n const [rotate, offsetX, offsetY] =\n pictureStickerCoords[orbit][orbitPieceIdx][i];\n (async () => {\n const addImageSticker = async (hint: boolean) => {\n const texture: Texture = await (hint\n ? this.hintSprite\n : this.sprite);\n\n const mesh = this.createSticker(\n axesInfo[cubieStickerOrder[i]],\n axesInfo[piece.stickerFaces[i]],\n hint,\n );\n mesh.material = new MeshBasicMaterial({\n map: texture,\n side: hint ? BackSide : DoubleSide,\n transparent: true,\n });\n\n const x1 = offsetX / 12;\n const x2 = (offsetX + 1) / 12;\n const y1 = offsetY / 9;\n const y2 = (offsetY + 1) / 9;\n\n let v1 = new Vector2(x1, y1);\n let v2 = new Vector2(x1, y2);\n let v3 = new Vector2(x2, y2);\n let v4 = new Vector2(x2, y1);\n\n switch (rotate) {\n case 1:\n [v1, v2, v3, v4] = [v2, v3, v4, v1];\n break;\n case 2:\n [v1, v2, v3, v4] = [v3, v4, v1, v2];\n break;\n case 3:\n [v1, v2, v3, v4] = [v4, v1, v2, v3];\n break;\n }\n mesh.geometry.setAttribute(\n \"uv\",\n new BufferAttribute(\n new Float32Array([\n v3.x,\n v3.y,\n v2.x,\n v2.y,\n v4.x,\n v4.y,\n v2.x,\n v2.y,\n v1.x,\n v1.y,\n v4.x,\n v4.y,\n ]),\n 2,\n ),\n );\n cubie.add(mesh);\n };\n // const delay: number = ({\n // CENTERS: 1000,\n // EDGES: 2000,\n // CORNERS: 3500,\n // } as Record<string, number>)[orbit];\n // if (orbit === \"CENTERS\" && orbitPieceIdx === 5) {\n addImageSticker(true);\n addImageSticker(false);\n // } else {\n // await this.sprite;\n // await this.hintSprite;\n // setTimeout(\n // () => addImageSticker(true),\n // delay + orbitPieceIdx * 100,\n // );\n // setTimeout(\n // () => addImageSticker(false),\n // delay + orbitPieceIdx * 100,\n // );\n // }\n })();\n }\n\n cubieFaceletInfo.push(faceletInfo);\n }\n cubie.matrix.copy(piece.matrix);\n cubie.matrixAutoUpdate = false;\n this.add(cubie);\n return cubie;\n }\n\n // TODO: Support creating only the outward-facing parts?\n private createCubieFoundation(): Mesh {\n const box = sharedCubieFoundationGeometry();\n return new Mesh(\n box,\n this.options.experimentalStickering === \"picture\"\n ? blackMesh\n : blackTranslucentMesh,\n );\n }\n\n private createSticker(\n posAxisInfo: AxisInfo,\n materialAxisInfo: AxisInfo,\n isHint: boolean,\n ): Mesh {\n const geo =\n this.options.experimentalStickering === \"picture\"\n ? newStickerGeometry()\n : sharedStickerGeometry();\n const stickerMesh = new Mesh(\n geo,\n isHint\n ? materialAxisInfo.hintStickerMaterial.regular\n : materialAxisInfo.stickerMaterial.regular,\n );\n stickerMesh.setRotationFromEuler(posAxisInfo.fromZ);\n stickerMesh.position.copy(posAxisInfo.vector);\n stickerMesh.position.multiplyScalar(\n isHint\n ? this.options.experimentalStickering === \"picture\"\n ? EXPERIMENTAL_PICTURE_CUBE_HINT_ELEVATION\n : cubieDimensions.hintStickerElevation\n : cubieDimensions.stickerElevation,\n );\n return stickerMesh;\n }\n\n /** @deprecated */\n experimentalSetFoundationOpacity(opacity: number): void {\n (\n this.experimentalFoundationMeshes[0].material as MeshBasicMaterial\n ).opacity = opacity;\n }\n\n /** @deprecated */\n experimentalSetStickerWidth(width: number): void {\n for (const orbitInfo of Object.values(this.kpuzzleFaceletInfo)) {\n for (const pieceInfo of orbitInfo) {\n for (const faceletInfo of pieceInfo) {\n faceletInfo.facelet.scale.setScalar(\n width / cubieDimensions.stickerWidth,\n );\n // faceletInfo.facelet.setRotationFromAxisAngle(new Vector3(0, 1, 0), 0);\n // faceletInfo.facelet.rotateOnAxis(new Vector3(1, 0, 1), TAU / 6);\n }\n }\n }\n }\n\n /** @deprecated */\n experimentalSetCenterStickerWidth(width: number): void {\n for (const orbitInfo of [this.kpuzzleFaceletInfo[\"CENTERS\"]]) {\n for (const pieceInfo of orbitInfo) {\n for (const faceletInfo of pieceInfo) {\n faceletInfo.facelet.scale.setScalar(\n width / cubieDimensions.stickerWidth,\n );\n // faceletInfo.facelet.setRotationFromAxisAngle(new Vector3(0, 1, 0), 0);\n // faceletInfo.facelet.rotateOnAxis(new Vector3(1, 0, 1), TAU / 6);\n }\n }\n }\n }\n\n private ease(fraction: number): number {\n return smootherStep(fraction);\n }\n}\n", "export function smootherStep(x: number): number {\n return x * x * x * (10 - x * (15 - 6 * x));\n}\n", "import {\n BufferAttribute,\n BufferGeometry,\n Color,\n DoubleSide,\n Euler,\n FrontSide,\n Group,\n Material,\n Mesh,\n MeshBasicMaterial,\n Object3D,\n Texture,\n Vector3,\n} from \"three\";\nimport { Move } from \"../../../../alg\";\nimport type { KPuzzle, KTransformation } from \"../../../../kpuzzle\";\nimport type {\n StickerDat,\n StickerDatAxis,\n StickerDatSticker,\n} from \"../../../../puzzle-geometry\";\nimport type { TextureMapper } from \"../../../../puzzle-geometry/PuzzleGeometry\";\nimport {\n ExperimentalFaceletMeshAppearance,\n experimentalGetFaceletAppearance,\n ExperimentalPuzzleAppearance,\n} from \"../../../../puzzles\";\nimport type { PuzzlePosition } from \"../../../controllers/AnimationTypes\";\nimport { smootherStep } from \"../../../controllers/easing\";\nimport type { HintFaceletStyle } from \"../../../model/props/puzzle/display/HintFaceletProp\";\nimport { TAU } from \"../TAU\";\nimport type { Twisty3DPuzzle } from \"./Twisty3DPuzzle\";\n\nconst foundationMaterial = new MeshBasicMaterial({\n side: DoubleSide,\n color: 0x000000,\n});\nconst invisMaterial = new MeshBasicMaterial({\n visible: false,\n});\nconst basicStickerMaterial = new MeshBasicMaterial({\n vertexColors: true,\n});\n\nfunction dist(coords: number[], a: number, b: number): number {\n return Math.hypot(\n coords[3 * a] - coords[3 * b],\n coords[3 * a + 1] - coords[3 * b + 1],\n coords[3 * a + 2] - coords[3 * b + 2],\n );\n}\n\nfunction triarea(coords: number[], a: number, b: number, c: number): number {\n const ab = dist(coords, a, b);\n const bc = dist(coords, b, c);\n const ac = dist(coords, a, c);\n const p = (ab + bc + ac) / 2;\n return Math.sqrt(p * (p - ab) * (p - bc) * (p - ac));\n}\n\nfunction polyarea(coords: number[]): number {\n let sum = 0;\n for (let i = 2; 3 * i < coords.length; i++) {\n sum += triarea(coords, 0, 1, i);\n }\n return sum;\n}\n\nfunction normalize(r: number[]): number[] {\n const m = Math.hypot(r[0], r[1], r[2]);\n r[0] /= m;\n r[1] /= m;\n r[2] /= m;\n return r;\n}\n\nfunction cross(a: number[], b: number[]): number[] {\n const r = new Array<number>(3);\n r[0] = a[1] * b[2] - a[2] * b[1];\n r[1] = a[2] * b[0] - a[0] * b[2];\n r[2] = a[0] * b[1] - a[1] * b[0];\n return r;\n}\n\nfunction normal(c: number[]): number[] {\n const a: number[] = [c[3] - c[0], c[4] - c[1], c[5] - c[2]];\n const b: number[] = [c[6] - c[3], c[7] - c[4], c[8] - c[5]];\n const r = cross(a, b);\n return normalize(r);\n}\n\nfunction trimEdges(face: number[], tr: number): number[] {\n const r: number[] = [];\n const A: number[] = new Array(3);\n const B: number[] = new Array(3);\n for (let iter = 1; iter < 10; iter++) {\n for (let i = 0; i < face.length; i += 3) {\n const pi = (i + face.length - 3) % face.length;\n const ni = (i + 3) % face.length;\n for (let k = 0; k < 3; k++) {\n A[k] = face[pi + k] - face[i + k];\n B[k] = face[ni + k] - face[i + k];\n }\n const alen = Math.hypot(A[0], A[1], A[2]);\n const blen = Math.hypot(B[0], B[1], B[2]);\n for (let k = 0; k < 3; k++) {\n A[k] /= alen;\n B[k] /= blen;\n }\n const d = A[0] * B[0] + A[1] * B[1] + A[2] * B[2];\n const m = tr / Math.sqrt(1 - d * d);\n for (let k = 0; k < 3; k++) {\n r[i + k] = face[i + k] + (A[k] + B[k]) * m;\n }\n }\n let good = true;\n for (let i = 0; good && i < r.length; i += 3) {\n const ni = (i + 3) % face.length;\n let t = 0;\n for (let k = 0; k < 3; k++) {\n const a = face[ni + k] - face[i + k];\n const b = r[ni + k] - r[i + k];\n t += a * b;\n }\n if (t <= 0) {\n good = false;\n }\n }\n if (good) {\n return r;\n }\n tr /= 2;\n }\n return face;\n}\n\nclass Filler {\n pos: number;\n ipos: number;\n vertices: Float32Array;\n colors: Uint8Array;\n uvs?: Float32Array;\n ind: Uint8Array;\n constructor(public sz: number, public tm: TextureMapper) {\n this.vertices = new Float32Array(9 * sz);\n this.uvs = undefined;\n this.colors = new Uint8Array(18 * sz);\n this.ind = new Uint8Array(sz);\n this.pos = 0;\n this.ipos = 0;\n }\n\n add(pt: number[], i: number, c: number) {\n this.vertices[this.pos] = pt[3 * i + 0];\n this.vertices[this.pos + 1] = pt[3 * i + 1];\n this.vertices[this.pos + 2] = pt[3 * i + 2];\n this.colors[this.pos] = c >> 16;\n this.colors[this.pos + 1] = (c >> 8) & 255;\n this.colors[this.pos + 2] = c & 255;\n this.pos += 3;\n }\n\n addUncolored(pt: number[], i: number) {\n this.vertices[this.pos] = pt[3 * i + 0];\n this.vertices[this.pos + 1] = pt[3 * i + 1];\n this.vertices[this.pos + 2] = pt[3 * i + 2];\n this.pos += 3;\n }\n\n setind(i: number) {\n this.ind[this.ipos++] = i;\n }\n\n makePoly(coords: number[], color: number, ind: number): void {\n const ncoords: number[] = coords;\n for (let g = 1; 3 * (g + 1) < ncoords.length; g++) {\n this.add(ncoords, 0, color);\n this.add(ncoords, g, color);\n this.add(ncoords, g + 1, color);\n this.setind(ind);\n }\n }\n\n setAttributes(geo: BufferGeometry) {\n geo.setAttribute(\"position\", new BufferAttribute(this.vertices, 3));\n // the geometry only needs the first half of the array\n const sa2 = this.colors.subarray(0, 9 * this.sz);\n geo.setAttribute(\"color\", new BufferAttribute(sa2, 3, true));\n }\n\n makeGroups(geo: BufferGeometry) {\n geo.clearGroups();\n for (let i = 0; i < this.ipos; ) {\n const si = i++;\n const iv = this.ind[si];\n while (this.ind[i] === iv) {\n i++;\n }\n geo.addGroup(3 * si, 3 * (i - si), iv);\n }\n }\n\n saveOriginalColors() {\n this.colors.copyWithin(this.pos, 0, this.pos);\n }\n}\n\nclass StickerDef {\n private origColor: number;\n private origColorAppearance: number;\n private faceColor: number;\n private texturePtr?: StickerDef = undefined;\n public twistVal: number = -1;\n public stickerStart: number;\n public stickerEnd: number;\n public hintStart: number;\n public hintEnd: number;\n public foundationStart: number;\n public foundationEnd: number;\n private isDup: boolean;\n private faceNum: number;\n constructor(\n filler: Filler,\n stickerDat: StickerDatSticker,\n trim: number,\n options?: {\n appearance?: ExperimentalFaceletMeshAppearance;\n },\n ) {\n this.isDup = !!stickerDat.isDup;\n this.faceNum = stickerDat.face;\n this.stickerStart = filler.ipos;\n const sdColor = new Color(stickerDat.color).getHex();\n this.origColor = sdColor;\n this.origColorAppearance = sdColor;\n if (options?.appearance) {\n this.setAppearance(filler, options.appearance);\n }\n this.faceColor = sdColor;\n const coords = this.stickerCoords(stickerDat.coords, trim);\n filler.makePoly(coords, this.faceColor, this.isDup ? 4 : 0);\n this.stickerEnd = filler.ipos;\n }\n\n private stickerCoords(coords: number[], trim: number): number[] {\n return trimEdges(coords.slice(), trim);\n }\n\n private hintCoords(\n coords: number[],\n hintStickerHeightScale: number,\n trim: number,\n normal: number[],\n ): number[] {\n coords = this.stickerCoords(coords, trim); // pick up trim from stickers\n normal = normal.slice();\n for (let i = 0; i < 3; i++) {\n normal[i] *= 0.5 * hintStickerHeightScale;\n }\n const hCoords = new Array<number>(coords.length);\n for (let i = 0; 3 * i < coords.length; i++) {\n const j = coords.length / 3 - 1 - i;\n hCoords[3 * i] = coords[3 * j] + normal[0];\n hCoords[3 * i + 1] = coords[3 * j + 1] + normal[1];\n hCoords[3 * i + 2] = coords[3 * j + 2] + normal[2];\n }\n return hCoords;\n }\n\n private foundationCoords(coords: number[]): number[] {\n const ncoords = coords.slice();\n for (let i = 0; i < coords.length; i++) {\n ncoords[i] = coords[i] * 0.999;\n }\n return ncoords;\n }\n\n addHint(\n filler: Filler,\n stickerDat: StickerDatSticker,\n hintStickers: boolean,\n hintStickerHeightScale: number,\n trim: number,\n normal: number[],\n ): void {\n this.hintStart = filler.ipos;\n const coords = this.hintCoords(\n stickerDat.coords,\n hintStickerHeightScale,\n trim,\n normal,\n );\n filler.makePoly(\n coords,\n this.faceColor,\n hintStickers && !this.isDup ? 2 : 4,\n );\n this.hintEnd = filler.ipos;\n }\n\n public addFoundation(\n filler: Filler,\n stickerDat: StickerDatSticker,\n black: number,\n ) {\n this.foundationStart = filler.ipos;\n const coords = this.foundationCoords(stickerDat.coords);\n filler.makePoly(coords, black, this.isDup ? 4 : 6);\n this.foundationEnd = filler.ipos;\n }\n\n private setHintStickers(filler: Filler, hintStickers: boolean): void {\n const indv = this.isDup || !hintStickers ? 4 : 2;\n for (let i = this.hintStart; i < this.hintEnd; i++) {\n filler.ind[i] = indv | (filler.ind[i] & 1);\n }\n }\n\n public setAppearance(\n filler: Filler,\n faceletMeshAppearance: ExperimentalFaceletMeshAppearance,\n ): void {\n let c = 0;\n switch (faceletMeshAppearance) {\n case \"regular\":\n c = this.origColor;\n break;\n case \"dim\":\n if (this.origColor === 0xffffff) {\n c = 0xdddddd;\n } else {\n c = new Color(this.origColor).multiplyScalar(0.5).getHex();\n }\n break;\n case \"oriented\":\n c = 0xff88ff;\n break;\n case \"ignored\":\n c = 0x444444;\n break;\n case \"invisible\":\n c = this.origColor;\n }\n this.origColorAppearance = c;\n for (let i = 9 * this.stickerStart; i < 9 * this.stickerEnd; i += 3) {\n filler.colors[filler.pos + i] = c >> 16;\n filler.colors[filler.pos + i + 1] = (c >> 8) & 255;\n filler.colors[filler.pos + i + 2] = c & 255;\n }\n for (let i = 9 * this.hintStart; i < 9 * this.hintEnd; i += 3) {\n filler.colors[filler.pos + i] = c >> 16;\n filler.colors[filler.pos + i + 1] = (c >> 8) & 255;\n filler.colors[filler.pos + i + 2] = c & 255;\n }\n this.setHintStickers(\n filler,\n faceletMeshAppearance !== \"invisible\" && !this.isDup,\n );\n }\n\n public addUVs(filler: Filler): void {\n const uvs = filler.uvs!;\n const vert = filler.vertices;\n const coords = new Array(3);\n for (let i = 3 * this.stickerStart; i < 3 * this.stickerEnd; i++) {\n coords[0] = vert[3 * i];\n coords[1] = vert[3 * i + 1];\n coords[2] = vert[3 * i + 2];\n const uv = filler.tm.getuv(this.faceNum, coords);\n uvs[2 * i] = uv[0];\n uvs[2 * i + 1] = uv[1];\n }\n for (let i = 3 * this.hintStart; i < 3 * this.hintEnd; i++) {\n coords[0] = vert[3 * i];\n coords[1] = vert[3 * i + 1];\n coords[2] = vert[3 * i + 2];\n const uv = filler.tm.getuv(this.faceNum, coords);\n uvs[2 * i] = uv[0];\n uvs[2 * i + 1] = uv[1];\n }\n }\n\n public setTexture(filler: Filler, sd: StickerDef): number {\n if (this.texturePtr === sd) {\n return 0;\n }\n this.texturePtr = sd;\n const sz = 6 * filler.sz;\n filler.uvs!.copyWithin(\n 6 * this.stickerStart,\n 6 * sd.stickerStart + sz,\n 6 * sd.stickerEnd + sz,\n );\n filler.uvs!.copyWithin(\n 6 * this.hintStart,\n 6 * sd.hintStart + sz,\n 6 * sd.hintEnd + sz,\n );\n return 1;\n }\n\n public setColor(filler: Filler, sd: StickerDef): number {\n const c = sd.origColorAppearance;\n if (this.faceColor !== c) {\n this.faceColor = c;\n const sz = filler.pos;\n filler.colors.copyWithin(\n 9 * this.stickerStart,\n 9 * sd.stickerStart + sz,\n 9 * sd.stickerEnd + sz,\n );\n filler.colors.copyWithin(\n 9 * this.hintStart,\n 9 * sd.hintStart + sz,\n 9 * sd.hintEnd + sz,\n );\n return 1;\n } else {\n return 0;\n }\n }\n}\n\nclass HitPlaneDef {\n public cubie: Group;\n private geo: BufferGeometry;\n constructor(hitface: any, tm: TextureMapper, stickerDat: StickerDat) {\n this.cubie = new Group();\n const coords = hitface.coords as number[];\n const filler = new Filler(coords.length / 3 - 2, tm);\n for (let g = 1; 3 * g + 3 < coords.length; g++) {\n filler.addUncolored(coords, 0);\n filler.addUncolored(coords, g);\n filler.addUncolored(coords, g + 1);\n }\n this.geo = new BufferGeometry();\n filler.setAttributes(this.geo);\n const obj = new Mesh(this.geo, invisMaterial);\n obj.userData.quantumMove = stickerDat.notationMapper.notationToExternal(\n new Move(hitface.name),\n );\n this.cubie.scale.setScalar(0.99);\n this.cubie.add(obj);\n }\n}\n\nclass AxisInfo {\n public axis: Vector3;\n public order: number;\n constructor(axisDat: StickerDatAxis) {\n const vec = axisDat.coordinates;\n this.axis = new Vector3(vec[0], vec[1], vec[2]);\n this.order = axisDat.order;\n }\n}\n\nexport interface PG3DOptions {\n appearance?: ExperimentalPuzzleAppearance;\n}\n\nconst DEFAULT_COLOR_FRACTION = 0.71;\nconst PG_SCALE = 0.5;\n\n// TODO: Split into \"scene model\" and \"view\".\n/*\n * PG3D uses a single geometry for the puzzle, with all the faces for\n * each sticker (including the foundation stickers) in a single\n * geometry. We use the materialIndex in the face to point to a\n * specific entry, which is either a colored sticker, invisible, or\n * black (foundation).\n *\n * To support general twisting of a subset of the puzzle, we then\n * instantiate this same geometry in two different meshes with two\n * distinct material arrays. One, the fixed mesh, has the material\n * array set up like: [colored, invisible, black, invisible].\n * The twisting mesh has the material array set up as\n * [invisible, colored, invislble, black]. When not twisted, the\n * two meshes are directly coincident, and the (shared) materialIndex\n * in each face points to a non-invisible material in exactly one of\n * the two meshes. When we decide to twist some cubies, we make\n * the cubies that move point to visible materials in the moving\n * mesh (which makes them point to invisible materials in the static\n * mesh). This way, we only need to rotate the moving mesh as a\n * single object---this should be very fast, and occur entirely in\n * the GPU. Unfortunately this doesn't quite work as fast as we'd\n * like because three.js makes a draw call every time we have a change\n * in the material index. By moving the foundation triangles separate\n * from the sticker triangles, we enhance the probability that many\n * triangles can be rendered in one call speeding up the render.\n * We also get some assistance from puzzleGeometry to try to keep\n * nearby stickers close to each other.\n */\nexport class PG3D extends Object3D implements Twisty3DPuzzle {\n private stickers: { [key: string]: StickerDef[][] };\n private axesInfo: { [key: string]: AxisInfo };\n\n private stickerTargets: Object3D[] = [];\n private controlTargets: Object3D[] = [];\n\n private movingObj: Object3D;\n private filler: Filler;\n private foundationBound: number; // before this: colored; after: black\n private fixedGeo: BufferGeometry;\n private lastPos: PuzzlePosition;\n private lastMoveTransformation: KTransformation;\n private hintMaterial: Material;\n private stickerMaterial: Material;\n private materialArray1: Material[];\n private materialArray2: Material[];\n private textured: boolean = false;\n private showHintStickers: boolean = false;\n private showFoundations: boolean = false;\n private hintMaterialDisposable: boolean;\n private stickerMaterialDisposable: boolean;\n\n #pendingStickeringUpdate: boolean = false;\n\n public isPG3DForTwisty3DPuzzleWrapper: true;\n\n constructor(\n private scheduleRenderCallback: () => void,\n private kpuzzle: KPuzzle,\n private stickerDat: StickerDat,\n enableFoundationOpt: boolean = false,\n enableHintStickersOpt: boolean = false,\n hintStickerHeightScale: number = 1,\n private params: PG3DOptions = {},\n ) {\n super();\n if (stickerDat.stickers.length === 0) {\n throw Error(\"Reuse of stickerdat from pg; please don't do that.\");\n }\n this.hintMaterial = new MeshBasicMaterial({\n vertexColors: true,\n transparent: true,\n opacity: 0.5,\n });\n this.hintMaterialDisposable = true;\n this.stickerMaterial = basicStickerMaterial;\n this.stickerMaterialDisposable = false;\n this.axesInfo = {};\n const axesDef = this.stickerDat.axis;\n for (const axis of axesDef) {\n this.axesInfo[axis.quantumMove.family] = new AxisInfo(axis);\n }\n const stickers = this.stickerDat.stickers as any[];\n this.stickers = {};\n this.materialArray1 = new Array(8);\n this.materialArray2 = new Array(8);\n // TODO: the argument enableFoundationOpt really means, do we ever want to display\n // foundations. But it is presently *used* to mean, show foundations initially\n // (and maybe experimentalSetAppearance changes this). So for now we set up the\n // show flag from the enable flag, and turn on the enable flag so later when it's\n // used we will get the foundations. What this means is the geometry always \"pays\"\n // for foundations, even if they aren't displayed.\n this.showFoundation(enableFoundationOpt);\n enableFoundationOpt = true;\n let triangleCount = 0;\n const multiplier = 3;\n for (const sticker of stickers) {\n const sides = sticker.coords.length / 3;\n triangleCount += multiplier * (sides - 2);\n }\n const filler = new Filler(triangleCount, stickerDat.textureMapper);\n const black = 0;\n const normals: number[][] = [];\n let totArea = 0;\n for (const f of stickerDat.faces) {\n normals.push(normal(f.coords));\n totArea += polyarea(f.coords);\n }\n const colorfrac = DEFAULT_COLOR_FRACTION;\n let nonDupStickers = 0;\n for (const sticker of stickers) {\n if (!sticker.isDup) {\n nonDupStickers++;\n }\n }\n const trim =\n (Math.sqrt(totArea / nonDupStickers) * (1 - Math.sqrt(colorfrac))) / 2;\n for (const sticker of stickers) {\n const orbit = sticker.orbit;\n const ord = sticker.ord;\n const ori = sticker.ori;\n if (!this.stickers[orbit]) {\n this.stickers[orbit] = [];\n }\n if (!this.stickers[orbit][ori]) {\n this.stickers[orbit][ori] = [];\n }\n const options: { appearance?: ExperimentalFaceletMeshAppearance } = {};\n if (params.appearance) {\n options.appearance = experimentalGetFaceletAppearance(\n params.appearance,\n orbit,\n ord,\n ori,\n false,\n );\n }\n const stickerdef = new StickerDef(filler, sticker, trim, options);\n this.stickers[orbit][ori][ord] = stickerdef;\n }\n // TODO: the argument enableHintStickersOpt really means, do we ever want to display\n // hint stickers. But it is presently *used* to mean, show hint stickers initially\n // (and maybe experimentalSetAppearance changes this). So for now we set up the\n // show flag from the enable flag, and turn on the enable flag so later when it's\n // used we will get the hint stickers. What this means is the geometry always \"pays\"\n // for hint stickers, even if they aren't displayed.\n this.showHintStickers = enableHintStickersOpt;\n enableHintStickersOpt = true;\n for (const sticker of stickers) {\n const orbit = sticker.orbit;\n const ord = sticker.ord;\n const ori = sticker.ori;\n this.stickers[orbit][ori][ord].addHint(\n filler,\n sticker,\n enableHintStickersOpt,\n hintStickerHeightScale,\n trim,\n normals[sticker.face],\n );\n }\n this.foundationBound = filler.ipos;\n for (const sticker of stickers) {\n const orbit = sticker.orbit;\n const ord = sticker.ord;\n const ori = sticker.ori;\n if (enableFoundationOpt) {\n this.stickers[orbit][ori][ord].addFoundation(filler, sticker, black);\n }\n }\n const fixedGeo = new BufferGeometry();\n filler.setAttributes(fixedGeo);\n filler.makeGroups(fixedGeo);\n const obj = new Mesh(fixedGeo, this.materialArray1);\n obj.scale.set(PG_SCALE, PG_SCALE, PG_SCALE);\n this.add(obj);\n const obj2 = new Mesh(fixedGeo, this.materialArray2);\n obj2.scale.set(PG_SCALE, PG_SCALE, PG_SCALE);\n this.add(obj2);\n const hitfaces = this.stickerDat.faces as any[];\n this.movingObj = obj2;\n this.fixedGeo = fixedGeo;\n this.filler = filler;\n for (const hitface of hitfaces) {\n const facedef = new HitPlaneDef(\n hitface,\n stickerDat.textureMapper,\n this.stickerDat,\n );\n facedef.cubie.scale.set(PG_SCALE, PG_SCALE, PG_SCALE);\n this.add(facedef.cubie);\n this.controlTargets.push(facedef.cubie.children[0]);\n }\n filler.saveOriginalColors();\n stickerDat.stickers = []; // don't need these anymore\n this.updateMaterialArrays();\n /*\n this.experimentalUpdateTexture(\n true,\n new TextureLoader().load(\n \"/experiments.cubing.net/cubing.js/twisty/mkbhd-sprite-red.png\",\n ),\n new TextureLoader().load(\n \"/experiments.cubing.net/cubing.js/twisty/mkbhd-sprite-red-hint.png\",\n ),\n );\n */\n }\n\n public dispose(): void {\n if (this.fixedGeo) {\n this.fixedGeo.dispose();\n }\n if (this.stickerMaterialDisposable) {\n this.stickerMaterial.dispose();\n this.stickerMaterial = basicStickerMaterial;\n this.stickerMaterialDisposable = false;\n }\n if (this.hintMaterialDisposable) {\n this.hintMaterial.dispose();\n this.hintMaterial = basicStickerMaterial;\n this.hintMaterialDisposable = false;\n }\n }\n\n public experimentalGetStickerTargets(): Object3D[] {\n return this.stickerTargets;\n }\n\n public experimentalGetControlTargets(): Object3D[] {\n return this.controlTargets;\n }\n\n #isValidMove(move: Move): boolean {\n try {\n this.kpuzzle.moveToTransformation(move);\n return true;\n } catch (_) {\n return false;\n }\n }\n\n getClosestMoveToAxis(\n point: Vector3,\n transformations: {\n invert: boolean;\n depth?: \"secondSlice\" | \"rotation\" | \"none\";\n },\n ): { move: Move; order: number } | null {\n let closestMove: Move | null = null;\n let closestMoveDotProduct: number = 0;\n\n let modify: (move: Move) => Move = (m) => m;\n switch (transformations.depth) {\n case \"secondSlice\":\n modify = (m: Move) => m.modified({ innerLayer: 2 });\n break;\n case \"rotation\":\n modify = (m: Move) => m.modified({ family: m.family + \"v\" });\n break;\n }\n\n for (const axis of this.stickerDat.axis) {\n const product = point.dot(new Vector3(...axis.coordinates));\n if (product > closestMoveDotProduct) {\n const modified = this.stickerDat.notationMapper.notationToExternal(\n modify(axis.quantumMove),\n );\n if (!modified) {\n continue;\n }\n if (this.#isValidMove(modified)) {\n closestMoveDotProduct = product;\n closestMove = modified;\n }\n }\n }\n\n if (!closestMove) {\n return null;\n }\n\n if (transformations.invert) {\n closestMove = closestMove.invert();\n }\n const order = this.kpuzzle\n .moveToTransformation(closestMove)\n .repetitionOrder();\n return { move: closestMove, order }; // TODO: push this down\n }\n\n experimentalSetAppearance(appearance: ExperimentalPuzzleAppearance): void {\n this.params.appearance = appearance;\n for (const orbitName in this.kpuzzle.definition.orbits) {\n const { numPieces, numOrientations: orientations } =\n this.kpuzzle.definition.orbits[orbitName];\n for (let pieceIdx = 0; pieceIdx < numPieces; pieceIdx++) {\n for (let faceletIdx = 0; faceletIdx < orientations; faceletIdx++) {\n const faceletAppearance = experimentalGetFaceletAppearance(\n appearance,\n orbitName,\n pieceIdx,\n faceletIdx,\n false,\n );\n const stickerDef = this.stickers[orbitName][faceletIdx][pieceIdx];\n if (\n this.textured &&\n this.hintMaterialDisposable &&\n faceletAppearance === \"invisible\"\n ) {\n // ignore \"invisible\" if textured hints\n } else {\n stickerDef.setAppearance(this.filler, faceletAppearance);\n }\n }\n }\n }\n this.#pendingStickeringUpdate = true;\n if (this.lastPos) {\n this.onPositionChange(this.lastPos);\n }\n }\n\n public onPositionChange(p: PuzzlePosition): void {\n const transformation = p.state.experimentalToTransformation();\n if (!transformation) {\n throw new Error(\"indistinguishable pieces are not supported by PG3D yet\");\n }\n const noRotation = new Euler();\n this.movingObj.rotation.copy(noRotation);\n let colormods = 0;\n const filler = this.filler;\n const ind = filler.ind;\n if (\n !this.lastPos ||\n this.#pendingStickeringUpdate ||\n !this.lastPos.state\n .experimentalToTransformation()!\n .isIdentical(transformation)\n ) {\n for (const orbit in this.stickers) {\n const pieces = this.stickers[orbit];\n const pos2 = transformation.transformationData[orbit];\n const orin = pieces.length;\n if (orin === 1) {\n const pieces2 = pieces[0];\n for (let i = 0; i < pieces2.length; i++) {\n const ni = pos2.permutation[i];\n if (this.textured) {\n colormods += pieces2[i].setTexture(filler, pieces2[ni]);\n } else {\n colormods += pieces2[i].setColor(filler, pieces2[ni]);\n }\n }\n } else {\n for (let ori = 0; ori < orin; ori++) {\n const pieces2 = pieces[ori];\n for (let i = 0; i < pieces2.length; i++) {\n const nori = (ori + orin - pos2.orientation[i]) % orin;\n const ni = pos2.permutation[i];\n if (this.textured) {\n colormods += pieces2[i].setTexture(filler, pieces[nori][ni]);\n } else {\n colormods += pieces2[i].setColor(filler, pieces[nori][ni]);\n }\n }\n }\n }\n }\n this.lastPos = p;\n }\n let vismods = 0;\n for (const moveProgress of p.movesInProgress) {\n const externalMove = moveProgress.move;\n // TODO: unswizzle goes external to internal, and so does the call after that\n // and so does the stateForBlockMove call\n const unswizzled = this.stickerDat.unswizzle(externalMove);\n if (!unswizzled) {\n // bad times, but let's not throw.\n return;\n }\n\n const move = externalMove;\n const quantumTransformation = this.kpuzzle.moveToTransformation(\n move.modified({ amount: 1 }),\n ); // TODO\n\n const ax = this.axesInfo[unswizzled.family];\n const turnNormal = ax.axis;\n const angle =\n (-this.ease(moveProgress.fraction) *\n moveProgress.direction *\n unswizzled.amount *\n TAU) /\n ax.order;\n this.movingObj.rotateOnAxis(turnNormal, angle);\n if (this.lastMoveTransformation !== quantumTransformation) {\n for (const orbit in this.stickers) {\n const pieces = this.stickers[orbit];\n const orin = pieces.length;\n const bmv = quantumTransformation.transformationData[orbit];\n for (let ori = 0; ori < orin; ori++) {\n const pieces2 = pieces[ori];\n for (let i = 0; i < pieces2.length; i++) {\n const p2 = pieces2[i];\n const ni = bmv.permutation[i];\n let tv = 0;\n if (ni !== i || bmv.orientation[i] !== 0) {\n tv = 1;\n }\n if (tv !== p2.twistVal) {\n if (tv) {\n for (let j = p2.stickerStart; j < p2.stickerEnd; j++) {\n ind[j] |= 1;\n }\n for (let j = p2.hintStart; j < p2.hintEnd; j++) {\n ind[j] |= 1;\n }\n for (let j = p2.foundationStart; j < p2.foundationEnd; j++) {\n ind[j] |= 1;\n }\n } else {\n for (let j = p2.stickerStart; j < p2.stickerEnd; j++) {\n ind[j] &= ~1;\n }\n for (let j = p2.hintStart; j < p2.hintEnd; j++) {\n ind[j] &= ~1;\n }\n for (let j = p2.foundationStart; j < p2.foundationEnd; j++) {\n ind[j] &= ~1;\n }\n }\n p2.twistVal = tv;\n vismods++;\n }\n }\n }\n }\n this.lastMoveTransformation = quantumTransformation;\n }\n }\n if (this.#pendingStickeringUpdate || vismods) {\n this.filler.makeGroups(this.fixedGeo);\n }\n if (this.#pendingStickeringUpdate || colormods) {\n if (this.textured) {\n (this.fixedGeo.getAttribute(\"uv\") as BufferAttribute).updateRange = {\n offset: 0,\n count: 6 * this.foundationBound,\n };\n (this.fixedGeo.getAttribute(\"uv\") as BufferAttribute).needsUpdate =\n true;\n }\n if (this.#pendingStickeringUpdate || !this.textured) {\n (this.fixedGeo.getAttribute(\"color\") as BufferAttribute).updateRange = {\n offset: 0,\n count: 9 * this.foundationBound,\n };\n (this.fixedGeo.getAttribute(\"color\") as BufferAttribute).needsUpdate =\n true;\n }\n }\n this.scheduleRenderCallback();\n this.#pendingStickeringUpdate = false;\n }\n\n private ease(fraction: number): number {\n return smootherStep(fraction);\n }\n\n private showHintFacelets(v: boolean) {\n this.showHintStickers = v;\n }\n\n private updateMaterialArrays() {\n for (let i = 0; i < 8; i++) {\n this.materialArray1[i] = invisMaterial;\n this.materialArray2[i] = invisMaterial;\n }\n this.materialArray1[0] = this.stickerMaterial;\n this.materialArray2[1] = this.stickerMaterial;\n if (this.showHintStickers) {\n this.materialArray1[2] = this.hintMaterial;\n this.materialArray2[3] = this.hintMaterial;\n } else {\n this.materialArray1[2] = invisMaterial;\n this.materialArray2[3] = invisMaterial;\n }\n if (this.showFoundations) {\n this.materialArray1[6] = foundationMaterial;\n this.materialArray2[7] = foundationMaterial;\n } else {\n this.materialArray1[6] = invisMaterial;\n this.materialArray2[7] = invisMaterial;\n }\n }\n\n private showFoundation(v: boolean) {\n this.showFoundations = v;\n }\n\n private setHintStickerOpacity(v: number): void {\n if (this.hintMaterialDisposable) {\n this.hintMaterial.dispose();\n this.hintMaterialDisposable = false;\n }\n if (v === 0) {\n this.hintMaterial = invisMaterial;\n } else if (v === 1) {\n this.hintMaterial = this.stickerMaterial;\n } else {\n this.hintMaterial = new MeshBasicMaterial({\n vertexColors: true,\n transparent: true,\n opacity: 0.5,\n });\n this.hintMaterialDisposable = true;\n }\n }\n\n public experimentalUpdateOptions(options: {\n showMainStickers?: boolean;\n hintFacelets?: HintFaceletStyle;\n showFoundation?: boolean; // TODO: better name\n hintStickerOpacity?: number;\n }): void {\n if (options.hintFacelets !== undefined) {\n this.showHintFacelets(options.hintFacelets !== \"none\");\n }\n if (options.showFoundation !== undefined) {\n this.showFoundation(options.showFoundation);\n }\n if (options.hintStickerOpacity !== undefined) {\n this.setHintStickerOpacity(options.hintStickerOpacity);\n }\n this.#pendingStickeringUpdate = true;\n if (this.lastPos) {\n this.onPositionChange(this.lastPos);\n }\n this.updateMaterialArrays();\n this.scheduleRenderCallback();\n }\n\n private adduvs() {\n const filler = this.filler;\n if (filler.uvs) {\n return;\n }\n this.filler.uvs = new Float32Array(12 * filler.sz);\n for (const orbit in this.stickers) {\n const pieces = this.stickers[orbit];\n const orin = pieces.length;\n for (let ori = 0; ori < orin; ori++) {\n const pieces2 = pieces[ori];\n for (const piece2 of pieces2) {\n piece2.addUVs(this.filler);\n }\n }\n }\n filler.uvs!.copyWithin(6 * filler.sz, 0, 6 * filler.sz);\n const sa1 = filler.uvs!.subarray(0, 6 * filler.sz);\n this.fixedGeo.setAttribute(\"uv\", new BufferAttribute(sa1, 2, true));\n }\n\n public experimentalUpdateTexture(\n enabled: boolean,\n stickerTexture?: Texture | null,\n hintTexture?: Texture | null,\n ) {\n if (!stickerTexture) {\n enabled = false;\n }\n if (enabled && !this.filler.uvs) {\n this.adduvs();\n }\n this.textured = enabled;\n if (this.stickerMaterialDisposable) {\n this.stickerMaterial.dispose();\n this.stickerMaterialDisposable = false;\n }\n if (enabled) {\n this.stickerMaterial = new MeshBasicMaterial({\n map: stickerTexture,\n side: FrontSide,\n transparent: false,\n });\n this.stickerMaterialDisposable = true;\n } else {\n this.stickerMaterial = basicStickerMaterial;\n }\n if (this.hintMaterialDisposable) {\n this.hintMaterial.dispose();\n this.hintMaterialDisposable = false;\n }\n if (enabled) {\n this.hintMaterial = new MeshBasicMaterial({\n map: hintTexture,\n side: FrontSide,\n transparent: false,\n });\n this.hintMaterialDisposable = true;\n } else {\n this.hintMaterial = basicStickerMaterial;\n }\n if (enabled) {\n this.showHintFacelets(hintTexture !== null);\n }\n this.updateMaterialArrays();\n this.#pendingStickeringUpdate = true;\n if (this.lastPos) {\n this.onPositionChange(this.lastPos);\n }\n this.scheduleRenderCallback();\n }\n}\n", "import { cube3x3x3, PuzzleLoader } from \"../../../puzzles\";\nimport type { HintFaceletStyle } from \"../../model/props/puzzle/display/HintFaceletProp\";\nimport { Cube3D, Cube3DOptions } from \"../../views/3D/puzzles/Cube3D\";\nimport { PG3D } from \"../../views/3D/puzzles/PG3D\";\n\n// Mangled to avoid autocompleting.\n// This must not be imported directly.\nexport * as T3I from \"three\";\nexport { Cube3D } from \"../../views/3D/puzzles/Cube3D\";\nexport { PG3D } from \"../../views/3D/puzzles/PG3D\";\nexport { Twisty3DScene } from \"../../views/3D/Twisty3DScene\";\n\nexport async function cube3DShim(options?: Cube3DOptions): Promise<Cube3D> {\n const renderCallbackShim = () => {};\n return new Cube3D(await cube3x3x3.kpuzzle(), renderCallbackShim, options);\n}\n\n// TODO: take loader?\nexport async function pg3dShim(\n puzzleLoader: PuzzleLoader,\n hintFacelets: HintFaceletStyle,\n): Promise<PG3D> {\n const renderCallbackShim = () => {};\n return new PG3D(\n renderCallbackShim,\n await puzzleLoader.kpuzzle(),\n (await puzzleLoader.pg!()).get3d(),\n true,\n hintFacelets === \"floating\",\n );\n}\n", "import type { Scene as ThreeScene } from \"three\";\nimport { THREEJS } from \"../../heavy-code-imports/3d\";\nimport type { Twisty3DPuzzle } from \"./puzzles/Twisty3DPuzzle\";\nimport type { Twisty3DRenderTarget } from \"./Twisty3DRenderTarget\";\n\nexport class Twisty3DScene implements Twisty3DRenderTarget {\n private renderTargets: Set<Twisty3DRenderTarget> = new Set();\n public twisty3Ds: Set<Twisty3DPuzzle> = new Set();\n\n threeJSScene: Promise<ThreeScene> = (async () =>\n new (await THREEJS).Scene())();\n constructor() {}\n\n addRenderTarget(renderTarget: Twisty3DRenderTarget): void {\n this.renderTargets.add(renderTarget);\n }\n\n scheduleRender(): void {\n for (const renderTarget of this.renderTargets) {\n renderTarget.scheduleRender();\n }\n }\n\n async addTwisty3DPuzzle(twisty3DPuzzle: Twisty3DPuzzle): Promise<void> {\n this.twisty3Ds.add(twisty3DPuzzle);\n (await this.threeJSScene).add(twisty3DPuzzle);\n // TODO: scheduleRender?\n }\n\n async removeTwisty3DPuzzle(twisty3DPuzzle: Twisty3DPuzzle): Promise<void> {\n this.twisty3Ds.delete(twisty3DPuzzle);\n (await this.threeJSScene).remove(twisty3DPuzzle);\n // TODO: scheduleRender?\n }\n\n async clearPuzzles(): Promise<void> {\n for (const puz of this.twisty3Ds) {\n (await this.threeJSScene).remove(puz);\n }\n this.twisty3Ds.clear();\n // TODO: scheduleRender?\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|