cubing 0.23.0 → 0.24.0-pre1

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 (1040) hide show
  1. package/dist/esm/{2x2x2.kpuzzle.json-JOGUSQ4N.js → 2x2x2.kpuzzle.json-U5KOZCMU.js} +11 -11
  2. package/dist/esm/2x2x2.kpuzzle.json-U5KOZCMU.js.map +7 -0
  3. package/dist/esm/{2x2x2.sgs.json-FRBWMMA7.js → 2x2x2.sgs.json-VLYEQLNB.js} +5 -5
  4. package/dist/esm/2x2x2.sgs.json-VLYEQLNB.js.map +7 -0
  5. package/dist/esm/{3d-Q4WSD4BC.js → 3d-KAC5GXA4.js} +4 -4
  6. package/dist/esm/{3d-Q4WSD4BC.js.map → 3d-KAC5GXA4.js.map} +0 -0
  7. package/dist/esm/bluetooth/index.js +39 -33
  8. package/dist/esm/bluetooth/index.js.map +2 -2
  9. package/dist/esm/{chunk-FK2SCC3Z.js → chunk-23FEDDYH.js} +33 -27
  10. package/dist/esm/chunk-23FEDDYH.js.map +7 -0
  11. package/dist/esm/{chunk-DK6PXBB2.js → chunk-25PPOENI.js} +66 -56
  12. package/dist/esm/chunk-25PPOENI.js.map +7 -0
  13. package/dist/esm/{chunk-XVZOMB6J.js → chunk-27KJGD3S.js} +15 -20
  14. package/dist/esm/chunk-27KJGD3S.js.map +7 -0
  15. package/dist/esm/{chunk-DPMEZY7V.js → chunk-DBWASN5Q.js} +19 -10
  16. package/dist/esm/chunk-DBWASN5Q.js.map +7 -0
  17. package/dist/esm/{chunk-PUPUQWJC.js → chunk-J2U2GRS4.js} +27 -32
  18. package/dist/esm/chunk-J2U2GRS4.js.map +7 -0
  19. package/dist/esm/{chunk-Z6X7HTPP.js → chunk-MQYHOXEK.js} +4 -4
  20. package/dist/esm/{chunk-Z6X7HTPP.js.map → chunk-MQYHOXEK.js.map} +2 -2
  21. package/dist/esm/chunk-PMAQZQHL.js +810 -0
  22. package/dist/esm/chunk-PMAQZQHL.js.map +7 -0
  23. package/dist/esm/{chunk-N3RNWU5T.js → chunk-PQKDEV4Z.js} +36 -51
  24. package/dist/esm/chunk-PQKDEV4Z.js.map +7 -0
  25. package/dist/esm/{chunk-JZWB7AIU.js → chunk-PYOHTUEC.js} +17 -10
  26. package/dist/esm/chunk-PYOHTUEC.js.map +7 -0
  27. package/dist/esm/chunk-W6AA6TVR.js +274 -0
  28. package/dist/esm/chunk-W6AA6TVR.js.map +7 -0
  29. package/dist/esm/{chunk-MLOCDLUF.js → chunk-YLKDBBMW.js} +13 -13
  30. package/dist/esm/{chunk-MLOCDLUF.js.map → chunk-YLKDBBMW.js.map} +2 -2
  31. package/dist/esm/{clock.kpuzzle.json-EKWRMHJM.js → clock.kpuzzle.json-J3YBOI3G.js} +7 -45
  32. package/dist/esm/clock.kpuzzle.json-J3YBOI3G.js.map +7 -0
  33. package/dist/esm/{entry-L6CE2HLF.js → entry-ZLEDRTCM.js} +172 -167
  34. package/dist/esm/entry-ZLEDRTCM.js.map +7 -0
  35. package/dist/esm/{fto.sgs.json-62YNULOK.js → fto.sgs.json-PUAEKD7W.js} +6 -14
  36. package/dist/esm/fto.sgs.json-PUAEKD7W.js.map +7 -0
  37. package/dist/esm/kpuzzle/index.js +5 -35
  38. package/dist/esm/megaminx.sgs.json-DPQBIFB6.js +16 -0
  39. package/dist/esm/{megaminx.sgs.json-PRL46G5J.js.map → megaminx.sgs.json-DPQBIFB6.js.map} +0 -0
  40. package/dist/esm/{module-entry-J2N3UZP7.js → module-entry-UAGINHYL.js} +2 -2
  41. package/dist/esm/{module-entry-J2N3UZP7.js.map → module-entry-UAGINHYL.js.map} +0 -0
  42. package/dist/esm/protocol/index.js +2 -1
  43. package/dist/esm/puzzle-geometry/index.js +3 -1
  44. package/dist/esm/puzzles/index.js +4 -4
  45. package/dist/esm/{pyraminx.sgs.json-7QMPT5XP.js → pyraminx.sgs.json-5UKE76QP.js} +5 -5
  46. package/dist/esm/{pyraminx.sgs.json-7QMPT5XP.js.map → pyraminx.sgs.json-5UKE76QP.js.map} +0 -0
  47. package/dist/esm/scramble/index.js +4 -4
  48. package/dist/esm/{scramble_444-JP3CWLJM.js → scramble_444-ZNWCGUX5.js} +4 -4
  49. package/dist/esm/{scramble_444-JP3CWLJM.js.map → scramble_444-ZNWCGUX5.js.map} +0 -0
  50. package/dist/esm/search/index.js +4 -4
  51. package/dist/esm/skewb.sgs.json-O2CG5ALM.js +16 -0
  52. package/dist/esm/{skewb.sgs.json-FWHYACJG.js.map → skewb.sgs.json-O2CG5ALM.js.map} +0 -0
  53. package/dist/esm/{sq1-hyperorbit.kpuzzle.json-N3FGCPML.js → sq1-hyperorbit.kpuzzle.json-AWDGN4ZW.js} +6 -6
  54. package/dist/esm/sq1-hyperorbit.kpuzzle.json-AWDGN4ZW.js.map +7 -0
  55. package/dist/esm/twisty/index.js +334 -227
  56. package/dist/esm/twisty/index.js.map +3 -3
  57. package/dist/esm/worker-inside-generated-string-K4KJGMPV.js +3447 -0
  58. package/dist/esm/worker-inside-generated-string-K4KJGMPV.js.map +7 -0
  59. package/dist/types/alg/Alg.d.ts +0 -1
  60. package/dist/types/alg/Alg.spec.d.ts +0 -1
  61. package/dist/types/alg/AlgBuilder.d.ts +0 -1
  62. package/dist/types/alg/Serializable.d.ts +0 -1
  63. package/dist/types/alg/common.d.ts +0 -1
  64. package/dist/types/alg/debug.d.ts +0 -1
  65. package/dist/types/alg/example.d.ts +0 -1
  66. package/dist/types/alg/index.d.ts +0 -1
  67. package/dist/types/alg/is.d.ts +0 -1
  68. package/dist/types/alg/iteration.d.ts +0 -1
  69. package/dist/types/alg/keyboard.d.ts +0 -1
  70. package/dist/types/alg/limits.d.ts +0 -1
  71. package/dist/types/alg/operation.d.ts +0 -1
  72. package/dist/types/alg/operation.spec.d.ts +0 -1
  73. package/dist/types/alg/parse.d.ts +0 -1
  74. package/dist/types/alg/parse.spec.d.ts +0 -1
  75. package/dist/types/alg/test/alg-comparison.d.ts +0 -1
  76. package/dist/types/alg/test/alg.spec.d.ts +0 -1
  77. package/dist/types/alg/traversal.d.ts +0 -1
  78. package/dist/types/alg/units/QuantumWithAmount.d.ts +0 -1
  79. package/dist/types/alg/units/Unit.d.ts +0 -1
  80. package/dist/types/alg/units/containers/Commutator.d.ts +0 -1
  81. package/dist/types/alg/units/containers/Conjugate.d.ts +0 -1
  82. package/dist/types/alg/units/containers/Grouping.d.ts +0 -1
  83. package/dist/types/alg/units/index.d.ts +0 -1
  84. package/dist/types/alg/units/leaves/LineComment.d.ts +0 -1
  85. package/dist/types/alg/units/leaves/LineComment.spec.d.ts +0 -1
  86. package/dist/types/alg/units/leaves/Move.d.ts +0 -1
  87. package/dist/types/alg/units/leaves/Move.spec.d.ts +0 -1
  88. package/dist/types/alg/units/leaves/Newline.d.ts +0 -1
  89. package/dist/types/alg/units/leaves/Pause.d.ts +0 -1
  90. package/dist/types/alg/url.d.ts +0 -1
  91. package/dist/types/alg/url.spec.d.ts +0 -1
  92. package/dist/types/alg/validation.d.ts +0 -1
  93. package/dist/types/alg/warnOnce.d.ts +0 -1
  94. package/dist/types/bluetooth/connect/index.d.ts +0 -1
  95. package/dist/types/bluetooth/debug.d.ts +0 -1
  96. package/dist/types/bluetooth/index.d.ts +0 -1
  97. package/dist/types/bluetooth/keyboard.d.ts +5 -5
  98. package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts +3 -3
  99. package/dist/types/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts +3 -5
  100. package/dist/types/bluetooth/smart-puzzle/connect.d.ts +0 -1
  101. package/dist/types/bluetooth/smart-puzzle/endianness.d.ts +0 -1
  102. package/dist/types/bluetooth/smart-puzzle/gan.d.ts +5 -4
  103. package/dist/types/bluetooth/smart-puzzle/giiker.d.ts +3 -3
  104. package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts +0 -1
  105. package/dist/types/bluetooth/smart-puzzle/gocube.d.ts +0 -1
  106. package/dist/types/bluetooth/smart-robot/GanRobot.d.ts +0 -1
  107. package/dist/types/bluetooth/smart-robot/index.d.ts +0 -1
  108. package/dist/types/bluetooth/smart-timer/GanTimer.d.ts +0 -1
  109. package/dist/types/bluetooth/smart-timer/index.d.ts +0 -1
  110. package/dist/types/bluetooth/transformer.d.ts +0 -1
  111. package/dist/types/cubing.bundle-global.d.ts +0 -1
  112. package/dist/types/cubing.bundle-global.exports.d.ts +0 -1
  113. package/dist/types/esm-test-worker.d.ts +0 -1
  114. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts +2 -3
  115. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts +0 -1
  116. package/dist/types/kpuzzle/3x3x3/puzzle-orientation.d.ts +4 -0
  117. package/dist/types/kpuzzle/KPuzzle.d.ts +21 -0
  118. package/dist/types/kpuzzle/KPuzzleDefinition.d.ts +20 -0
  119. package/dist/types/kpuzzle/KState.d.ts +16 -0
  120. package/dist/types/kpuzzle/KTransformation.d.ts +20 -0
  121. package/dist/types/kpuzzle/calculate.d.ts +16 -0
  122. package/dist/types/kpuzzle/combine.d.ts +3 -0
  123. package/dist/types/kpuzzle/construct.d.ts +5 -0
  124. package/dist/types/kpuzzle/index.d.ts +6 -10
  125. package/dist/types/notation/CountAnimatedLeaves.d.ts +0 -1
  126. package/dist/types/notation/CountMoves.d.ts +0 -1
  127. package/dist/types/notation/index.d.ts +0 -1
  128. package/dist/types/protocol/binary/binary3x3x3.d.ts +5 -6
  129. package/dist/types/protocol/binary/binary3x3x3.spec.d.ts +0 -1
  130. package/dist/types/protocol/binary/hex.d.ts +0 -1
  131. package/dist/types/protocol/binary/hex.spec.d.ts +0 -1
  132. package/dist/types/protocol/binary/orbit-indexing.d.ts +0 -1
  133. package/dist/types/protocol/binary/orbit-indexing.spec.d.ts +0 -1
  134. package/dist/types/protocol/binary/puzzle-orientation.d.ts +4 -5
  135. package/dist/types/protocol/index.d.ts +0 -1
  136. package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts +0 -1
  137. package/dist/types/puzzle-geometry/Options.d.ts +0 -1
  138. package/dist/types/puzzle-geometry/PGPuzzles.d.ts +0 -1
  139. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts +0 -1
  140. package/dist/types/puzzle-geometry/Perm.d.ts +0 -1
  141. package/dist/types/puzzle-geometry/PermOriSet.d.ts +4 -5
  142. package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts +0 -1
  143. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts +9 -3
  144. package/dist/types/puzzle-geometry/Quat.d.ts +0 -1
  145. package/dist/types/puzzle-geometry/Quat.spec.d.ts +0 -1
  146. package/dist/types/puzzle-geometry/SchreierSims.d.ts +0 -1
  147. package/dist/types/puzzle-geometry/index.d.ts +1 -1
  148. package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts +0 -1
  149. package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts +0 -1
  150. package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts +0 -1
  151. package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts +3 -2
  152. package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts +0 -1
  153. package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts +0 -1
  154. package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts +0 -1
  155. package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts +0 -1
  156. package/dist/types/puzzle-geometry/notation-mapping/index.d.ts +0 -1
  157. package/dist/types/puzzle-geometry/orientcenters.spec.d.ts +0 -1
  158. package/dist/types/puzzles/PuzzleLoader.d.ts +3 -3
  159. package/dist/types/puzzles/async/async-pg3d.d.ts +3 -3
  160. package/dist/types/puzzles/async/lazy-cached-kpuzzle.d.ts +2 -0
  161. package/dist/types/puzzles/customPGPuzzleLoader.d.ts +2 -3
  162. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts +1 -2
  163. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts +0 -1
  164. package/dist/types/puzzles/implementations/2x2x2/index.d.ts +0 -1
  165. package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts +0 -1
  166. package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts +0 -1
  167. package/dist/types/puzzles/implementations/3x3x3/index.d.ts +0 -1
  168. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts +1 -2
  169. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts +0 -1
  170. package/dist/types/puzzles/implementations/clock/index.d.ts +0 -1
  171. package/dist/types/puzzles/implementations/fto/index.d.ts +0 -1
  172. package/dist/types/puzzles/implementations/megaminx/index.d.ts +0 -1
  173. package/dist/types/puzzles/implementations/pyraminx/index.d.ts +0 -1
  174. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts +0 -1
  175. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts +0 -1
  176. package/dist/types/puzzles/implementations/square1/index.d.ts +0 -1
  177. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts +1 -2
  178. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts +0 -1
  179. package/dist/types/puzzles/index.d.ts +1 -2
  180. package/dist/types/puzzles/stickerings/appearance.d.ts +6 -7
  181. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts +0 -1
  182. package/dist/types/puzzles/stickerings/fto-stickerings.d.ts +0 -1
  183. package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts +0 -1
  184. package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts +0 -1
  185. package/dist/types/scramble/index.d.ts +0 -1
  186. package/dist/types/search/esm-test-worker.d.ts +0 -1
  187. package/dist/types/search/index.d.ts +0 -1
  188. package/dist/types/search/inside/api.d.ts +6 -7
  189. package/dist/types/search/inside/api.spec.d.ts +0 -1
  190. package/dist/types/search/inside/entry.d.ts +0 -1
  191. package/dist/types/search/inside/inside-worker.d.ts +0 -1
  192. package/dist/types/search/inside/module-entry-path-getter.d.ts +0 -1
  193. package/dist/types/search/inside/module-entry.d.ts +0 -1
  194. package/dist/types/search/inside/solve/addOrientationSuffix.d.ts +0 -1
  195. package/dist/types/search/inside/solve/parseSGS.d.ts +3 -4
  196. package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts +3 -4
  197. package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts +0 -1
  198. package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts +2 -3
  199. package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts +4 -4
  200. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts +3 -4
  201. package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts +0 -1
  202. package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts +0 -1
  203. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +0 -1
  204. package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts +0 -1
  205. package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts +0 -1
  206. package/dist/types/search/inside/solve/puzzles/clock.d.ts +0 -1
  207. package/dist/types/search/inside/solve/puzzles/fto.d.ts +2 -3
  208. package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts +0 -3
  209. package/dist/types/search/inside/solve/puzzles/megaminx.d.ts +2 -3
  210. package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts +2 -3
  211. package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts +3 -4
  212. package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts +0 -1
  213. package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts +0 -1
  214. package/dist/types/search/inside/solve/puzzles/skewb.d.ts +3 -4
  215. package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts +2 -3
  216. package/dist/types/search/inside/solve/puzzles/sq1.d.ts +0 -1
  217. package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts +0 -1
  218. package/dist/types/search/inside/solve/tremble.d.ts +6 -6
  219. package/dist/types/search/instantiator.d.ts +0 -1
  220. package/dist/types/search/outside.d.ts +6 -7
  221. package/dist/types/search/worker-inside-generated-string.d.ts +1 -2
  222. package/dist/types/stream/index.d.ts +0 -1
  223. package/dist/types/stream/process/ReorientedStream.d.ts +1 -3
  224. package/dist/types/stream/proxy-event.d.ts +0 -1
  225. package/dist/types/stream/twizzle/TwizzleStream.d.ts +0 -1
  226. package/dist/types/stream/twizzle/stream-types.d.ts +0 -1
  227. package/dist/types/stream/websocket-proxy.d.ts +0 -1
  228. package/dist/types/twisty/controllers/AnimationTypes.d.ts +2 -3
  229. package/dist/types/twisty/controllers/RenderScheduler.d.ts +0 -1
  230. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts +0 -1
  231. package/dist/types/twisty/controllers/TwistyPlayerController.d.ts +0 -1
  232. package/dist/types/twisty/controllers/easing.d.ts +0 -1
  233. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts +0 -1
  234. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts +6 -6
  235. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts +7 -7
  236. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +8 -8
  237. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts +9 -9
  238. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts +0 -1
  239. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts +36 -37
  240. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts +7 -7
  241. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts +0 -1
  242. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts +0 -1
  243. package/dist/types/twisty/heavy-code-imports/3d.d.ts +0 -1
  244. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts +0 -1
  245. package/dist/types/twisty/index.d.ts +1 -2
  246. package/dist/types/twisty/model/PromiseFreshener.d.ts +0 -1
  247. package/dist/types/twisty/model/TwistyPlayerModel.d.ts +6 -7
  248. package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts +0 -1
  249. package/dist/types/twisty/model/helpers.d.ts +0 -1
  250. package/dist/types/twisty/model/props/TwistyProp.d.ts +0 -1
  251. package/dist/types/twisty/model/props/TwistyProp.spec.d.ts +0 -1
  252. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts +0 -1
  253. package/dist/types/twisty/model/props/general/URLProp.d.ts +0 -1
  254. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +0 -1
  255. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +0 -1
  256. package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts +0 -1
  257. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts +0 -1
  258. package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts +0 -1
  259. package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts +5 -8
  260. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts +5 -7
  261. package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts +0 -1
  262. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +0 -1
  263. package/dist/types/twisty/model/props/puzzle/state/{CurrentLeavesProp.d.ts → CurrentMoveInfoProp.d.ts} +2 -3
  264. package/dist/types/twisty/model/props/puzzle/state/CurrentStateProp.d.ts +14 -0
  265. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +7 -8
  266. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts +0 -1
  267. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts +5 -6
  268. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +2 -3
  269. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +0 -1
  270. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +0 -1
  271. package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts +4 -5
  272. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +0 -1
  273. package/dist/types/twisty/model/props/puzzle/structure/KPuzzleProp.d.ts +10 -0
  274. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts +0 -1
  275. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +0 -1
  276. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +0 -1
  277. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +0 -1
  278. package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts +0 -1
  279. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +0 -1
  280. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts +0 -1
  281. package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts +0 -1
  282. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts +0 -1
  283. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts +0 -1
  284. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts +0 -1
  285. package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts +0 -1
  286. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts +0 -1
  287. package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts +0 -1
  288. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +0 -1
  289. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +0 -1
  290. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts +2 -3
  291. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts +0 -1
  292. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts +0 -1
  293. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +0 -1
  294. package/dist/types/twisty/views/2D/KPuzzleSVGWrapper.d.ts +17 -0
  295. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts +0 -1
  296. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts +4 -4
  297. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +0 -1
  298. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +0 -1
  299. package/dist/types/twisty/views/3D/DragTracker.d.ts +0 -1
  300. package/dist/types/twisty/views/3D/RendererPool.d.ts +0 -1
  301. package/dist/types/twisty/views/3D/TAU.d.ts +0 -1
  302. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +0 -1
  303. package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts +0 -1
  304. package/dist/types/twisty/views/3D/Twisty3DScene.d.ts +0 -1
  305. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts +0 -1
  306. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts +0 -1
  307. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts +0 -1
  308. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts +0 -1
  309. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts +0 -1
  310. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts +4 -5
  311. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts +5 -6
  312. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +0 -1
  313. package/dist/types/twisty/views/ClassListManager.d.ts +0 -1
  314. package/dist/types/twisty/views/ManagedCustomElement.d.ts +0 -1
  315. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +0 -1
  316. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +0 -1
  317. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +0 -1
  318. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts +0 -1
  319. package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts +0 -1
  320. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts +0 -1
  321. package/dist/types/twisty/views/TwistyAlgViewer.d.ts +0 -1
  322. package/dist/types/twisty/views/TwistyPlayer.css.d.ts +0 -1
  323. package/dist/types/twisty/views/TwistyPlayer.d.ts +0 -1
  324. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts +0 -1
  325. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts +0 -1
  326. package/dist/types/twisty/views/canvas.d.ts +0 -1
  327. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts +0 -1
  328. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts +0 -1
  329. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts +0 -1
  330. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts +0 -1
  331. package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts +0 -1
  332. package/dist/types/twisty/views/document.d.ts +0 -1
  333. package/dist/types/twisty/views/node-custom-element-shims.d.ts +0 -1
  334. package/dist/types/twisty/views/screenshot.d.ts +0 -1
  335. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts +0 -1
  336. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts +0 -1
  337. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts +0 -1
  338. package/dist/types/vendor/comlink-everywhere/inside/node.d.ts +0 -1
  339. package/dist/types/vendor/comlink-everywhere/outside/index.d.ts +0 -1
  340. package/dist/types/vendor/comlink-everywhere/outside/node.d.ts +0 -1
  341. package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts +0 -1
  342. package/dist/types/vendor/cstimer/src/js/scramble/scramble_444.d.ts +0 -1
  343. package/dist/types/vendor/min2phase/gwt.d.ts +0 -1
  344. package/dist/types/vendor/p-lazy/p-lazy.d.ts +0 -1
  345. package/dist/types/vendor/random-uint-below/get-random-values.d.ts +0 -1
  346. package/dist/types/vendor/random-uint-below/index.d.ts +0 -1
  347. package/dist/types/vendor/random-uint-below/random-choice.d.ts +0 -1
  348. package/dist/types/vendor/random-uint-below/random53BitValue.d.ts +0 -1
  349. package/dist/types/vendor/sq12phase/scramble_sq1.d.ts +0 -1
  350. package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts +0 -1
  351. package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts +0 -1
  352. package/package.json +3 -4
  353. package/dist/bin/order.js +0 -16675
  354. package/dist/bin/order.js.map +0 -7
  355. package/dist/bin/puzzle-geometry-bin.js +0 -5444
  356. package/dist/bin/puzzle-geometry-bin.js.map +0 -7
  357. package/dist/bundle-global/cubing.bundle-global.js +0 -10432
  358. package/dist/esm/2x2x2.kpuzzle.json-JOGUSQ4N.js.map +0 -7
  359. package/dist/esm/2x2x2.sgs.json-FRBWMMA7.js.map +0 -7
  360. package/dist/esm/chunk-DK6PXBB2.js.map +0 -7
  361. package/dist/esm/chunk-DPMEZY7V.js.map +0 -7
  362. package/dist/esm/chunk-FK2SCC3Z.js.map +0 -7
  363. package/dist/esm/chunk-JZWB7AIU.js.map +0 -7
  364. package/dist/esm/chunk-N3RNWU5T.js.map +0 -7
  365. package/dist/esm/chunk-PUPUQWJC.js.map +0 -7
  366. package/dist/esm/chunk-X6JHXPDX.js +0 -2359
  367. package/dist/esm/chunk-X6JHXPDX.js.map +0 -7
  368. package/dist/esm/chunk-XVZOMB6J.js.map +0 -7
  369. package/dist/esm/clock.kpuzzle.json-EKWRMHJM.js.map +0 -7
  370. package/dist/esm/entry-L6CE2HLF.js.map +0 -7
  371. package/dist/esm/fto.sgs.json-62YNULOK.js.map +0 -7
  372. package/dist/esm/megaminx.sgs.json-PRL46G5J.js +0 -16
  373. package/dist/esm/skewb.sgs.json-FWHYACJG.js +0 -16
  374. package/dist/esm/sq1-hyperorbit.kpuzzle.json-N3FGCPML.js.map +0 -7
  375. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js +0 -3450
  376. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js.map +0 -7
  377. package/dist/types/alg/Alg.d.ts.map +0 -1
  378. package/dist/types/alg/Alg.spec.d.ts.map +0 -1
  379. package/dist/types/alg/AlgBuilder.d.ts.map +0 -1
  380. package/dist/types/alg/Serializable.d.ts.map +0 -1
  381. package/dist/types/alg/common.d.ts.map +0 -1
  382. package/dist/types/alg/debug.d.ts.map +0 -1
  383. package/dist/types/alg/example.d.ts.map +0 -1
  384. package/dist/types/alg/index.d.ts.map +0 -1
  385. package/dist/types/alg/is.d.ts.map +0 -1
  386. package/dist/types/alg/iteration.d.ts.map +0 -1
  387. package/dist/types/alg/keyboard.d.ts.map +0 -1
  388. package/dist/types/alg/limits.d.ts.map +0 -1
  389. package/dist/types/alg/operation.d.ts.map +0 -1
  390. package/dist/types/alg/operation.spec.d.ts.map +0 -1
  391. package/dist/types/alg/parse.d.ts.map +0 -1
  392. package/dist/types/alg/parse.spec.d.ts.map +0 -1
  393. package/dist/types/alg/test/alg-comparison.d.ts.map +0 -1
  394. package/dist/types/alg/test/alg.spec.d.ts.map +0 -1
  395. package/dist/types/alg/traversal.d.ts.map +0 -1
  396. package/dist/types/alg/units/QuantumWithAmount.d.ts.map +0 -1
  397. package/dist/types/alg/units/Unit.d.ts.map +0 -1
  398. package/dist/types/alg/units/containers/Commutator.d.ts.map +0 -1
  399. package/dist/types/alg/units/containers/Conjugate.d.ts.map +0 -1
  400. package/dist/types/alg/units/containers/Grouping.d.ts.map +0 -1
  401. package/dist/types/alg/units/index.d.ts.map +0 -1
  402. package/dist/types/alg/units/leaves/LineComment.d.ts.map +0 -1
  403. package/dist/types/alg/units/leaves/LineComment.spec.d.ts.map +0 -1
  404. package/dist/types/alg/units/leaves/Move.d.ts.map +0 -1
  405. package/dist/types/alg/units/leaves/Move.spec.d.ts.map +0 -1
  406. package/dist/types/alg/units/leaves/Newline.d.ts.map +0 -1
  407. package/dist/types/alg/units/leaves/Pause.d.ts.map +0 -1
  408. package/dist/types/alg/url.d.ts.map +0 -1
  409. package/dist/types/alg/url.spec.d.ts.map +0 -1
  410. package/dist/types/alg/validation.d.ts.map +0 -1
  411. package/dist/types/alg/warnOnce.d.ts.map +0 -1
  412. package/dist/types/bluetooth/connect/index.d.ts.map +0 -1
  413. package/dist/types/bluetooth/debug.d.ts.map +0 -1
  414. package/dist/types/bluetooth/index.d.ts.map +0 -1
  415. package/dist/types/bluetooth/keyboard.d.ts.map +0 -1
  416. package/dist/types/bluetooth/smart-puzzle/Heykube.d.ts.map +0 -1
  417. package/dist/types/bluetooth/smart-puzzle/bluetooth-puzzle.d.ts.map +0 -1
  418. package/dist/types/bluetooth/smart-puzzle/connect.d.ts.map +0 -1
  419. package/dist/types/bluetooth/smart-puzzle/endianness.d.ts.map +0 -1
  420. package/dist/types/bluetooth/smart-puzzle/gan.d.ts.map +0 -1
  421. package/dist/types/bluetooth/smart-puzzle/giiker.d.ts.map +0 -1
  422. package/dist/types/bluetooth/smart-puzzle/giiker.spec.d.ts.map +0 -1
  423. package/dist/types/bluetooth/smart-puzzle/gocube.d.ts.map +0 -1
  424. package/dist/types/bluetooth/smart-robot/GanRobot.d.ts.map +0 -1
  425. package/dist/types/bluetooth/smart-robot/index.d.ts.map +0 -1
  426. package/dist/types/bluetooth/smart-timer/GanTimer.d.ts.map +0 -1
  427. package/dist/types/bluetooth/smart-timer/index.d.ts.map +0 -1
  428. package/dist/types/bluetooth/transformer.d.ts.map +0 -1
  429. package/dist/types/cubing.bundle-global.d.ts.map +0 -1
  430. package/dist/types/cubing.bundle-global.exports.d.ts.map +0 -1
  431. package/dist/types/esm-test-worker.d.ts.map +0 -1
  432. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.d.ts.map +0 -1
  433. package/dist/types/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.d.ts.map +0 -1
  434. package/dist/types/kpuzzle/canon.spec.d.ts +0 -2
  435. package/dist/types/kpuzzle/canon.spec.d.ts.map +0 -1
  436. package/dist/types/kpuzzle/canonicalize.d.ts +0 -55
  437. package/dist/types/kpuzzle/canonicalize.d.ts.map +0 -1
  438. package/dist/types/kpuzzle/definition_types.d.ts +0 -19
  439. package/dist/types/kpuzzle/definition_types.d.ts.map +0 -1
  440. package/dist/types/kpuzzle/index.d.ts.map +0 -1
  441. package/dist/types/kpuzzle/kpuzzle.d.ts +0 -17
  442. package/dist/types/kpuzzle/kpuzzle.d.ts.map +0 -1
  443. package/dist/types/kpuzzle/kpuzzle.spec.d.ts +0 -2
  444. package/dist/types/kpuzzle/kpuzzle.spec.d.ts.map +0 -1
  445. package/dist/types/kpuzzle/move_notation.d.ts +0 -6
  446. package/dist/types/kpuzzle/move_notation.d.ts.map +0 -1
  447. package/dist/types/kpuzzle/parser/index.d.ts +0 -2
  448. package/dist/types/kpuzzle/parser/index.d.ts.map +0 -1
  449. package/dist/types/kpuzzle/parser/parser-peggy.d.ts +0 -15
  450. package/dist/types/kpuzzle/parser/parser-peggy.d.ts.map +0 -1
  451. package/dist/types/kpuzzle/parser/parser-shim.d.ts +0 -4
  452. package/dist/types/kpuzzle/parser/parser-shim.d.ts.map +0 -1
  453. package/dist/types/kpuzzle/parser/parser.d.ts +0 -1
  454. package/dist/types/kpuzzle/parser/parser.d.ts.map +0 -1
  455. package/dist/types/kpuzzle/prunetable.spec.d.ts +0 -2
  456. package/dist/types/kpuzzle/prunetable.spec.d.ts.map +0 -1
  457. package/dist/types/kpuzzle/pruningtable.d.ts +0 -16
  458. package/dist/types/kpuzzle/pruningtable.d.ts.map +0 -1
  459. package/dist/types/kpuzzle/puzzle-orientation.d.ts +0 -5
  460. package/dist/types/kpuzzle/puzzle-orientation.d.ts.map +0 -1
  461. package/dist/types/kpuzzle/svg.d.ts +0 -18
  462. package/dist/types/kpuzzle/svg.d.ts.map +0 -1
  463. package/dist/types/kpuzzle/transformations.d.ts +0 -13
  464. package/dist/types/kpuzzle/transformations.d.ts.map +0 -1
  465. package/dist/types/kpuzzle/transformations.spec.d.ts +0 -2
  466. package/dist/types/kpuzzle/transformations.spec.d.ts.map +0 -1
  467. package/dist/types/notation/CountAnimatedLeaves.d.ts.map +0 -1
  468. package/dist/types/notation/CountMoves.d.ts.map +0 -1
  469. package/dist/types/notation/index.d.ts.map +0 -1
  470. package/dist/types/protocol/binary/binary3x3x3.d.ts.map +0 -1
  471. package/dist/types/protocol/binary/binary3x3x3.spec.d.ts.map +0 -1
  472. package/dist/types/protocol/binary/hex.d.ts.map +0 -1
  473. package/dist/types/protocol/binary/hex.spec.d.ts.map +0 -1
  474. package/dist/types/protocol/binary/orbit-indexing.d.ts.map +0 -1
  475. package/dist/types/protocol/binary/orbit-indexing.spec.d.ts.map +0 -1
  476. package/dist/types/protocol/binary/puzzle-orientation.d.ts.map +0 -1
  477. package/dist/types/protocol/index.d.ts.map +0 -1
  478. package/dist/types/puzzle-geometry/FaceNameSwizzler.d.ts.map +0 -1
  479. package/dist/types/puzzle-geometry/Options.d.ts.map +0 -1
  480. package/dist/types/puzzle-geometry/PGPuzzles.d.ts.map +0 -1
  481. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts.map +0 -1
  482. package/dist/types/puzzle-geometry/Perm.d.ts.map +0 -1
  483. package/dist/types/puzzle-geometry/PermOriSet.d.ts.map +0 -1
  484. package/dist/types/puzzle-geometry/PlatonicGenerator.d.ts.map +0 -1
  485. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts.map +0 -1
  486. package/dist/types/puzzle-geometry/Quat.d.ts.map +0 -1
  487. package/dist/types/puzzle-geometry/Quat.spec.d.ts.map +0 -1
  488. package/dist/types/puzzle-geometry/SchreierSims.d.ts.map +0 -1
  489. package/dist/types/puzzle-geometry/index.d.ts.map +0 -1
  490. package/dist/types/puzzle-geometry/interfaces.d.ts +0 -6
  491. package/dist/types/puzzle-geometry/interfaces.d.ts.map +0 -1
  492. package/dist/types/puzzle-geometry/notation-mapping/FTONotationMapper.d.ts.map +0 -1
  493. package/dist/types/puzzle-geometry/notation-mapping/FaceRenamingMapper.d.ts.map +0 -1
  494. package/dist/types/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.d.ts.map +0 -1
  495. package/dist/types/puzzle-geometry/notation-mapping/NotationMapper.d.ts.map +0 -1
  496. package/dist/types/puzzle-geometry/notation-mapping/NullMapper.d.ts.map +0 -1
  497. package/dist/types/puzzle-geometry/notation-mapping/NxNxNCubeMapper.d.ts.map +0 -1
  498. package/dist/types/puzzle-geometry/notation-mapping/PyraminxNotationMapper.d.ts.map +0 -1
  499. package/dist/types/puzzle-geometry/notation-mapping/SkewbNotationMapper.d.ts.map +0 -1
  500. package/dist/types/puzzle-geometry/notation-mapping/index.d.ts.map +0 -1
  501. package/dist/types/puzzle-geometry/orientcenters.spec.d.ts.map +0 -1
  502. package/dist/types/puzzles/PuzzleLoader.d.ts.map +0 -1
  503. package/dist/types/puzzles/async/async-pg3d.d.ts.map +0 -1
  504. package/dist/types/puzzles/customPGPuzzleLoader.d.ts.map +0 -1
  505. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.d.ts.map +0 -1
  506. package/dist/types/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.d.ts.map +0 -1
  507. package/dist/types/puzzles/implementations/2x2x2/index.d.ts.map +0 -1
  508. package/dist/types/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.d.ts.map +0 -1
  509. package/dist/types/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.d.ts.map +0 -1
  510. package/dist/types/puzzles/implementations/3x3x3/index.d.ts.map +0 -1
  511. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.json.d.ts.map +0 -1
  512. package/dist/types/puzzles/implementations/clock/clock.kpuzzle.svg.d.ts.map +0 -1
  513. package/dist/types/puzzles/implementations/clock/index.d.ts.map +0 -1
  514. package/dist/types/puzzles/implementations/fto/index.d.ts.map +0 -1
  515. package/dist/types/puzzles/implementations/megaminx/index.d.ts.map +0 -1
  516. package/dist/types/puzzles/implementations/pyraminx/index.d.ts.map +0 -1
  517. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.d.ts.map +0 -1
  518. package/dist/types/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.d.ts.map +0 -1
  519. package/dist/types/puzzles/implementations/square1/index.d.ts.map +0 -1
  520. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.d.ts.map +0 -1
  521. package/dist/types/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.d.ts.map +0 -1
  522. package/dist/types/puzzles/index.d.ts.map +0 -1
  523. package/dist/types/puzzles/stickerings/appearance.d.ts.map +0 -1
  524. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts.map +0 -1
  525. package/dist/types/puzzles/stickerings/fto-stickerings.d.ts.map +0 -1
  526. package/dist/types/puzzles/stickerings/global-custom-stickering-hack.d.ts.map +0 -1
  527. package/dist/types/puzzles/stickerings/megaminx-stickerings.d.ts.map +0 -1
  528. package/dist/types/scramble/index.d.ts.map +0 -1
  529. package/dist/types/search/esm-test-worker.d.ts.map +0 -1
  530. package/dist/types/search/index.d.ts.map +0 -1
  531. package/dist/types/search/inside/api.d.ts.map +0 -1
  532. package/dist/types/search/inside/api.spec.d.ts.map +0 -1
  533. package/dist/types/search/inside/entry.d.ts.map +0 -1
  534. package/dist/types/search/inside/inside-worker.d.ts.map +0 -1
  535. package/dist/types/search/inside/module-entry-path-getter.d.ts.map +0 -1
  536. package/dist/types/search/inside/module-entry.d.ts.map +0 -1
  537. package/dist/types/search/inside/solve/addOrientationSuffix.d.ts.map +0 -1
  538. package/dist/types/search/inside/solve/parseSGS.d.ts.map +0 -1
  539. package/dist/types/search/inside/solve/puzzles/2x2x2.d.ts.map +0 -1
  540. package/dist/types/search/inside/solve/puzzles/2x2x2.sgs.json.d.ts.map +0 -1
  541. package/dist/types/search/inside/solve/puzzles/3x3x3/convert.d.ts.map +0 -1
  542. package/dist/types/search/inside/solve/puzzles/3x3x3/filter.d.ts.map +0 -1
  543. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts.map +0 -1
  544. package/dist/types/search/inside/solve/puzzles/3x3x3/legacy-sgs.d.ts.map +0 -1
  545. package/dist/types/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.d.ts.map +0 -1
  546. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts.map +0 -1
  547. package/dist/types/search/inside/solve/puzzles/5x5x5.d.ts.map +0 -1
  548. package/dist/types/search/inside/solve/puzzles/big-cubes.d.ts.map +0 -1
  549. package/dist/types/search/inside/solve/puzzles/clock.d.ts.map +0 -1
  550. package/dist/types/search/inside/solve/puzzles/fto.d.ts.map +0 -1
  551. package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts.map +0 -1
  552. package/dist/types/search/inside/solve/puzzles/megaminx.d.ts.map +0 -1
  553. package/dist/types/search/inside/solve/puzzles/megaminx.sgs.json.d.ts.map +0 -1
  554. package/dist/types/search/inside/solve/puzzles/pyraminx.d.ts.map +0 -1
  555. package/dist/types/search/inside/solve/puzzles/pyraminx.sgs.json.d.ts.map +0 -1
  556. package/dist/types/search/inside/solve/puzzles/sgs-defs.spec.d.ts.map +0 -1
  557. package/dist/types/search/inside/solve/puzzles/skewb.d.ts.map +0 -1
  558. package/dist/types/search/inside/solve/puzzles/skewb.sgs.json.d.ts.map +0 -1
  559. package/dist/types/search/inside/solve/puzzles/sq1.d.ts.map +0 -1
  560. package/dist/types/search/inside/solve/puzzles/wca-minx.d.ts.map +0 -1
  561. package/dist/types/search/inside/solve/tremble.d.ts.map +0 -1
  562. package/dist/types/search/instantiator.d.ts.map +0 -1
  563. package/dist/types/search/outside.d.ts.map +0 -1
  564. package/dist/types/search/worker-inside-generated-string.d.ts.map +0 -1
  565. package/dist/types/stream/index.d.ts.map +0 -1
  566. package/dist/types/stream/process/ReorientedStream.d.ts.map +0 -1
  567. package/dist/types/stream/proxy-event.d.ts.map +0 -1
  568. package/dist/types/stream/twizzle/TwizzleStream.d.ts.map +0 -1
  569. package/dist/types/stream/twizzle/stream-types.d.ts.map +0 -1
  570. package/dist/types/stream/websocket-proxy.d.ts.map +0 -1
  571. package/dist/types/twisty/controllers/AnimationTypes.d.ts.map +0 -1
  572. package/dist/types/twisty/controllers/RenderScheduler.d.ts.map +0 -1
  573. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts.map +0 -1
  574. package/dist/types/twisty/controllers/TwistyPlayerController.d.ts.map +0 -1
  575. package/dist/types/twisty/controllers/easing.d.ts.map +0 -1
  576. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts.map +0 -1
  577. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts.map +0 -1
  578. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts.map +0 -1
  579. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts.map +0 -1
  580. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts.map +0 -1
  581. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts.map +0 -1
  582. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts.map +0 -1
  583. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts.map +0 -1
  584. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts.map +0 -1
  585. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts.map +0 -1
  586. package/dist/types/twisty/heavy-code-imports/3d.d.ts.map +0 -1
  587. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts.map +0 -1
  588. package/dist/types/twisty/index.d.ts.map +0 -1
  589. package/dist/types/twisty/model/PromiseFreshener.d.ts.map +0 -1
  590. package/dist/types/twisty/model/TwistyPlayerModel.d.ts.map +0 -1
  591. package/dist/types/twisty/model/UserVisibleErrorTracker.d.ts.map +0 -1
  592. package/dist/types/twisty/model/helpers.d.ts.map +0 -1
  593. package/dist/types/twisty/model/props/TwistyProp.d.ts.map +0 -1
  594. package/dist/types/twisty/model/props/TwistyProp.spec.d.ts.map +0 -1
  595. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts.map +0 -1
  596. package/dist/types/twisty/model/props/general/URLProp.d.ts.map +0 -1
  597. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts.map +0 -1
  598. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts.map +0 -1
  599. package/dist/types/twisty/model/props/puzzle/display/SpriteProp.d.ts.map +0 -1
  600. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts.map +0 -1
  601. package/dist/types/twisty/model/props/puzzle/state/AlgProp.d.ts.map +0 -1
  602. package/dist/types/twisty/model/props/puzzle/state/AlgTransformationProp.d.ts.map +0 -1
  603. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts.map +0 -1
  604. package/dist/types/twisty/model/props/puzzle/state/CatchUpMoveProp.d.ts.map +0 -1
  605. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesProp.d.ts.map +0 -1
  606. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts.map +0 -1
  607. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts +0 -15
  608. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts.map +0 -1
  609. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts.map +0 -1
  610. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.d.ts.map +0 -1
  611. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts.map +0 -1
  612. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts.map +0 -1
  613. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts.map +0 -1
  614. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts.map +0 -1
  615. package/dist/types/twisty/model/props/puzzle/state/PuzzleAlgProp.d.ts.map +0 -1
  616. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts.map +0 -1
  617. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDefProp.d.ts +0 -11
  618. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDefProp.d.ts.map +0 -1
  619. package/dist/types/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.d.ts.map +0 -1
  620. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts.map +0 -1
  621. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts.map +0 -1
  622. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts.map +0 -1
  623. package/dist/types/twisty/model/props/timeline/CoarseTimelineInfoProp.d.ts.map +0 -1
  624. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts.map +0 -1
  625. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts.map +0 -1
  626. package/dist/types/twisty/model/props/timeline/TempoScaleProp.d.ts.map +0 -1
  627. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts.map +0 -1
  628. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts.map +0 -1
  629. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts.map +0 -1
  630. package/dist/types/twisty/model/props/viewer/ButtonAppearanceProp.d.ts.map +0 -1
  631. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts.map +0 -1
  632. package/dist/types/twisty/model/props/viewer/LatitudeLimit.d.ts.map +0 -1
  633. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts.map +0 -1
  634. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts.map +0 -1
  635. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts.map +0 -1
  636. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts.map +0 -1
  637. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts.map +0 -1
  638. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts.map +0 -1
  639. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts.map +0 -1
  640. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts.map +0 -1
  641. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts.map +0 -1
  642. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts.map +0 -1
  643. package/dist/types/twisty/views/3D/DragTracker.d.ts.map +0 -1
  644. package/dist/types/twisty/views/3D/RendererPool.d.ts.map +0 -1
  645. package/dist/types/twisty/views/3D/TAU.d.ts.map +0 -1
  646. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts.map +0 -1
  647. package/dist/types/twisty/views/3D/Twisty3DRenderTarget.d.ts.map +0 -1
  648. package/dist/types/twisty/views/3D/Twisty3DScene.d.ts.map +0 -1
  649. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts.map +0 -1
  650. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts.map +0 -1
  651. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts.map +0 -1
  652. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts.map +0 -1
  653. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts.map +0 -1
  654. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts.map +0 -1
  655. package/dist/types/twisty/views/3D/puzzles/KPuzzleWrapper.d.ts +0 -48
  656. package/dist/types/twisty/views/3D/puzzles/KPuzzleWrapper.d.ts.map +0 -1
  657. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts.map +0 -1
  658. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts.map +0 -1
  659. package/dist/types/twisty/views/ClassListManager.d.ts.map +0 -1
  660. package/dist/types/twisty/views/ManagedCustomElement.d.ts.map +0 -1
  661. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts.map +0 -1
  662. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts.map +0 -1
  663. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts.map +0 -1
  664. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.d.ts.map +0 -1
  665. package/dist/types/twisty/views/TwistyAlgEditor/model.d.ts.map +0 -1
  666. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts.map +0 -1
  667. package/dist/types/twisty/views/TwistyAlgViewer.d.ts.map +0 -1
  668. package/dist/types/twisty/views/TwistyPlayer.css.d.ts.map +0 -1
  669. package/dist/types/twisty/views/TwistyPlayer.d.ts.map +0 -1
  670. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts.map +0 -1
  671. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts.map +0 -1
  672. package/dist/types/twisty/views/canvas.d.ts.map +0 -1
  673. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts.map +0 -1
  674. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts.map +0 -1
  675. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts.map +0 -1
  676. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts.map +0 -1
  677. package/dist/types/twisty/views/control-panel/webkit-fullscreen.d.ts.map +0 -1
  678. package/dist/types/twisty/views/document.d.ts.map +0 -1
  679. package/dist/types/twisty/views/node-custom-element-shims.d.ts.map +0 -1
  680. package/dist/types/twisty/views/screenshot.d.ts.map +0 -1
  681. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts.map +0 -1
  682. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts.map +0 -1
  683. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts.map +0 -1
  684. package/dist/types/vendor/comlink-everywhere/inside/node.d.ts.map +0 -1
  685. package/dist/types/vendor/comlink-everywhere/outside/index.d.ts.map +0 -1
  686. package/dist/types/vendor/comlink-everywhere/outside/node.d.ts.map +0 -1
  687. package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts.map +0 -1
  688. package/dist/types/vendor/cstimer/src/js/scramble/scramble_444.d.ts.map +0 -1
  689. package/dist/types/vendor/min2phase/gwt.d.ts.map +0 -1
  690. package/dist/types/vendor/p-lazy/p-lazy.d.ts.map +0 -1
  691. package/dist/types/vendor/random-uint-below/get-random-values.d.ts.map +0 -1
  692. package/dist/types/vendor/random-uint-below/index.d.ts.map +0 -1
  693. package/dist/types/vendor/random-uint-below/random-choice.d.ts.map +0 -1
  694. package/dist/types/vendor/random-uint-below/random53BitValue.d.ts.map +0 -1
  695. package/dist/types/vendor/sq12phase/scramble_sq1.d.ts.map +0 -1
  696. package/dist/types/vendor/three/examples/jsm/libs/stats.modified.module.d.ts.map +0 -1
  697. package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts.map +0 -1
  698. package/docs/.DS_Store +0 -0
  699. package/docs/CNAME +0 -1
  700. package/docs/cubing/.DS_Store +0 -0
  701. package/docs/cubing/alg/index.html +0 -174
  702. package/docs/cubing/api/index.html +0 -158
  703. package/docs/cubing/index.html +0 -191
  704. package/docs/cubing/scramble/index.html +0 -138
  705. package/docs/cubing/twisty/index.html +0 -329
  706. package/docs/favicon.ico +0 -0
  707. package/docs/index.html +0 -20
  708. package/docs/main.css +0 -193
  709. package/src/cubing/.DS_Store +0 -0
  710. package/src/cubing/alg/Alg.spec.ts +0 -10
  711. package/src/cubing/alg/Alg.ts +0 -290
  712. package/src/cubing/alg/AlgBuilder.ts +0 -33
  713. package/src/cubing/alg/Serializable.ts +0 -29
  714. package/src/cubing/alg/common.ts +0 -59
  715. package/src/cubing/alg/debug.ts +0 -27
  716. package/src/cubing/alg/example.ts +0 -152
  717. package/src/cubing/alg/index.ts +0 -21
  718. package/src/cubing/alg/is.ts +0 -38
  719. package/src/cubing/alg/iteration.ts +0 -45
  720. package/src/cubing/alg/keyboard.ts +0 -48
  721. package/src/cubing/alg/limits.ts +0 -4
  722. package/src/cubing/alg/operation.spec.ts +0 -48
  723. package/src/cubing/alg/operation.ts +0 -36
  724. package/src/cubing/alg/parse.spec.ts +0 -75
  725. package/src/cubing/alg/parse.ts +0 -408
  726. package/src/cubing/alg/test/alg-comparison.ts +0 -23
  727. package/src/cubing/alg/test/alg.spec.ts +0 -348
  728. package/src/cubing/alg/traversal.ts +0 -284
  729. package/src/cubing/alg/units/QuantumWithAmount.ts +0 -55
  730. package/src/cubing/alg/units/Unit.ts +0 -11
  731. package/src/cubing/alg/units/containers/Commutator.ts +0 -85
  732. package/src/cubing/alg/units/containers/Conjugate.ts +0 -53
  733. package/src/cubing/alg/units/containers/Grouping.ts +0 -116
  734. package/src/cubing/alg/units/index.ts +0 -8
  735. package/src/cubing/alg/units/leaves/LineComment.spec.ts +0 -35
  736. package/src/cubing/alg/units/leaves/LineComment.ts +0 -48
  737. package/src/cubing/alg/units/leaves/Move.spec.ts +0 -15
  738. package/src/cubing/alg/units/leaves/Move.ts +0 -265
  739. package/src/cubing/alg/units/leaves/Newline.ts +0 -24
  740. package/src/cubing/alg/units/leaves/Pause.ts +0 -24
  741. package/src/cubing/alg/url.spec.ts +0 -10
  742. package/src/cubing/alg/url.ts +0 -133
  743. package/src/cubing/alg/validation.ts +0 -62
  744. package/src/cubing/alg/warnOnce.ts +0 -7
  745. package/src/cubing/bluetooth/connect/index.ts +0 -93
  746. package/src/cubing/bluetooth/debug.ts +0 -18
  747. package/src/cubing/bluetooth/docs/gan-robot.md +0 -60
  748. package/src/cubing/bluetooth/docs/gan356i.md +0 -309
  749. package/src/cubing/bluetooth/index.ts +0 -19
  750. package/src/cubing/bluetooth/keyboard.ts +0 -55
  751. package/src/cubing/bluetooth/smart-puzzle/Heykube.ts +0 -165
  752. package/src/cubing/bluetooth/smart-puzzle/bluetooth-puzzle.ts +0 -95
  753. package/src/cubing/bluetooth/smart-puzzle/connect.ts +0 -19
  754. package/src/cubing/bluetooth/smart-puzzle/endianness.ts +0 -15
  755. package/src/cubing/bluetooth/smart-puzzle/gan.ts +0 -484
  756. package/src/cubing/bluetooth/smart-puzzle/giiker.spec.ts +0 -28
  757. package/src/cubing/bluetooth/smart-puzzle/giiker.ts +0 -277
  758. package/src/cubing/bluetooth/smart-puzzle/gocube.ts +0 -167
  759. package/src/cubing/bluetooth/smart-robot/GanRobot.ts +0 -311
  760. package/src/cubing/bluetooth/smart-robot/index.ts +0 -13
  761. package/src/cubing/bluetooth/smart-timer/GanTimer.ts +0 -141
  762. package/src/cubing/bluetooth/smart-timer/index.ts +0 -13
  763. package/src/cubing/bluetooth/transformer.ts +0 -74
  764. package/src/cubing/cubing.bundle-global.exports.ts +0 -25
  765. package/src/cubing/cubing.bundle-global.ts +0 -7
  766. package/src/cubing/esm-test-worker.js +0 -5
  767. package/src/cubing/kpuzzle/3x3x3/3x3x3.kpuzzle.json.spec.ts +0 -40
  768. package/src/cubing/kpuzzle/3x3x3/3x3x3.kpuzzle.json.ts +0 -339
  769. package/src/cubing/kpuzzle/canon.spec.ts +0 -48
  770. package/src/cubing/kpuzzle/canonicalize.ts +0 -325
  771. package/src/cubing/kpuzzle/definition_types.ts +0 -23
  772. package/src/cubing/kpuzzle/index.ts +0 -33
  773. package/src/cubing/kpuzzle/kpuzzle.spec.ts +0 -12
  774. package/src/cubing/kpuzzle/kpuzzle.ts +0 -124
  775. package/src/cubing/kpuzzle/move_notation.ts +0 -9
  776. package/src/cubing/kpuzzle/parser/index.ts +0 -1
  777. package/src/cubing/kpuzzle/parser/parser-peggy.js +0 -1221
  778. package/src/cubing/kpuzzle/parser/parser-peggy.peggy +0 -72
  779. package/src/cubing/kpuzzle/parser/parser-shim.ts +0 -11
  780. package/src/cubing/kpuzzle/parser/parser.js +0 -0
  781. package/src/cubing/kpuzzle/prunetable.spec.ts +0 -19
  782. package/src/cubing/kpuzzle/pruningtable.ts +0 -99
  783. package/src/cubing/kpuzzle/puzzle-orientation.ts +0 -34
  784. package/src/cubing/kpuzzle/svg.ts +0 -290
  785. package/src/cubing/kpuzzle/transformations.spec.ts +0 -75
  786. package/src/cubing/kpuzzle/transformations.ts +0 -258
  787. package/src/cubing/notation/CountAnimatedLeaves.ts +0 -56
  788. package/src/cubing/notation/CountMoves.ts +0 -89
  789. package/src/cubing/notation/index.ts +0 -4
  790. package/src/cubing/protocol/binary/binary3x3x3.spec.ts +0 -143
  791. package/src/cubing/protocol/binary/binary3x3x3.ts +0 -226
  792. package/src/cubing/protocol/binary/hex.spec.ts +0 -17
  793. package/src/cubing/protocol/binary/hex.ts +0 -12
  794. package/src/cubing/protocol/binary/orbit-indexing.spec.ts +0 -49
  795. package/src/cubing/protocol/binary/orbit-indexing.ts +0 -68
  796. package/src/cubing/protocol/binary/puzzle-orientation.ts +0 -69
  797. package/src/cubing/protocol/index.ts +0 -12
  798. package/src/cubing/puzzle-geometry/FaceNameSwizzler.ts +0 -148
  799. package/src/cubing/puzzle-geometry/Options.ts +0 -179
  800. package/src/cubing/puzzle-geometry/PGPuzzles.spec.ts +0 -127
  801. package/src/cubing/puzzle-geometry/PGPuzzles.ts +0 -80
  802. package/src/cubing/puzzle-geometry/Perm.ts +0 -154
  803. package/src/cubing/puzzle-geometry/PermOriSet.ts +0 -765
  804. package/src/cubing/puzzle-geometry/PlatonicGenerator.ts +0 -146
  805. package/src/cubing/puzzle-geometry/PuzzleGeometry.ts +0 -3013
  806. package/src/cubing/puzzle-geometry/Quat.spec.ts +0 -10
  807. package/src/cubing/puzzle-geometry/Quat.ts +0 -325
  808. package/src/cubing/puzzle-geometry/SchreierSims.ts +0 -144
  809. package/src/cubing/puzzle-geometry/index.ts +0 -17
  810. package/src/cubing/puzzle-geometry/interfaces.ts +0 -6
  811. package/src/cubing/puzzle-geometry/notation-mapping/FTONotationMapper.ts +0 -38
  812. package/src/cubing/puzzle-geometry/notation-mapping/FaceRenamingMapper.ts +0 -59
  813. package/src/cubing/puzzle-geometry/notation-mapping/MegaminxScramblingNotationMapper.ts +0 -50
  814. package/src/cubing/puzzle-geometry/notation-mapping/NotationMapper.ts +0 -6
  815. package/src/cubing/puzzle-geometry/notation-mapping/NullMapper.ts +0 -12
  816. package/src/cubing/puzzle-geometry/notation-mapping/NxNxNCubeMapper.ts +0 -77
  817. package/src/cubing/puzzle-geometry/notation-mapping/PyraminxNotationMapper.ts +0 -121
  818. package/src/cubing/puzzle-geometry/notation-mapping/SkewbNotationMapper.ts +0 -103
  819. package/src/cubing/puzzle-geometry/notation-mapping/index.ts +0 -13
  820. package/src/cubing/puzzle-geometry/orientcenters.spec.ts +0 -55
  821. package/src/cubing/puzzles/PuzzleLoader.ts +0 -20
  822. package/src/cubing/puzzles/async/async-pg3d.ts +0 -73
  823. package/src/cubing/puzzles/customPGPuzzleLoader.ts +0 -60
  824. package/src/cubing/puzzles/implementations/2x2x2/2x2x2.kpuzzle.json.ts +0 -92
  825. package/src/cubing/puzzles/implementations/2x2x2/2x2x2.kpuzzle.svg.ts +0 -45
  826. package/src/cubing/puzzles/implementations/2x2x2/index.ts +0 -25
  827. package/src/cubing/puzzles/implementations/2x2x2/svg/2x2x2.kpuzzle.svg +0 -45
  828. package/src/cubing/puzzles/implementations/3x3x3/3x3x3-ll.kpuzzle.svg.ts +0 -108
  829. package/src/cubing/puzzles/implementations/3x3x3/3x3x3.kpuzzle.svg.ts +0 -128
  830. package/src/cubing/puzzles/implementations/3x3x3/index.ts +0 -33
  831. package/src/cubing/puzzles/implementations/3x3x3/src/3x3x3-ll.kpuzzle.svg +0 -108
  832. package/src/cubing/puzzles/implementations/3x3x3/src/3x3x3.kpuzzle.svg +0 -128
  833. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.original.svg +0 -128
  834. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.outlined.svg +0 -486
  835. package/src/cubing/puzzles/implementations/TODO/svg/alg/3x3x3.kpuzzle.spaced.svg +0 -128
  836. package/src/cubing/puzzles/implementations/clock/clock.kpuzzle.json.ts +0 -241
  837. package/src/cubing/puzzles/implementations/clock/clock.kpuzzle.svg.ts +0 -369
  838. package/src/cubing/puzzles/implementations/clock/index.ts +0 -14
  839. package/src/cubing/puzzles/implementations/clock/src/clock.kpuzzle.svg +0 -369
  840. package/src/cubing/puzzles/implementations/fto/index.ts +0 -28
  841. package/src/cubing/puzzles/implementations/megaminx/index.ts +0 -20
  842. package/src/cubing/puzzles/implementations/pyraminx/index.ts +0 -18
  843. package/src/cubing/puzzles/implementations/pyraminx/pyraminx.kpuzzle.json.ts +0 -84
  844. package/src/cubing/puzzles/implementations/pyraminx/pyraminx.kpuzzle.svg.ts +0 -88
  845. package/src/cubing/puzzles/implementations/pyraminx/src/pyraminx.kpuzzle.svg +0 -87
  846. package/src/cubing/puzzles/implementations/square1/index.ts +0 -14
  847. package/src/cubing/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.json.ts +0 -62
  848. package/src/cubing/puzzles/implementations/square1/sq1-hyperorbit.kpuzzle.svg.ts +0 -295
  849. package/src/cubing/puzzles/implementations/square1/src/sq1-hyperorbit.kpuzzle.svg +0 -295
  850. package/src/cubing/puzzles/implementations/square1/src/sq1-simple.svg +0 -60
  851. package/src/cubing/puzzles/index.ts +0 -92
  852. package/src/cubing/puzzles/stickerings/appearance.ts +0 -292
  853. package/src/cubing/puzzles/stickerings/cube-stickerings.ts +0 -304
  854. package/src/cubing/puzzles/stickerings/fto-stickerings.ts +0 -105
  855. package/src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts +0 -61
  856. package/src/cubing/puzzles/stickerings/megaminx-stickerings.ts +0 -26
  857. package/src/cubing/scramble/index.ts +0 -1
  858. package/src/cubing/search/.DS_Store +0 -0
  859. package/src/cubing/search/.gitignore +0 -1
  860. package/src/cubing/search/esm-test-worker.js +0 -14
  861. package/src/cubing/search/index.ts +0 -12
  862. package/src/cubing/search/inside/.DS_Store +0 -0
  863. package/src/cubing/search/inside/api.spec.ts +0 -37
  864. package/src/cubing/search/inside/api.ts +0 -174
  865. package/src/cubing/search/inside/entry.js +0 -4
  866. package/src/cubing/search/inside/inside-worker.ts +0 -13
  867. package/src/cubing/search/inside/module-entry-path-getter.ts +0 -5
  868. package/src/cubing/search/inside/module-entry.ts +0 -20
  869. package/src/cubing/search/inside/solve/addOrientationSuffix.ts +0 -17
  870. package/src/cubing/search/inside/solve/parseSGS.ts +0 -119
  871. package/src/cubing/search/inside/solve/puzzles/2x2x2.sgs.json.ts +0 -114
  872. package/src/cubing/search/inside/solve/puzzles/2x2x2.ts +0 -92
  873. package/src/cubing/search/inside/solve/puzzles/3x3x3/convert.ts +0 -137
  874. package/src/cubing/search/inside/solve/puzzles/3x3x3/filter.ts +0 -60
  875. package/src/cubing/search/inside/solve/puzzles/3x3x3/index.ts +0 -67
  876. package/src/cubing/search/inside/solve/puzzles/3x3x3/legacy-sgs.ts +0 -291
  877. package/src/cubing/search/inside/solve/puzzles/3x3x3-inefficient.sgs.json.ts +0 -272
  878. package/src/cubing/search/inside/solve/puzzles/4x4x4.ts +0 -30
  879. package/src/cubing/search/inside/solve/puzzles/5x5x5.ts +0 -12
  880. package/src/cubing/search/inside/solve/puzzles/big-cubes.ts +0 -78
  881. package/src/cubing/search/inside/solve/puzzles/clock.ts +0 -48
  882. package/src/cubing/search/inside/solve/puzzles/fto.sgs.json.ts +0 -643
  883. package/src/cubing/search/inside/solve/puzzles/fto.ts +0 -58
  884. package/src/cubing/search/inside/solve/puzzles/megaminx.sgs.json.ts +0 -1549
  885. package/src/cubing/search/inside/solve/puzzles/megaminx.ts +0 -51
  886. package/src/cubing/search/inside/solve/puzzles/pyraminx.sgs.json.ts +0 -98
  887. package/src/cubing/search/inside/solve/puzzles/pyraminx.ts +0 -48
  888. package/src/cubing/search/inside/solve/puzzles/sgs-defs.spec.ts +0 -27
  889. package/src/cubing/search/inside/solve/puzzles/skewb.sgs.json.ts +0 -113
  890. package/src/cubing/search/inside/solve/puzzles/skewb.ts +0 -65
  891. package/src/cubing/search/inside/solve/puzzles/sq1.ts +0 -16
  892. package/src/cubing/search/inside/solve/puzzles/wca-minx.ts +0 -32
  893. package/src/cubing/search/inside/solve/tremble.ts +0 -213
  894. package/src/cubing/search/instantiator.ts +0 -95
  895. package/src/cubing/search/outside.ts +0 -110
  896. package/src/cubing/search/worker-inside-generated-string.js +0 -1
  897. package/src/cubing/stream/index.ts +0 -12
  898. package/src/cubing/stream/process/ReorientedStream.ts +0 -93
  899. package/src/cubing/stream/proxy-event.ts +0 -16
  900. package/src/cubing/stream/twizzle/TwizzleStream.ts +0 -53
  901. package/src/cubing/stream/twizzle/stream-types.ts +0 -45
  902. package/src/cubing/stream/websocket-proxy.ts +0 -73
  903. package/src/cubing/twisty/controllers/AnimationTypes.ts +0 -50
  904. package/src/cubing/twisty/controllers/RenderScheduler.ts +0 -28
  905. package/src/cubing/twisty/controllers/TwistyAnimationController.ts +0 -325
  906. package/src/cubing/twisty/controllers/TwistyPlayerController.ts +0 -38
  907. package/src/cubing/twisty/controllers/easing.ts +0 -3
  908. package/src/cubing/twisty/controllers/indexer/AlgDuration.ts +0 -94
  909. package/src/cubing/twisty/controllers/indexer/AlgIndexer.ts +0 -87
  910. package/src/cubing/twisty/controllers/indexer/SimpleAlgIndexer.ts +0 -76
  911. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.ts +0 -181
  912. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.ts +0 -243
  913. package/src/cubing/twisty/controllers/indexer/simultaneous-moves/simul-moves.ts +0 -193
  914. package/src/cubing/twisty/controllers/indexer/tree/AlgWalker.ts +0 -439
  915. package/src/cubing/twisty/controllers/indexer/tree/TreeAlgIndexer.ts +0 -97
  916. package/src/cubing/twisty/controllers/indexer/tree/chunkAlgs.ts +0 -81
  917. package/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.spec.ts.TODO +0 -59
  918. package/src/cubing/twisty/controllers/stream/timeline-move-calculation-draft.ts +0 -162
  919. package/src/cubing/twisty/heavy-code-imports/3d.ts +0 -18
  920. package/src/cubing/twisty/heavy-code-imports/dynamic-entries/3d.ts +0 -31
  921. package/src/cubing/twisty/index.ts +0 -24
  922. package/src/cubing/twisty/model/PromiseFreshener.ts +0 -49
  923. package/src/cubing/twisty/model/TwistyPlayerModel.ts +0 -256
  924. package/src/cubing/twisty/model/UserVisibleErrorTracker.ts +0 -22
  925. package/src/cubing/twisty/model/helpers.ts +0 -47
  926. package/src/cubing/twisty/model/props/TwistyProp.spec.ts +0 -38
  927. package/src/cubing/twisty/model/props/TwistyProp.ts +0 -366
  928. package/src/cubing/twisty/model/props/TwistyPropDebugger.ts +0 -370
  929. package/src/cubing/twisty/model/props/general/URLProp.ts +0 -14
  930. package/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.ts +0 -9
  931. package/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.ts +0 -15
  932. package/src/cubing/twisty/model/props/puzzle/display/SpriteProp.ts +0 -43
  933. package/src/cubing/twisty/model/props/puzzle/display/StickeringProp.ts +0 -56
  934. package/src/cubing/twisty/model/props/puzzle/state/AlgProp.ts +0 -91
  935. package/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.ts +0 -28
  936. package/src/cubing/twisty/model/props/puzzle/state/AnchoredStartProp.ts +0 -44
  937. package/src/cubing/twisty/model/props/puzzle/state/CatchUpMoveProp.ts +0 -17
  938. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesProp.ts +0 -109
  939. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.ts +0 -48
  940. package/src/cubing/twisty/model/props/puzzle/state/CurrentTransformationProp.ts +0 -46
  941. package/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.ts +0 -53
  942. package/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorRequestProp.ts +0 -15
  943. package/src/cubing/twisty/model/props/puzzle/state/IndexerProp.ts +0 -24
  944. package/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.ts +0 -22
  945. package/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.ts +0 -14
  946. package/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.ts +0 -20
  947. package/src/cubing/twisty/model/props/puzzle/state/PuzzleAlgProp.ts +0 -28
  948. package/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.ts +0 -14
  949. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleDefProp.ts +0 -14
  950. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleDescriptionProp.ts +0 -14
  951. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.ts +0 -12
  952. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.ts +0 -36
  953. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.ts +0 -38
  954. package/src/cubing/twisty/model/props/timeline/CoarseTimelineInfoProp.ts +0 -45
  955. package/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.ts +0 -78
  956. package/src/cubing/twisty/model/props/timeline/PlayingInfoProp.ts +0 -48
  957. package/src/cubing/twisty/model/props/timeline/TempoScaleProp.ts +0 -13
  958. package/src/cubing/twisty/model/props/timeline/TimestampRequestProp.ts +0 -38
  959. package/src/cubing/twisty/model/props/viewer/BackViewProp.ts +0 -16
  960. package/src/cubing/twisty/model/props/viewer/BackgroundProp.ts +0 -15
  961. package/src/cubing/twisty/model/props/viewer/ButtonAppearanceProp.ts +0 -86
  962. package/src/cubing/twisty/model/props/viewer/ControlPanelProp.ts +0 -14
  963. package/src/cubing/twisty/model/props/viewer/LatitudeLimit.ts +0 -11
  964. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.ts +0 -127
  965. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.ts +0 -69
  966. package/src/cubing/twisty/model/props/viewer/TimeRangeProp.ts +0 -15
  967. package/src/cubing/twisty/model/props/viewer/ViewerLinkProp.ts +0 -14
  968. package/src/cubing/twisty/model/props/viewer/VisualizationProp.ts +0 -17
  969. package/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.ts +0 -45
  970. package/src/cubing/twisty/views/2D/Twisty2DPuzzle.css.ts +0 -26
  971. package/src/cubing/twisty/views/2D/Twisty2DPuzzle.ts +0 -146
  972. package/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.ts +0 -52
  973. package/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.ts +0 -77
  974. package/src/cubing/twisty/views/3D/DragTracker.ts +0 -184
  975. package/src/cubing/twisty/views/3D/RendererPool.ts +0 -54
  976. package/src/cubing/twisty/views/3D/TAU.ts +0 -2
  977. package/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.ts +0 -214
  978. package/src/cubing/twisty/views/3D/Twisty3DRenderTarget.ts +0 -5
  979. package/src/cubing/twisty/views/3D/Twisty3DScene.ts +0 -42
  980. package/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.ts +0 -189
  981. package/src/cubing/twisty/views/3D/Twisty3DVantage.css.ts +0 -32
  982. package/src/cubing/twisty/views/3D/Twisty3DVantage.ts +0 -312
  983. package/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.ts +0 -213
  984. package/src/cubing/twisty/views/3D/TwistyOrbitControls.ts +0 -176
  985. package/src/cubing/twisty/views/3D/puzzles/Cube3D.ts +0 -966
  986. package/src/cubing/twisty/views/3D/puzzles/KPuzzleWrapper.ts +0 -142
  987. package/src/cubing/twisty/views/3D/puzzles/PG3D.ts +0 -1078
  988. package/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.ts +0 -6
  989. package/src/cubing/twisty/views/ClassListManager.ts +0 -34
  990. package/src/cubing/twisty/views/ManagedCustomElement.ts +0 -76
  991. package/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.ts +0 -116
  992. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.ts +0 -72
  993. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.spec.ts +0 -57
  994. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.ts +0 -368
  995. package/src/cubing/twisty/views/TwistyAlgEditor/model.ts +0 -179
  996. package/src/cubing/twisty/views/TwistyAlgViewer.css.ts +0 -25
  997. package/src/cubing/twisty/views/TwistyAlgViewer.ts +0 -502
  998. package/src/cubing/twisty/views/TwistyPlayer.css.ts +0 -73
  999. package/src/cubing/twisty/views/TwistyPlayer.ts +0 -362
  1000. package/src/cubing/twisty/views/TwistyPlayerSettable.ts +0 -115
  1001. package/src/cubing/twisty/views/TwistyViewerWrapper.css.ts +0 -41
  1002. package/src/cubing/twisty/views/canvas.ts +0 -9
  1003. package/src/cubing/twisty/views/control-panel/TwistyButtonsV2.css.ts +0 -127
  1004. package/src/cubing/twisty/views/control-panel/TwistyButtonsV2.ts +0 -156
  1005. package/src/cubing/twisty/views/control-panel/TwistyScrubber.css.ts +0 -48
  1006. package/src/cubing/twisty/views/control-panel/TwistyScrubberV2.ts +0 -145
  1007. package/src/cubing/twisty/views/control-panel/webkit-fullscreen.ts +0 -44
  1008. package/src/cubing/twisty/views/document.ts +0 -4
  1009. package/src/cubing/twisty/views/node-custom-element-shims.ts +0 -30
  1010. package/src/cubing/twisty/views/screenshot.ts +0 -90
  1011. package/src/cubing/twisty/views/stream/TwistyStreamSource.css.ts +0 -17
  1012. package/src/cubing/twisty/views/stream/TwistyStreamSource.ts +0 -155
  1013. package/src/cubing/vendor/.DS_Store +0 -0
  1014. package/src/cubing/vendor/comlink-everywhere/.DS_Store +0 -0
  1015. package/src/cubing/vendor/comlink-everywhere/comlink-everywhere.webloc +0 -8
  1016. package/src/cubing/vendor/comlink-everywhere/inside/index.d.ts +0 -1
  1017. package/src/cubing/vendor/comlink-everywhere/inside/index.js +0 -16
  1018. package/src/cubing/vendor/comlink-everywhere/inside/node.js +0 -6
  1019. package/src/cubing/vendor/comlink-everywhere/outside/index.d.ts +0 -6
  1020. package/src/cubing/vendor/comlink-everywhere/outside/index.js +0 -31
  1021. package/src/cubing/vendor/comlink-everywhere/outside/node.js +0 -42
  1022. package/src/cubing/vendor/cstimer/.DS_Store +0 -0
  1023. package/src/cubing/vendor/cstimer/LICENSE +0 -674
  1024. package/src/cubing/vendor/cstimer/src/.DS_Store +0 -0
  1025. package/src/cubing/vendor/cstimer/src/js/lib/mathlib.ts +0 -54
  1026. package/src/cubing/vendor/cstimer/src/js/scramble/scramble_444.ts +0 -2791
  1027. package/src/cubing/vendor/min2phase/gwt.d.ts +0 -2
  1028. package/src/cubing/vendor/min2phase/gwt.js +0 -2699
  1029. package/src/cubing/vendor/p-lazy/license +0 -9
  1030. package/src/cubing/vendor/p-lazy/p-lazy.ts +0 -52
  1031. package/src/cubing/vendor/p-lazy/readme.md +0 -54
  1032. package/src/cubing/vendor/random-uint-below/get-random-values.ts +0 -23
  1033. package/src/cubing/vendor/random-uint-below/index.ts +0 -12
  1034. package/src/cubing/vendor/random-uint-below/random-choice.ts +0 -9
  1035. package/src/cubing/vendor/random-uint-below/random53BitValue.ts +0 -64
  1036. package/src/cubing/vendor/sq12phase/scramble_sq1.js +0 -853
  1037. package/src/cubing/vendor/three/.DS_Store +0 -0
  1038. package/src/cubing/vendor/three/examples/.DS_Store +0 -0
  1039. package/src/cubing/vendor/three/examples/jsm/libs/stats.modified.module.ts +0 -179
  1040. package/src/cubing/vendor/unsafe-raw-aes/unsafe-raw-aes.ts +0 -64
