arcanumcube 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,90 @@
1
+ <html>
2
+ <head>
3
+ <title>Arcanum Cube</title>
4
+ <meta charset="utf-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
8
+ <script type="importmap">
9
+ {
10
+ "imports": {
11
+ "arcanumcube": "./esm/arcanumcube.module.min.js",
12
+ "three": "https://cdn.jsdelivr.net/npm/three@0.173.0/build/three.module.min.js",
13
+ "three/examples/jsm/": "https://cdn.jsdelivr.net/npm/three@0.173.0/examples/jsm/",
14
+ "@tweenjs/tween.js": "https://cdn.jsdelivr.net/npm/@tweenjs/tween.js@25.0.0/+esm"
15
+ }
16
+ }
17
+ </script>
18
+ <script type="module">
19
+ import * as THREE from 'three';
20
+ import * as ARCCUBE from 'arcanumcube';
21
+
22
+ async function onLoad() {
23
+ const w = viewarea.clientWidth;
24
+ const h = viewarea.clientHeight;
25
+ const renderer = new THREE.WebGLRenderer({
26
+ antialias: true,
27
+ alpha: true,
28
+ });
29
+ renderer.setSize(w, h);
30
+ renderer.setPixelRatio(window.devicePixelRatio);
31
+ renderer.setClearColor('#222');
32
+
33
+ const canvas = renderer.domElement;
34
+ viewarea.appendChild(canvas);
35
+
36
+ const scene = new THREE.Scene();
37
+
38
+ const camera = new THREE.PerspectiveCamera(45, w / h);
39
+ camera.position.set(0, 0, 30);
40
+
41
+ // ambient light
42
+ const light = new THREE.AmbientLight('#fff', 1.0);
43
+ scene.add(light);
44
+
45
+ // spot light
46
+ const spotLight = new THREE.SpotLight('#fff', 2.0, 20, Math.PI / 4, 0.6, 0.01);
47
+ spotLight.position.set(4, 8, 4);
48
+ spotLight.target.position.set(0, 0, 0);
49
+ scene.add(spotLight);
50
+
51
+ // arcanum cube
52
+ const arccube = new ARCCUBE.WebGLArcanumCube();
53
+ await arccube.init();
54
+ const arccubeGroup = arccube.getGroup();
55
+ arccubeGroup.position.set(0, 0, 0);
56
+ scene.add(arccubeGroup);
57
+
58
+ renderer.setAnimationLoop((time) => {
59
+ // rotate cube
60
+ arccubeGroup.rotation.x -= 0.005;
61
+ arccubeGroup.rotation.y += 0.005;
62
+
63
+ // animate twisting
64
+ arccube.updateTweens();
65
+
66
+ renderer.render(scene, camera);
67
+ });
68
+
69
+ // scramble(steps, duration);
70
+ arccube.scramble(60, 12000);
71
+ }
72
+
73
+ window.addEventListener('load', onLoad);
74
+ </script>
75
+ <style>
76
+ body {
77
+ margin: 0px;
78
+ }
79
+ div#viewarea {
80
+ margin: 0px;
81
+ width: 100dvw;
82
+ height: 100dvh;
83
+ }
84
+ </style>
85
+ </head>
86
+
87
+ <body>
88
+ <div id="viewarea"></div>
89
+ </body>
90
+ </html>
@@ -0,0 +1,3 @@
1
+ export * from './core.js';
2
+ export * from './skins.js';
3
+ export * from './webgl.js';
@@ -0,0 +1,126 @@
1
+ export declare const CUBE_SIZE = 3;
2
+ export declare const SIDE_MAX: number;
3
+ export declare const SIDE_MIN = 0;
4
+ export declare const SIDE_MIDDLE: number;
5
+ export declare const STICKER_COLOR: {
6
+ UP: number;
7
+ FRONT: number;
8
+ RIGHT: number;
9
+ DOWN: number;
10
+ BACK: number;
11
+ LEFT: number;
12
+ PLAIN: number;
13
+ };
14
+ export type StickerColor = (typeof STICKER_COLOR)[keyof typeof STICKER_COLOR];
15
+ export declare const CUBE: {
16
+ readonly AXIS: "axis";
17
+ readonly CENTER: "center";
18
+ readonly EDGE: "edge";
19
+ readonly CORNER: "corner";
20
+ readonly STICKER: "sticker";
21
+ };
22
+ export type CubeType = (typeof CUBE)[keyof typeof CUBE];
23
+ export declare const FACE: Record<string, number>;
24
+ export type Face = (typeof FACE)[keyof typeof FACE];
25
+ export declare const TWIST: {
26
+ readonly U: "U";
27
+ readonly UR: "U'";
28
+ readonly F: "F";
29
+ readonly FR: "F'";
30
+ readonly R: "R";
31
+ readonly RR: "R'";
32
+ readonly D: "D";
33
+ readonly DR: "D'";
34
+ readonly B: "B";
35
+ readonly BR: "B'";
36
+ readonly L: "L";
37
+ readonly LR: "L'";
38
+ readonly M: "M";
39
+ readonly MR: "M'";
40
+ readonly E: "E";
41
+ readonly ER: "E'";
42
+ readonly S: "S";
43
+ readonly SR: "S'";
44
+ readonly U2: "U2";
45
+ readonly F2: "F2";
46
+ readonly R2: "R2";
47
+ readonly D2: "D2";
48
+ readonly B2: "B2";
49
+ readonly L2: "L2";
50
+ readonly M2: "M2";
51
+ readonly E2: "E2";
52
+ readonly S2: "S2";
53
+ };
54
+ export type Twist = (typeof TWIST)[keyof typeof TWIST];
55
+ export declare const SINGLE_TWIST_LIST: readonly ["U", "U'", "F", "F'", "R", "R'", "D", "D'", "B", "B'", "L", "L'", "M", "M'", "E", "E'", "S", "S'"];
56
+ export declare const DOUBLE_TWIST_LIST: readonly ["U2", "F2", "R2", "D2", "B2", "L2", "M2", "E2", "S2"];
57
+ export declare const TWIST_LIST: ("U" | "F" | "R" | "D" | "B" | "L" | "U'" | "F'" | "R'" | "D'" | "B'" | "L'" | "M" | "M'" | "E" | "E'" | "S" | "S'" | "U2" | "F2" | "R2" | "D2" | "B2" | "L2" | "M2" | "E2" | "S2")[];
58
+ export declare const CUBE_ANGLES: Twist[][][][];
59
+ export declare const TWIST_RULE: Record<Twist, {
60
+ axis: [x: number, y: number, z: number];
61
+ levels: number[];
62
+ steps: number;
63
+ }>;
64
+ export declare function getStickerIndex(x: number, y: number, z: number, face: Face): number;
65
+ export declare function getCubeFromStickerIndex(index: number): [x: number, y: number, z: number, face: Face];
66
+ export declare function getRandomTwistList(steps?: number): Twist[];
67
+ export type Sticker = {
68
+ face: Face;
69
+ color: StickerColor;
70
+ };
71
+ export declare class Cube {
72
+ type: string;
73
+ position: {
74
+ x: number;
75
+ y: number;
76
+ z: number;
77
+ };
78
+ protected _stickers: Sticker[];
79
+ protected _initialPosition: {
80
+ x: number;
81
+ y: number;
82
+ z: number;
83
+ };
84
+ constructor(x: number, y: number, z: number);
85
+ getStickers(): Sticker[];
86
+ init(): void;
87
+ reset(): void;
88
+ rotateStickerFace(twists: Twist[], reverse?: boolean, init?: boolean): void;
89
+ }
90
+ /** Arcanum Cube object class */
91
+ export declare class ArcanumCube {
92
+ /** output debug information to console */
93
+ debug: boolean;
94
+ /** history of twisting */
95
+ protected _history: Twist[];
96
+ /** cube objects matrix */
97
+ protected _matrix: Cube[][][];
98
+ constructor(options?: {
99
+ debug?: boolean;
100
+ });
101
+ init(): void;
102
+ reset(): void;
103
+ scramble(steps?: number): void;
104
+ undo(steps?: number): void;
105
+ getHistory(): Twist[];
106
+ getUndoList(steps?: number): Twist[];
107
+ twist(twist: Twist | Twist[], reverse?: boolean): void;
108
+ private _twist;
109
+ rotateMatrix(twist: Twist, reverse?: boolean): void;
110
+ getStickerColors(): StickerColor[];
111
+ dumpStickers(): void;
112
+ }
113
+ export declare function getNextStickerColors(stickers: StickerColor[], twist: Twist): StickerColor[];
114
+ export declare function getArrayForTensor(stickers: StickerColor[]): number[][][];
115
+ export declare function getCubePermutationGroup(twist: Twist, reverse?: boolean): {
116
+ before: number[][];
117
+ after: number[][];
118
+ stickers: {
119
+ before: number[];
120
+ after: number[];
121
+ };
122
+ };
123
+ export declare function getStickerPermutationGroup(position: [x: number, y: number, z: number], position2: [x: number, y: number, z: number], twists: Twist[], reverse?: boolean): {
124
+ before: number[];
125
+ after: number[];
126
+ };
@@ -0,0 +1,7 @@
1
+ import * as THREE from 'three';
2
+ export declare class OutlineShaderMaterial extends THREE.ShaderMaterial {
3
+ constructor(offset: number, // outline thickness
4
+ color: THREE.Vector4, // outline color
5
+ visible?: boolean, // visible
6
+ depthWrite?: boolean);
7
+ }
@@ -0,0 +1,23 @@
1
+ import * as THREE from 'three';
2
+ import * as ARCCUBE from './core.js';
3
+ export type Skin = {
4
+ name: string;
5
+ enableEnvMap: boolean;
6
+ modelFiles: Record<ARCCUBE.CubeType, string>;
7
+ modelLoading: boolean;
8
+ models: Record<string, THREE.Mesh>;
9
+ cube: {
10
+ material: () => THREE.Material;
11
+ activate: (mesh: THREE.Mesh) => void;
12
+ deactivate: (mesh: THREE.Mesh) => void;
13
+ };
14
+ sticker: {
15
+ material: (x: number, y: number, z: number, color: ARCCUBE.StickerColor) => THREE.Material;
16
+ activate: (mesh: THREE.Mesh) => void;
17
+ deactivate: (mesh: THREE.Mesh) => void;
18
+ };
19
+ };
20
+ export declare const DefaultSkin: Skin;
21
+ export declare const SkinMap: Record<string, Skin>;
22
+ export declare const DefaultModel: Record<string, string>;
23
+ export declare const DefaultLogo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zUAAAF0GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTAyNCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjEwMjQiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAyNCIKICAgdGlmZjpJbWFnZVdpZHRoPSIxMDI0IgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI3Mi8xIgogICB0aWZmOllSZXNvbHV0aW9uPSI3Mi8xIgogICB4bXA6TWV0YWRhdGFEYXRl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AAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAAALAQAgAAAABgIQQAAAAAwEIIAAAAAICFEAAAAAAACyEAAAAAABZCAAAAAAAshAAAAAAAWAgBAAAA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zTenT59udyEAAKiLAAD0ZO+9995NN91kdxXdJCsr6/XXXx86dKjdhQAAoDRagICe7MYbb1yxYoXdVXSHX/7yl3/729+4+wcA4Kp4AwD0fKtXr547d67dVVjlX/7lX/7zP/8zKSnJ7kIAAPAOvAEAer45c+Zs3rw5PT3d7kI8LCcnp6SkZNmyZdz9AwAgjjcAgC6am5ufe+65J554wu5CPCA2Nvapp5666aabevfubXctAAB4GQIAoJft27f/5Cc/2b59u92FmBQbG/vAAw/cfffdYWFhdtcCAIBXIgAA2jl79uySJUseffRRuwuRc/vtt992222TJ0/29/e3uxYAALwYAQDQ1IEDB15//fUlS5a0tLTYXcuVpKSk/Ou//uucOXPi4uLsrgUAgJ6AAABo7fjx4ytXrvz973+/f/9+u2vp7N5777355psnTJjgdDrtrgUAgJ6DAADAaG1tLSoqWrp06cqVK+2tZP78+Xl5eWPHjk1NTQ0ODra3GAAAeiQCAID/19HRUVFRUVpaumnTplWrVh0/frwbvtTPz2/OnDmTJ08eM2ZMampqUFBQN3wpAAA6IwAAuIzz589XVVXt3r1706ZNq1evbmxs9NQnjx07duTIkUOGDBk8eHBiYmJKSkpgYKCnPhwAAFwVAQDAVVy4cMHlcn322WcnT548ceLEZ5991tjYeOTIEZfLVVlZeenKgICAfv36BQUFBQYGBgQEBAQExMbGJiQkxMbGRkdHR0VFRUZG9unTx65fCAAAMAgAALqitbW1paXF19fX6XQ6nc5evXo5HA67iwIAAFdCAAAAAAA00svuAgAAAAB0HwIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgCNGpvDAAACq0lEQVQAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgEQIAAAAAoBECAAAAAKARAgAAAACgkf8DrRPtrJpx5YsAAAAASUVORK5CYII=";
@@ -0,0 +1,106 @@
1
+ import * as THREE from 'three';
2
+ import { Cube, ArcanumCube } from './core.js';
3
+ import type { Twist, Sticker } from './core.js';
4
+ export declare const CUBE_SIDE_LEN = 1.9;
5
+ type WebGLSticker = Sticker & {
6
+ mesh?: THREE.Mesh;
7
+ };
8
+ export type WebGLCubeConfig = {
9
+ scale: number;
10
+ stickerScale: number;
11
+ gap: number;
12
+ enableShadow: boolean;
13
+ skin: string;
14
+ envMap?: THREE.Texture;
15
+ };
16
+ declare class WebGLCube extends Cube {
17
+ protected _stickers: WebGLSticker[];
18
+ private _config;
19
+ private _skin;
20
+ private _group;
21
+ private _entityGroup;
22
+ private _outlineGroup;
23
+ constructor(x: number, y: number, z: number, opts?: Partial<WebGLCubeConfig>);
24
+ getGroup(): THREE.Group;
25
+ setStickerScale(scale: number): void;
26
+ setGap(gap: number): void;
27
+ getStickers(): WebGLSticker[];
28
+ getEntityGroup(): THREE.Group;
29
+ getOutlineGroup(): THREE.Group;
30
+ init(): void;
31
+ stretch(strength: number): void;
32
+ enableShadow(flag: boolean): void;
33
+ select(flag?: boolean): void;
34
+ activate(): void;
35
+ deactivate(): void;
36
+ }
37
+ export type WebGLArcanumCubeConfig = {
38
+ debug: boolean;
39
+ scale: number;
40
+ stickerScale: number;
41
+ gap: number;
42
+ enableShadow: boolean;
43
+ skin: string;
44
+ envMap?: THREE.Texture;
45
+ showSelectedCube: boolean;
46
+ showTwistGroup: boolean;
47
+ enableLight: boolean;
48
+ };
49
+ /** Arcanum Cube object for WebGL class */
50
+ declare class WebGLArcanumCube extends ArcanumCube {
51
+ /** config */
52
+ private _config;
53
+ /** cube objects matrix */
54
+ protected _matrix: WebGLCube[][][];
55
+ /** WebGL THREE.js Group */
56
+ private _group;
57
+ /** cube meshes */
58
+ private _cubeObjectList;
59
+ /** cube map */
60
+ private _cubeMap;
61
+ /** selected cube */
62
+ private _selectedCube?;
63
+ /** selected sticker */
64
+ private _selectedSticker?;
65
+ /** current rotating group */
66
+ private _twistGroup?;
67
+ /** dragging state */
68
+ private _draggingTwist?;
69
+ /** max degree to cancel the dragging */
70
+ private _cancelDragDeg;
71
+ /** tween group */
72
+ private _tweens;
73
+ /** light at the center of cube */
74
+ private _pointLights;
75
+ constructor(options?: Partial<WebGLArcanumCubeConfig>);
76
+ getGroup(): THREE.Group;
77
+ getCubeObjectList(): THREE.Group[];
78
+ static getSkinNameList(): string[];
79
+ init(): Promise<void>;
80
+ private _init;
81
+ setSkin(name: string): Promise<void>;
82
+ reset(duration?: number): void;
83
+ selectedCube(): WebGLCube | undefined;
84
+ selectedSticker(): WebGLSticker | undefined;
85
+ getCubeFromObject(object: THREE.Object3D): WebGLCube | undefined;
86
+ getStickerFromMesh(mesh: THREE.Object3D, cube?: WebGLCube): WebGLSticker | undefined;
87
+ selectCube(cube?: WebGLCube): void;
88
+ deselectCube(): void;
89
+ selectSticker(mesh: THREE.Object3D): void;
90
+ deselectSticker(): void;
91
+ getMovementList(sticker: WebGLSticker, position: [x: number, y: number, z: number]): {
92
+ twist: Twist;
93
+ normal: [number, number, number];
94
+ }[];
95
+ private _reconstructGroups;
96
+ dragTwist(twist: Twist, rad: number): void;
97
+ dragTwistEnd(): void;
98
+ scramble(steps?: number, duration?: number): void;
99
+ undo(steps?: number, duration?: number): void;
100
+ tweenTwist(twist: Twist | Twist[], reverse?: boolean, duration?: number, cancel?: boolean): void;
101
+ private _immediatelyTwist;
102
+ private _tweenTwist;
103
+ updateTweens(): void;
104
+ }
105
+ export * from './core.js';
106
+ export { WebGLArcanumCube };
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "arcanumcube",
3
+ "version": "0.1.0",
4
+ "description": "Arcanum Cube",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "mawxiwtz",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/mawxiwtz/arcanumcube"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "LICENSE",
15
+ "README.md"
16
+ ],
17
+ "main": "./dist/cjs/arcanumcube.cjs",
18
+ "module": "./dist/esm/arcanumcube.module.js",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/types/arcanumcube.d.ts",
22
+ "import": "./dist/esm/arcanumcube.module.js",
23
+ "require": "./dist/cjs/arcanumcube.cjs"
24
+ }
25
+ },
26
+ "scripts": {
27
+ "lint": "prettier --check . && eslint .",
28
+ "format": "prettier --write .",
29
+ "build": "node ./esbuild.js",
30
+ "postbuild": "tsc --allowJs --declaration --emitDeclarationOnly --outDir ./dist/types",
31
+ "start": "node ./esbuild.js --serve",
32
+ "doc": "typedoc --entryPointStrategy expand ./src --out ./docs --disableSources",
33
+ "test": "jest"
34
+ },
35
+ "overrides": {
36
+ "glob": "^11.0.1"
37
+ },
38
+ "devDependencies": {
39
+ "@tweenjs/tween.js": "^25.0.0",
40
+ "@types/eslint": "^9.6.1",
41
+ "@types/jest": "^29.5.14",
42
+ "@types/node": "^22.13.0",
43
+ "@types/three": "^0.173.0",
44
+ "@typescript-eslint/eslint-plugin": "^8.22.0",
45
+ "@typescript-eslint/parser": "^8.22.0",
46
+ "chalk": "^5.4.1",
47
+ "esbuild": "^0.25.0",
48
+ "eslint": "^9.18.0",
49
+ "eslint-config-prettier": "^10.0.1",
50
+ "fs-extra": "^11.3.0",
51
+ "jest": "^29.7.0",
52
+ "prettier": "^3.4.2",
53
+ "three": "^0.173.0",
54
+ "ts-jest": "^29.2.5",
55
+ "typedoc": "^0.27.6",
56
+ "typescript": "^5.7.3"
57
+ }
58
+ }