@@ -1,1078 +0,0 @@
1
- import {
2
- BufferAttribute,
3
- BufferGeometry,
4
- Color,
5
- DoubleSide,
6
- Euler,
7
- FrontSide,
8
- Group,
9
- Material,
10
- Mesh,
11
- MeshBasicMaterial,
12
- Object3D,
13
- Texture,
14
- Vector3,
15
- } from "three";
16
- import { Move } from "../../../../alg";
17
- import {
18
- areTransformationsEquivalent,
19
- KPuzzle,
20
- KPuzzleDefinition,
21
- Transformation,
22
- transformationOrder,
23
- } from "../../../../kpuzzle";
24
- import { experimentalTransformationForQuantumMove } from "../../../../kpuzzle";
25
- import type {
26
- StickerDat,
27
- StickerDatSticker,
28
- StickerDatAxis,
29
- } from "../../../../puzzle-geometry";
30
- import type { TextureMapper } from "../../../../puzzle-geometry/PuzzleGeometry";
31
- import {
32
- ExperimentalFaceletMeshAppearance,
33
- experimentalGetFaceletAppearance,
34
- ExperimentalPuzzleAppearance,
35
- } from "../../../../puzzles";
36
- import type { HintFaceletStyle } from "../../../model/props/puzzle/display/HintFaceletProp";
37
- import type { PuzzlePosition } from "../../../controllers/AnimationTypes";
38
- import { smootherStep } from "../../../controllers/easing";
39
- import { TAU } from "../TAU";
40
-
41
- import type { Twisty3DPuzzle } from "./Twisty3DPuzzle";
42
-
43
- const foundationMaterial = new MeshBasicMaterial({
44
- side: DoubleSide,
45
- color: 0x000000,
46
- });
47
- const invisMaterial = new MeshBasicMaterial({
48
- visible: false,
49
- });
50
- const basicStickerMaterial = new MeshBasicMaterial({
51
- vertexColors: true,
52
- });
53
-
54
- function dist(coords: number[], a: number, b: number): number {
55
- return Math.hypot(
56
- coords[3 * a] - coords[3 * b],
57
- coords[3 * a + 1] - coords[3 * b + 1],
58
- coords[3 * a + 2] - coords[3 * b + 2],
59
- );
60
- }
61
-
62
- function triarea(coords: number[], a: number, b: number, c: number): number {
63
- const ab = dist(coords, a, b);
64
- const bc = dist(coords, b, c);
65
- const ac = dist(coords, a, c);
66
- const p = (ab + bc + ac) / 2;
67
- return Math.sqrt(p * (p - ab) * (p - bc) * (p - ac));
68
- }
69
-
70
- function polyarea(coords: number[]): number {
71
- let sum = 0;
72
- for (let i = 2; 3 * i < coords.length; i++) {
73
- sum += triarea(coords, 0, 1, i);
74
- }
75
- return sum;
76
- }
77
-
78
- function normalize(r: number[]): number[] {
79
- const m = Math.hypot(r[0], r[1], r[2]);
80
- r[0] /= m;
81
- r[1] /= m;
82
- r[2] /= m;
83
- return r;
84
- }
85
-
86
- function cross(a: number[], b: number[]): number[] {
87
- const r = new Array<number>(3);
88
- r[0] = a[1] * b[2] - a[2] * b[1];
89
- r[1] = a[2] * b[0] - a[0] * b[2];
90
- r[2] = a[0] * b[1] - a[1] * b[0];
91
- return r;
92
- }
93
-
94
- function normal(c: number[]): number[] {
95
- const a: number[] = [c[3] - c[0], c[4] - c[1], c[5] - c[2]];
96
- const b: number[] = [c[6] - c[3], c[7] - c[4], c[8] - c[5]];
97
- const r = cross(a, b);
98
- return normalize(r);
99
- }
100
-
101
- function trimEdges(face: number[], tr: number): number[] {
102
- const r: number[] = [];
103
- const A: number[] = new Array(3);
104
- const B: number[] = new Array(3);
105
- for (let iter = 1; iter < 10; iter++) {
106
- for (let i = 0; i < face.length; i += 3) {
107
- const pi = (i + face.length - 3) % face.length;
108
- const ni = (i + 3) % face.length;
109
- for (let k = 0; k < 3; k++) {
110
- A[k] = face[pi + k] - face[i + k];
111
- B[k] = face[ni + k] - face[i + k];
112
- }
113
- const alen = Math.hypot(A[0], A[1], A[2]);
114
- const blen = Math.hypot(B[0], B[1], B[2]);
115
- for (let k = 0; k < 3; k++) {
116
- A[k] /= alen;
117
- B[k] /= blen;
118
- }
119
- const d = A[0] * B[0] + A[1] * B[1] + A[2] * B[2];
120
- const m = tr / Math.sqrt(1 - d * d);
121
- for (let k = 0; k < 3; k++) {
122
- r[i + k] = face[i + k] + (A[k] + B[k]) * m;
123
- }
124
- }
125
- let good = true;
126
- for (let i = 0; good && i < r.length; i += 3) {
127
- const ni = (i + 3) % face.length;
128
- let t = 0;
129
- for (let k = 0; k < 3; k++) {
130
- const a = face[ni + k] - face[i + k];
131
- const b = r[ni + k] - r[i + k];
132
- t += a * b;
133
- }
134
- if (t <= 0) {
135
- good = false;
136
- }
137
- }
138
- if (good) {
139
- return r;
140
- }
141
- tr /= 2;
142
- }
143
- return face;
144
- }
145
-
146
- class Filler {
147
- pos: number;
148
- ipos: number;
149
- vertices: Float32Array;
150
- colors: Uint8Array;
151
- uvs?: Float32Array;
152
- ind: Uint8Array;
153
- constructor(public sz: number, public tm: TextureMapper) {
154
- this.vertices = new Float32Array(9 * sz);
155
- this.uvs = undefined;
156
- this.colors = new Uint8Array(18 * sz);
157
- this.ind = new Uint8Array(sz);
158
- this.pos = 0;
159
- this.ipos = 0;
160
- }
161
-
162
- add(pt: number[], i: number, c: number) {
163
- this.vertices[this.pos] = pt[3 * i + 0];
164
- this.vertices[this.pos + 1] = pt[3 * i + 1];
165
- this.vertices[this.pos + 2] = pt[3 * i + 2];
166
- this.colors[this.pos] = c >> 16;
167
- this.colors[this.pos + 1] = (c >> 8) & 255;
168
- this.colors[this.pos + 2] = c & 255;
169
- this.pos += 3;
170
- }
171
-
172
- addUncolored(pt: number[], i: number) {
173
- this.vertices[this.pos] = pt[3 * i + 0];
174
- this.vertices[this.pos + 1] = pt[3 * i + 1];
175
- this.vertices[this.pos + 2] = pt[3 * i + 2];
176
- this.pos += 3;
177
- }
178
-
179
- setind(i: number) {
180
- this.ind[this.ipos++] = i;
181
- }
182
-
183
- makePoly(coords: number[], color: number, ind: number): void {
184
- const ncoords: number[] = coords;
185
- for (let g = 1; 3 * (g + 1) < ncoords.length; g++) {
186
- this.add(ncoords, 0, color);
187
- this.add(ncoords, g, color);
188
- this.add(ncoords, g + 1, color);
189
- this.setind(ind);
190
- }
191
- }
192
-
193
- setAttributes(geo: BufferGeometry) {
194
- geo.setAttribute("position", new BufferAttribute(this.vertices, 3));
195
- // the geometry only needs the first half of the array
196
- const sa2 = this.colors.subarray(0, 9 * this.sz);
197
- geo.setAttribute("color", new BufferAttribute(sa2, 3, true));
198
- }
199
-
200
- makeGroups(geo: BufferGeometry) {
201
- geo.clearGroups();
202
- for (let i = 0; i < this.ipos; ) {
203
- const si = i++;
204
- const iv = this.ind[si];
205
- while (this.ind[i] === iv) {
206
- i++;
207
- }
208
- geo.addGroup(3 * si, 3 * (i - si), iv);
209
- }
210
- }
211
-
212
- saveOriginalColors() {
213
- this.colors.copyWithin(this.pos, 0, this.pos);
214
- }
215
- }
216
-
217
- class StickerDef {
218
- private origColor: number;
219
- private origColorAppearance: number;
220
- private faceColor: number;
221
- private texturePtr?: StickerDef = undefined;
222
- public twistVal: number = -1;
223
- public stickerStart: number;
224
- public stickerEnd: number;
225
- public hintStart: number;
226
- public hintEnd: number;
227
- public foundationStart: number;
228
- public foundationEnd: number;
229
- private isDup: boolean;
230
- private faceNum: number;
231
- constructor(
232
- filler: Filler,
233
- stickerDat: StickerDatSticker,
234
- trim: number,
235
- options?: {
236
- appearance?: ExperimentalFaceletMeshAppearance;
237
- },
238
- ) {
239
- this.isDup = !!stickerDat.isDup;
240
- this.faceNum = stickerDat.face;
241
- this.stickerStart = filler.ipos;
242
- const sdColor = new Color(stickerDat.color).getHex();
243
- this.origColor = sdColor;
244
- this.origColorAppearance = sdColor;
245
- if (options?.appearance) {
246
- this.setAppearance(filler, options.appearance);
247
- }
248
- this.faceColor = sdColor;
249
- const coords = this.stickerCoords(stickerDat.coords, trim);
250
- filler.makePoly(coords, this.faceColor, this.isDup ? 4 : 0);
251
- this.stickerEnd = filler.ipos;
252
- }
253
-
254
- private stickerCoords(coords: number[], trim: number): number[] {
255
- return trimEdges(coords.slice(), trim);
256
- }
257
-
258
- private hintCoords(
259
- coords: number[],
260
- hintStickerHeightScale: number,
261
- trim: number,
262
- normal: number[],
263
- ): number[] {
264
- coords = this.stickerCoords(coords, trim); // pick up trim from stickers
265
- normal = normal.slice();
266
- for (let i = 0; i < 3; i++) {
267
- normal[i] *= 0.5 * hintStickerHeightScale;
268
- }
269
- const hCoords = new Array<number>(coords.length);
270
- for (let i = 0; 3 * i < coords.length; i++) {
271
- const j = coords.length / 3 - 1 - i;
272
- hCoords[3 * i] = coords[3 * j] + normal[0];
273
- hCoords[3 * i + 1] = coords[3 * j + 1] + normal[1];
274
- hCoords[3 * i + 2] = coords[3 * j + 2] + normal[2];
275
- }
276
- return hCoords;
277
- }
278
-
279
- private foundationCoords(coords: number[]): number[] {
280
- const ncoords = coords.slice();
281
- for (let i = 0; i < coords.length; i++) {
282
- ncoords[i] = coords[i] * 0.999;
283
- }
284
- return ncoords;
285
- }
286
-
287
- addHint(
288
- filler: Filler,
289
- stickerDat: StickerDatSticker,
290
- hintStickers: boolean,
291
- hintStickerHeightScale: number,
292
- trim: number,
293
- normal: number[],
294
- ): void {
295
- this.hintStart = filler.ipos;
296
- const coords = this.hintCoords(
297
- stickerDat.coords,
298
- hintStickerHeightScale,
299
- trim,
300
- normal,
301
- );
302
- filler.makePoly(
303
- coords,
304
- this.faceColor,
305
- hintStickers && !this.isDup ? 2 : 4,
306
- );
307
- this.hintEnd = filler.ipos;
308
- }
309
-
310
- public addFoundation(
311
- filler: Filler,
312
- stickerDat: StickerDatSticker,
313
- black: number,
314
- ) {
315
- this.foundationStart = filler.ipos;
316
- const coords = this.foundationCoords(stickerDat.coords);
317
- filler.makePoly(coords, black, this.isDup ? 4 : 6);
318
- this.foundationEnd = filler.ipos;
319
- }
320
-
321
- private setHintStickers(filler: Filler, hintStickers: boolean): void {
322
- const indv = this.isDup || !hintStickers ? 4 : 2;
323
- for (let i = this.hintStart; i < this.hintEnd; i++) {
324
- filler.ind[i] = indv | (filler.ind[i] & 1);
325
- }
326
- }
327
-
328
- public setAppearance(
329
- filler: Filler,
330
- faceletMeshAppearance: ExperimentalFaceletMeshAppearance,
331
- ): void {
332
- let c = 0;
333
- switch (faceletMeshAppearance) {
334
- case "regular":
335
- c = this.origColor;
336
- break;
337
- case "dim":
338
- if (this.origColor === 0xffffff) {
339
- c = 0xdddddd;
340
- } else {
341
- c = new Color(this.origColor).multiplyScalar(0.5).getHex();
342
- }
343
- break;
344
- case "oriented":
345
- c = 0xff88ff;
346
- break;
347
- case "ignored":
348
- c = 0x444444;
349
- break;
350
- case "invisible":
351
- c = this.origColor;
352
- }
353
- this.origColorAppearance = c;
354
- for (let i = 9 * this.stickerStart; i < 9 * this.stickerEnd; i += 3) {
355
- filler.colors[filler.pos + i] = c >> 16;
356
- filler.colors[filler.pos + i + 1] = (c >> 8) & 255;
357
- filler.colors[filler.pos + i + 2] = c & 255;
358
- }
359
- for (let i = 9 * this.hintStart; i < 9 * this.hintEnd; i += 3) {
360
- filler.colors[filler.pos + i] = c >> 16;
361
- filler.colors[filler.pos + i + 1] = (c >> 8) & 255;
362
- filler.colors[filler.pos + i + 2] = c & 255;
363
- }
364
- this.setHintStickers(
365
- filler,
366
- faceletMeshAppearance !== "invisible" && !this.isDup,
367
- );
368
- }
369
-
370
- public addUVs(filler: Filler): void {
371
- const uvs = filler.uvs!;
372
- const vert = filler.vertices;
373
- const coords = new Array(3);
374
- for (let i = 3 * this.stickerStart; i < 3 * this.stickerEnd; i++) {
375
- coords[0] = vert[3 * i];
376
- coords[1] = vert[3 * i + 1];
377
- coords[2] = vert[3 * i + 2];
378
- const uv = filler.tm.getuv(this.faceNum, coords);
379
- uvs[2 * i] = uv[0];
380
- uvs[2 * i + 1] = uv[1];
381
- }
382
- for (let i = 3 * this.hintStart; i < 3 * this.hintEnd; i++) {
383
- coords[0] = vert[3 * i];
384
- coords[1] = vert[3 * i + 1];
385
- coords[2] = vert[3 * i + 2];
386
- const uv = filler.tm.getuv(this.faceNum, coords);
387
- uvs[2 * i] = uv[0];
388
- uvs[2 * i + 1] = uv[1];
389
- }
390
- }
391
-
392
- public setTexture(filler: Filler, sd: StickerDef): number {
393
- if (this.texturePtr === sd) {
394
- return 0;
395
- }
396
- this.texturePtr = sd;
397
- const sz = 6 * filler.sz;
398
- filler.uvs!.copyWithin(
399
- 6 * this.stickerStart,
400
- 6 * sd.stickerStart + sz,
401
- 6 * sd.stickerEnd + sz,
402
- );
403
- filler.uvs!.copyWithin(
404
- 6 * this.hintStart,
405
- 6 * sd.hintStart + sz,
406
- 6 * sd.hintEnd + sz,
407
- );
408
- return 1;
409
- }
410
-
411
- public setColor(filler: Filler, sd: StickerDef): number {
412
- const c = sd.origColorAppearance;
413
- if (this.faceColor !== c) {
414
- this.faceColor = c;
415
- const sz = filler.pos;
416
- filler.colors.copyWithin(
417
- 9 * this.stickerStart,
418
- 9 * sd.stickerStart + sz,
419
- 9 * sd.stickerEnd + sz,
420
- );
421
- filler.colors.copyWithin(
422
- 9 * this.hintStart,
423
- 9 * sd.hintStart + sz,
424
- 9 * sd.hintEnd + sz,
425
- );
426
- return 1;
427
- } else {
428
- return 0;
429
- }
430
- }
431
- }
432
-
433
- class HitPlaneDef {
434
- public cubie: Group;
435
- private geo: BufferGeometry;
436
- constructor(hitface: any, tm: TextureMapper, stickerDat: StickerDat) {
437
- this.cubie = new Group();
438
- const coords = hitface.coords as number[];
439
- const filler = new Filler(coords.length / 3 - 2, tm);
440
- for (let g = 1; 3 * g + 3 < coords.length; g++) {
441
- filler.addUncolored(coords, 0);
442
- filler.addUncolored(coords, g);
443
- filler.addUncolored(coords, g + 1);
444
- }
445
- this.geo = new BufferGeometry();
446
- filler.setAttributes(this.geo);
447
- const obj = new Mesh(this.geo, invisMaterial);
448
- obj.userData.quantumMove = stickerDat.notationMapper.notationToExternal(
449
- new Move(hitface.name),
450
- );
451
- this.cubie.scale.setScalar(0.99);
452
- this.cubie.add(obj);
453
- }
454
- }
455
-
456
- class AxisInfo {
457
- public axis: Vector3;
458
- public order: number;
459
- constructor(axisDat: StickerDatAxis) {
460
- const vec = axisDat.coordinates;
461
- this.axis = new Vector3(vec[0], vec[1], vec[2]);
462
- this.order = axisDat.order;
463
- }
464
- }
465
-
466
- export interface PG3DOptions {
467
- appearance?: ExperimentalPuzzleAppearance;
468
- }
469
-
470
- const DEFAULT_COLOR_FRACTION = 0.71;
471
- const PG_SCALE = 0.5;
472
-
473
- // TODO: Split into "scene model" and "view".
474
- /*
475
- * PG3D uses a single geometry for the puzzle, with all the faces for
476
- * each sticker (including the foundation stickers) in a single
477
- * geometry. We use the materialIndex in the face to point to a
478
- * specific entry, which is either a colored sticker, invisible, or
479
- * black (foundation).
480
- *
481
- * To support general twisting of a subset of the puzzle, we then
482
- * instantiate this same geometry in two different meshes with two
483
- * distinct material arrays. One, the fixed mesh, has the material
484
- * array set up like: [colored, invisible, black, invisible].
485
- * The twisting mesh has the material array set up as
486
- * [invisible, colored, invislble, black]. When not twisted, the
487
- * two meshes are directly coincident, and the (shared) materialIndex
488
- * in each face points to a non-invisible material in exactly one of
489
- * the two meshes. When we decide to twist some cubies, we make
490
- * the cubies that move point to visible materials in the moving
491
- * mesh (which makes them point to invisible materials in the static
492
- * mesh). This way, we only need to rotate the moving mesh as a
493
- * single object---this should be very fast, and occur entirely in
494
- * the GPU. Unfortunately this doesn't quite work as fast as we'd
495
- * like because three.js makes a draw call every time we have a change
496
- * in the material index. By moving the foundation triangles separate
497
- * from the sticker triangles, we enhance the probability that many
498
- * triangles can be rendered in one call speeding up the render.
499
- * We also get some assistance from puzzleGeometry to try to keep
500
- * nearby stickers close to each other.
501
- */
502
- export class PG3D extends Object3D implements Twisty3DPuzzle {
503
- private stickers: { [key: string]: StickerDef[][] };
504
- private axesInfo: { [key: string]: AxisInfo };
505
-
506
- private stickerTargets: Object3D[] = [];
507
- private controlTargets: Object3D[] = [];
508
-
509
- private movingObj: Object3D;
510
- private filler: Filler;
511
- private foundationBound: number; // before this: colored; after: black
512
- private fixedGeo: BufferGeometry;
513
- private lastPos: PuzzlePosition;
514
- private lastMove: Transformation;
515
- private hintMaterial: Material;
516
- private stickerMaterial: Material;
517
- private materialArray1: Material[];
518
- private materialArray2: Material[];
519
- private textured: boolean = false;
520
- private showHintStickers: boolean = false;
521
- private showFoundations: boolean = false;
522
- private hintMaterialDisposable: boolean;
523
- private stickerMaterialDisposable: boolean;
524
-
525
- #pendingStickeringUpdate: boolean = false;
526
-
527
- constructor(
528
- private scheduleRenderCallback: () => void,
529
- private definition: KPuzzleDefinition,
530
- private stickerDat: StickerDat,
531
- enableFoundationOpt: boolean = false,
532
- enableHintStickersOpt: boolean = false,
533
- hintStickerHeightScale: number = 1,
534
- private params: PG3DOptions = {},
535
- ) {
536
- super();
537
- if (stickerDat.stickers.length === 0) {
538
- throw Error("Reuse of stickerdat from pg; please don't do that.");
539
- }
540
- this.hintMaterial = new MeshBasicMaterial({
541
- vertexColors: true,
542
- transparent: true,
543
- opacity: 0.5,
544
- });
545
- this.hintMaterialDisposable = true;
546
- this.stickerMaterial = basicStickerMaterial;
547
- this.stickerMaterialDisposable = false;
548
- this.axesInfo = {};
549
- const axesDef = this.stickerDat.axis;
550
- for (const axis of axesDef) {
551
- this.axesInfo[axis.quantumMove.family] = new AxisInfo(axis);
552
- }
553
- const stickers = this.stickerDat.stickers as any[];
554
- this.stickers = {};
555
- this.materialArray1 = new Array(8);
556
- this.materialArray2 = new Array(8);
557
- // TODO: the argument enableFoundationOpt really means, do we ever want to display
558
- // foundations. But it is presently *used* to mean, show foundations initially
559
- // (and maybe experimentalSetAppearance changes this). So for now we set up the
560
- // show flag from the enable flag, and turn on the enable flag so later when it's
561
- // used we will get the foundations. What this means is the geometry always "pays"
562
- // for foundations, even if they aren't displayed.
563
- this.showFoundation(enableFoundationOpt);
564
- enableFoundationOpt = true;
565
- let triangleCount = 0;
566
- const multiplier = 3;
567
- for (const sticker of stickers) {
568
- const sides = sticker.coords.length / 3;
569
- triangleCount += multiplier * (sides - 2);
570
- }
571
- const filler = new Filler(triangleCount, stickerDat.textureMapper);
572
- const black = 0;
573
- const normals: number[][] = [];
574
- let totArea = 0;
575
- for (const f of stickerDat.faces) {
576
- normals.push(normal(f.coords));
577
- totArea += polyarea(f.coords);
578
- }
579
- const colorfrac = DEFAULT_COLOR_FRACTION;
580
- let nonDupStickers = 0;
581
- for (const sticker of stickers) {
582
- if (!sticker.isDup) {
583
- nonDupStickers++;
584
- }
585
- }
586
- const trim =
587
- (Math.sqrt(totArea / nonDupStickers) * (1 - Math.sqrt(colorfrac))) / 2;
588
- for (const sticker of stickers) {
589
- const orbit = sticker.orbit;
590
- const ord = sticker.ord;
591
- const ori = sticker.ori;
592
- if (!this.stickers[orbit]) {
593
- this.stickers[orbit] = [];
594
- }
595
- if (!this.stickers[orbit][ori]) {
596
- this.stickers[orbit][ori] = [];
597
- }
598
- const options: { appearance?: ExperimentalFaceletMeshAppearance } = {};
599
- if (params.appearance) {
600
- options.appearance = experimentalGetFaceletAppearance(
601
- params.appearance,
602
- orbit,
603
- ord,
604
- ori,
605
- false,
606
- );
607
- }
608
- const stickerdef = new StickerDef(filler, sticker, trim, options);
609
- this.stickers[orbit][ori][ord] = stickerdef;
610
- }
611
- // TODO: the argument enableHintStickersOpt really means, do we ever want to display
612
- // hint stickers. But it is presently *used* to mean, show hint stickers initially
613
- // (and maybe experimentalSetAppearance changes this). So for now we set up the
614
- // show flag from the enable flag, and turn on the enable flag so later when it's
615
- // used we will get the hint stickers. What this means is the geometry always "pays"
616
- // for hint stickers, even if they aren't displayed.
617
- this.showHintStickers = enableHintStickersOpt;
618
- enableHintStickersOpt = true;
619
- for (const sticker of stickers) {
620
- const orbit = sticker.orbit;
621
- const ord = sticker.ord;
622
- const ori = sticker.ori;
623
- this.stickers[orbit][ori][ord].addHint(
624
- filler,
625
- sticker,
626
- enableHintStickersOpt,
627
- hintStickerHeightScale,
628
- trim,
629
- normals[sticker.face],
630
- );
631
- }
632
- this.foundationBound = filler.ipos;
633
- for (const sticker of stickers) {
634
- const orbit = sticker.orbit;
635
- const ord = sticker.ord;
636
- const ori = sticker.ori;
637
- if (enableFoundationOpt) {
638
- this.stickers[orbit][ori][ord].addFoundation(filler, sticker, black);
639
- }
640
- }
641
- const fixedGeo = new BufferGeometry();
642
- filler.setAttributes(fixedGeo);
643
- filler.makeGroups(fixedGeo);
644
- const obj = new Mesh(fixedGeo, this.materialArray1);
645
- obj.scale.set(PG_SCALE, PG_SCALE, PG_SCALE);
646
- this.add(obj);
647
- const obj2 = new Mesh(fixedGeo, this.materialArray2);
648
- obj2.scale.set(PG_SCALE, PG_SCALE, PG_SCALE);
649
- this.add(obj2);
650
- const hitfaces = this.stickerDat.faces as any[];
651
- this.movingObj = obj2;
652
- this.fixedGeo = fixedGeo;
653
- this.filler = filler;
654
- for (const hitface of hitfaces) {
655
- const facedef = new HitPlaneDef(
656
- hitface,
657
- stickerDat.textureMapper,
658
- this.stickerDat,
659
- );
660
- facedef.cubie.scale.set(PG_SCALE, PG_SCALE, PG_SCALE);
661
- this.add(facedef.cubie);
662
- this.controlTargets.push(facedef.cubie.children[0]);
663
- }
664
- filler.saveOriginalColors();
665
- stickerDat.stickers = []; // don't need these anymore
666
- this.updateMaterialArrays();
667
- /*
668
- this.experimentalUpdateTexture(
669
- true,
670
- new TextureLoader().load(
671
- "/experiments.cubing.net/cubing.js/twisty/mkbhd-sprite-red.png",
672
- ),
673
- new TextureLoader().load(
674
- "/experiments.cubing.net/cubing.js/twisty/mkbhd-sprite-red-hint.png",
675
- ),
676
- );
677
- */
678
- }
679
-
680
- public dispose(): void {
681
- if (this.fixedGeo) {
682
- this.fixedGeo.dispose();
683
- }
684
- if (this.stickerMaterialDisposable) {
685
- this.stickerMaterial.dispose();
686
- this.stickerMaterial = basicStickerMaterial;
687
- this.stickerMaterialDisposable = false;
688
- }
689
- if (this.hintMaterialDisposable) {
690
- this.hintMaterial.dispose();
691
- this.hintMaterial = basicStickerMaterial;
692
- this.hintMaterialDisposable = false;
693
- }
694
- }
695
-
696
- public experimentalGetStickerTargets(): Object3D[] {
697
- return this.stickerTargets;
698
- }
699
-
700
- public experimentalGetControlTargets(): Object3D[] {
701
- return this.controlTargets;
702
- }
703
-
704
- #cachedKPuzzle: KPuzzle | null;
705
- get #kpuzzle() {
706
- return (this.#cachedKPuzzle ??= new KPuzzle(this.definition));
707
- }
708
- #isValidMove(move: Move): boolean {
709
- try {
710
- this.#kpuzzle.applyMove(move);
711
- return true;
712
- } catch (_) {
713
- return false;
714
- }
715
- }
716
-
717
- getClosestMoveToAxis(
718
- point: Vector3,
719
- transformations: {
720
- invert: boolean;
721
- depth?: "secondSlice" | "rotation" | "none";
722
- },
723
- ): { move: Move; order: number } | null {
724
- let closestMove: Move | null = null;
725
- let closestMoveDotProduct: number = 0;
726
-
727
- let modify: (move: Move) => Move = (m) => m;
728
- switch (transformations.depth) {
729
- case "secondSlice":
730
- modify = (m: Move) => m.modified({ innerLayer: 2 });
731
- break;
732
- case "rotation":
733
- modify = (m: Move) => m.modified({ family: m.family + "v" });
734
- break;
735
- }
736
-
737
- for (const axis of this.stickerDat.axis) {
738
- const product = point.dot(new Vector3(...axis.coordinates));
739
- if (product > closestMoveDotProduct) {
740
- const modified = this.stickerDat.notationMapper.notationToExternal(
741
- modify(axis.quantumMove),
742
- );
743
- if (!modified) {
744
- continue;
745
- }
746
- if (this.#isValidMove(modified)) {
747
- closestMoveDotProduct = product;
748
- closestMove = modified;
749
- }
750
- }
751
- }
752
-
753
- if (!closestMove) {
754
- return null;
755
- }
756
-
757
- if (transformations.invert) {
758
- closestMove = closestMove.invert();
759
- }
760
- // TODO: cache order or make this lookup more efficient.
761
- this.#kpuzzle.reset();
762
- this.#kpuzzle.applyMove(closestMove);
763
- const order = transformationOrder(this.definition, this.#kpuzzle.state);
764
- return { move: closestMove, order }; // TODO: push this down
765
- }
766
-
767
- experimentalSetAppearance(appearance: ExperimentalPuzzleAppearance): void {
768
- this.params.appearance = appearance;
769
- for (const orbitName in this.definition.orbits) {
770
- const { numPieces, orientations } = this.definition.orbits[orbitName];
771
- for (let pieceIdx = 0; pieceIdx < numPieces; pieceIdx++) {
772
- for (let faceletIdx = 0; faceletIdx < orientations; faceletIdx++) {
773
- const faceletAppearance = experimentalGetFaceletAppearance(
774
- appearance,
775
- orbitName,
776
- pieceIdx,
777
- faceletIdx,
778
- false,
779
- );
780
- const stickerDef = this.stickers[orbitName][faceletIdx][pieceIdx];
781
- stickerDef.setAppearance(this.filler, faceletAppearance);
782
- }
783
- }
784
- }
785
- if (this.scheduleRenderCallback) {
786
- this.#pendingStickeringUpdate = true;
787
- if (this.lastPos) {
788
- this.onPositionChange(this.lastPos);
789
- }
790
- this.scheduleRenderCallback();
791
- }
792
- }
793
-
794
- public onPositionChange(p: PuzzlePosition): void {
795
- const state = p.state;
796
- const noRotation = new Euler();
797
- this.movingObj.rotation.copy(noRotation);
798
- let colormods = 0;
799
- const filler = this.filler;
800
- const ind = filler.ind;
801
- if (
802
- !this.lastPos ||
803
- this.#pendingStickeringUpdate ||
804
- !areTransformationsEquivalent(this.definition, this.lastPos.state, state)
805
- ) {
806
- for (const orbit in this.stickers) {
807
- const pieces = this.stickers[orbit];
808
- const pos2 = state[orbit];
809
- const orin = pieces.length;
810
- if (orin === 1) {
811
- const pieces2 = pieces[0];
812
- for (let i = 0; i < pieces2.length; i++) {
813
- const ni = pos2.permutation[i];
814
- if (this.textured) {
815
- colormods += pieces2[i].setTexture(filler, pieces2[ni]);
816
- } else {
817
- colormods += pieces2[i].setColor(filler, pieces2[ni]);
818
- }
819
- }
820
- } else {
821
- for (let ori = 0; ori < orin; ori++) {
822
- const pieces2 = pieces[ori];
823
- for (let i = 0; i < pieces2.length; i++) {
824
- const nori = (ori + orin - pos2.orientation[i]) % orin;
825
- const ni = pos2.permutation[i];
826
- if (this.textured) {
827
- colormods += pieces2[i].setTexture(filler, pieces[nori][ni]);
828
- } else {
829
- colormods += pieces2[i].setColor(filler, pieces[nori][ni]);
830
- }
831
- }
832
- }
833
- }
834
- }
835
- this.lastPos = p;
836
- this.#pendingStickeringUpdate = false;
837
- }
838
- let vismods = 0;
839
- for (const moveProgress of p.movesInProgress) {
840
- const externalMove = moveProgress.move;
841
- // TODO: unswizzle goes external to internal, and so does the call after that
842
- // and so does the stateForBlockMove call
843
- const unswizzled = this.stickerDat.unswizzle(externalMove);
844
- const move =
845
- this.stickerDat.notationMapper.notationToInternal(externalMove);
846
- if (move === null) {
847
- throw Error("Bad blockmove " + externalMove.family);
848
- }
849
- const quantumTransformation = experimentalTransformationForQuantumMove(
850
- this.definition,
851
- externalMove.quantum,
852
- );
853
- const ax = this.axesInfo[unswizzled];
854
- const turnNormal = ax.axis;
855
- const angle =
856
- (-this.ease(moveProgress.fraction) *
857
- moveProgress.direction *
858
- move.amount *
859
- TAU) /
860
- ax.order;
861
- this.movingObj.rotateOnAxis(turnNormal, angle);
862
- if (this.lastMove !== quantumTransformation) {
863
- for (const orbit in this.stickers) {
864
- const pieces = this.stickers[orbit];
865
- const orin = pieces.length;
866
- const bmv = quantumTransformation[orbit];
867
- for (let ori = 0; ori < orin; ori++) {
868
- const pieces2 = pieces[ori];
869
- for (let i = 0; i < pieces2.length; i++) {
870
- const p2 = pieces2[i];
871
- const ni = bmv.permutation[i];
872
- let tv = 0;
873
- if (ni !== i || bmv.orientation[i] !== 0) {
874
- tv = 1;
875
- }
876
- if (tv !== p2.twistVal) {
877
- if (tv) {
878
- for (let j = p2.stickerStart; j < p2.stickerEnd; j++) {
879
- ind[j] |= 1;
880
- }
881
- for (let j = p2.hintStart; j < p2.hintEnd; j++) {
882
- ind[j] |= 1;
883
- }
884
- for (let j = p2.foundationStart; j < p2.foundationEnd; j++) {
885
- ind[j] |= 1;
886
- }
887
- } else {
888
- for (let j = p2.stickerStart; j < p2.stickerEnd; j++) {
889
- ind[j] &= ~1;
890
- }
891
- for (let j = p2.hintStart; j < p2.hintEnd; j++) {
892
- ind[j] &= ~1;
893
- }
894
- for (let j = p2.foundationStart; j < p2.foundationEnd; j++) {
895
- ind[j] &= ~1;
896
- }
897
- }
898
- p2.twistVal = tv;
899
- vismods++;
900
- }
901
- }
902
- }
903
- }
904
- this.lastMove = quantumTransformation;
905
- }
906
- }
907
- if (vismods) {
908
- this.filler.makeGroups(this.fixedGeo);
909
- }
910
- if (colormods) {
911
- if (this.textured) {
912
- (this.fixedGeo.getAttribute("uv") as BufferAttribute).updateRange = {
913
- offset: 0,
914
- count: 6 * this.foundationBound,
915
- };
916
- (this.fixedGeo.getAttribute("uv") as BufferAttribute).needsUpdate =
917
- true;
918
- } else {
919
- (this.fixedGeo.getAttribute("color") as BufferAttribute).updateRange = {
920
- offset: 0,
921
- count: 9 * this.foundationBound,
922
- };
923
- (this.fixedGeo.getAttribute("color") as BufferAttribute).needsUpdate =
924
- true;
925
- }
926
- }
927
- this.scheduleRenderCallback();
928
- }
929
-
930
- private ease(fraction: number): number {
931
- return smootherStep(fraction);
932
- }
933
-
934
- private showHintFacelets(v: boolean) {
935
- this.showHintStickers = v;
936
- }
937
-
938
- private updateMaterialArrays() {
939
- for (let i = 0; i < 8; i++) {
940
- this.materialArray1[i] = invisMaterial;
941
- this.materialArray2[i] = invisMaterial;
942
- }
943
- this.materialArray1[0] = this.stickerMaterial;
944
- this.materialArray2[1] = this.stickerMaterial;
945
- if (this.showHintStickers) {
946
- this.materialArray1[2] = this.hintMaterial;
947
- this.materialArray2[3] = this.hintMaterial;
948
- } else {
949
- this.materialArray1[2] = invisMaterial;
950
- this.materialArray2[3] = invisMaterial;
951
- }
952
- if (this.showFoundations) {
953
- this.materialArray1[6] = foundationMaterial;
954
- this.materialArray2[7] = foundationMaterial;
955
- } else {
956
- this.materialArray1[6] = invisMaterial;
957
- this.materialArray2[7] = invisMaterial;
958
- }
959
- }
960
-
961
- private showFoundation(v: boolean) {
962
- this.showFoundations = v;
963
- }
964
-
965
- private setHintStickerOpacity(v: number): void {
966
- if (this.hintMaterialDisposable) {
967
- this.hintMaterial.dispose();
968
- this.hintMaterialDisposable = false;
969
- }
970
- console.log("hint sticker opacity " + v);
971
- if (v === 0) {
972
- this.hintMaterial = invisMaterial;
973
- } else if (v === 1) {
974
- this.hintMaterial = this.stickerMaterial;
975
- } else {
976
- this.hintMaterial = new MeshBasicMaterial({
977
- vertexColors: true,
978
- transparent: true,
979
- opacity: 0.5,
980
- });
981
- this.hintMaterialDisposable = true;
982
- }
983
- }
984
-
985
- public experimentalUpdateOptions(options: {
986
- showMainStickers?: boolean;
987
- hintFacelets?: HintFaceletStyle;
988
- showFoundation?: boolean; // TODO: better name
989
- hintStickerOpacity?: number;
990
- }): void {
991
- if (options.hintFacelets !== undefined) {
992
- this.showHintFacelets(options.hintFacelets !== "none");
993
- }
994
- if (options.showFoundation !== undefined) {
995
- this.showFoundation(options.showFoundation);
996
- }
997
- if (options.hintStickerOpacity !== undefined) {
998
- this.setHintStickerOpacity(options.hintStickerOpacity);
999
- }
1000
- this.#pendingStickeringUpdate = true;
1001
- if (this.lastPos) {
1002
- this.onPositionChange(this.lastPos);
1003
- }
1004
- this.updateMaterialArrays();
1005
- this.scheduleRenderCallback();
1006
- }
1007
-
1008
- private adduvs() {
1009
- const filler = this.filler;
1010
- if (filler.uvs) {
1011
- return;
1012
- }
1013
- this.filler.uvs = new Float32Array(12 * filler.sz);
1014
- for (const orbit in this.stickers) {
1015
- const pieces = this.stickers[orbit];
1016
- const orin = pieces.length;
1017
- for (let ori = 0; ori < orin; ori++) {
1018
- const pieces2 = pieces[ori];
1019
- for (const piece2 of pieces2) {
1020
- piece2.addUVs(this.filler);
1021
- }
1022
- }
1023
- }
1024
- filler.uvs!.copyWithin(6 * filler.sz, 0, 6 * filler.sz);
1025
- const sa1 = filler.uvs!.subarray(0, 6 * filler.sz);
1026
- this.fixedGeo.setAttribute("uv", new BufferAttribute(sa1, 2, true));
1027
- }
1028
-
1029
- public experimentalUpdateTexture(
1030
- enabled: boolean,
1031
- stickerTexture?: Texture | null,
1032
- hintTexture?: Texture | null,
1033
- ) {
1034
- if (!stickerTexture) {
1035
- enabled = false;
1036
- } else if (!hintTexture) {
1037
- hintTexture = stickerTexture;
1038
- }
1039
- if (enabled && !this.filler.uvs) {
1040
- this.adduvs();
1041
- }
1042
- this.textured = enabled;
1043
- if (this.stickerMaterialDisposable) {
1044
- this.stickerMaterial.dispose();
1045
- this.stickerMaterialDisposable = false;
1046
- }
1047
- if (enabled) {
1048
- this.stickerMaterial = new MeshBasicMaterial({
1049
- map: stickerTexture,
1050
- side: FrontSide,
1051
- transparent: false,
1052
- });
1053
- this.stickerMaterialDisposable = true;
1054
- } else {
1055
- this.stickerMaterial = basicStickerMaterial;
1056
- }
1057
- if (this.hintMaterialDisposable) {
1058
- this.hintMaterial.dispose();
1059
- this.hintMaterialDisposable = false;
1060
- }
1061
- if (enabled) {
1062
- this.hintMaterial = new MeshBasicMaterial({
1063
- map: hintTexture,
1064
- side: FrontSide,
1065
- transparent: false,
1066
- });
1067
- this.hintMaterialDisposable = true;
1068
- } else {
1069
- this.hintMaterial = basicStickerMaterial;
1070
- }
1071
- this.updateMaterialArrays();
1072
- this.#pendingStickeringUpdate = true;
1073
- if (this.lastPos) {
1074
- this.onPositionChange(this.lastPos);
1075
- }
1076
- this.scheduleRenderCallback();
1077
- }
1078
- }