mudra-skills 1.0.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.
- package/.claude-plugin/plugin.json +19 -0
- package/CLAUDE.md +35 -0
- package/bin/install.js +25 -0
- package/package.json +28 -0
- package/skills/mudra-master/SKILL.md +202 -0
- package/skills/mudra-master/mudra-preview/SKILL.md +151 -0
- package/skills/mudra-master/mudra-preview/assets/ar-menu.html +382 -0
- package/skills/mudra-master/mudra-preview/assets/document-scroller.html +468 -0
- package/skills/mudra-master/mudra-preview/assets/drum-machine.html +788 -0
- package/skills/mudra-master/mudra-preview/assets/emg-visualizer.html +390 -0
- package/skills/mudra-master/mudra-preview/assets/generative-art.html +408 -0
- package/skills/mudra-master/mudra-preview/assets/gesture-assistant.html +342 -0
- package/skills/mudra-master/mudra-preview/assets/gesture-speech.html +444 -0
- package/skills/mudra-master/mudra-preview/assets/hands-free-desktop.html +376 -0
- package/skills/mudra-master/mudra-preview/assets/model-rotator.html +365 -0
- package/skills/mudra-master/mudra-preview/assets/mudra-duel.html +3200 -0
- package/skills/mudra-master/mudra-preview/assets/mudra-monitor.html +1451 -0
- package/skills/mudra-master/mudra-preview/assets/mudra-ultimate-template.html +891 -0
- package/skills/mudra-master/mudra-preview/assets/music-sequencer.html +455 -0
- package/skills/mudra-master/mudra-preview/assets/neural-pong.html +380 -0
- package/skills/mudra-master/mudra-preview/assets/neural-snake.html +364 -0
- package/skills/mudra-master/mudra-preview/assets/presentation-controller.html +345 -0
- package/skills/mudra-master/mudra-preview/assets/pressure-painter.html +285 -0
- package/skills/mudra-master/mudra-preview/assets/runner.html +1812 -0
- package/skills/mudra-master/mudra-preview/assets/smart-home.html +461 -0
- package/skills/mudra-master/mudra-preview/assets/space-invaders.html +1154 -0
- package/skills/mudra-master/mudra-preview/assets/waterful-ring-toss.html +1624 -0
- package/skills/mudra-master/mudra-preview/references/agent_protocol.json +646 -0
- package/skills/mudra-master/mudra-preview/references/promt.md +16829 -0
- package/skills/mudra-master/mudra-xr/SKILL.md +245 -0
- package/skills/mudra-master/mudra-xr/assets/demos/3dgs-walkthrough.html +242 -0
- package/skills/mudra-master/mudra-xr/assets/demos/aisimulator.html +792 -0
- package/skills/mudra-master/mudra-xr/assets/demos/balloonpop.html +422 -0
- package/skills/mudra-master/mudra-xr/assets/demos/ballpit.html +284 -0
- package/skills/mudra-master/mudra-xr/assets/demos/drone.html +41 -0
- package/skills/mudra-master/mudra-xr/assets/demos/gemini-icebreakers.html +338 -0
- package/skills/mudra-master/mudra-xr/assets/demos/gemini-xrobject.html +302 -0
- package/skills/mudra-master/mudra-xr/assets/demos/math3d.html +188 -0
- package/skills/mudra-master/mudra-xr/assets/demos/measure.html +247 -0
- package/skills/mudra-master/mudra-xr/assets/demos/occlusion.html +251 -0
- package/skills/mudra-master/mudra-xr/assets/demos/rain.html +498 -0
- package/skills/mudra-master/mudra-xr/assets/demos/screenwiper.html +432 -0
- package/skills/mudra-master/mudra-xr/assets/demos/splash.html +519 -0
- package/skills/mudra-master/mudra-xr/assets/demos/webcam_gestures.html +253 -0
- package/skills/mudra-master/mudra-xr/assets/demos/xremoji.html +833 -0
- package/skills/mudra-master/mudra-xr/assets/demos/xrpoet.html +151 -0
- package/skills/mudra-master/mudra-xr/assets/samples/depthmap.html +266 -0
- package/skills/mudra-master/mudra-xr/assets/samples/depthmesh.html +100 -0
- package/skills/mudra-master/mudra-xr/assets/samples/game_rps.html +1099 -0
- package/skills/mudra-master/mudra-xr/assets/samples/gestures_custom.html +467 -0
- package/skills/mudra-master/mudra-xr/assets/samples/gestures_heuristic.html +256 -0
- package/skills/mudra-master/mudra-xr/assets/samples/lighting.html +163 -0
- package/skills/mudra-master/mudra-xr/assets/samples/mesh_detection.html +46 -0
- package/skills/mudra-master/mudra-xr/assets/samples/modelviewer.html +183 -0
- package/skills/mudra-master/mudra-xr/assets/samples/paint.html +133 -0
- package/skills/mudra-master/mudra-xr/assets/samples/planar-vst.html +45 -0
- package/skills/mudra-master/mudra-xr/assets/samples/reticle.html +95 -0
- package/skills/mudra-master/mudra-xr/assets/samples/skybox_agent.html +384 -0
- package/skills/mudra-master/mudra-xr/assets/samples/sound.html +390 -0
- package/skills/mudra-master/mudra-xr/assets/samples/ui.html +496 -0
- package/skills/mudra-master/mudra-xr/assets/samples/virtual-screens.html +808 -0
- package/skills/mudra-master/mudra-xr/assets/templates/0_basic.html +64 -0
- package/skills/mudra-master/mudra-xr/assets/templates/1_ui.html +107 -0
- package/skills/mudra-master/mudra-xr/assets/templates/2_hands.html +183 -0
- package/skills/mudra-master/mudra-xr/assets/templates/3_depth.html +89 -0
- package/skills/mudra-master/mudra-xr/assets/templates/4_stereo.html +84 -0
- package/skills/mudra-master/mudra-xr/assets/templates/5_camera.html +117 -0
- package/skills/mudra-master/mudra-xr/assets/templates/6_ai.html +154 -0
- package/skills/mudra-master/mudra-xr/assets/templates/7_ai_live.html +253 -0
- package/skills/mudra-master/mudra-xr/assets/templates/8_objects.html +95 -0
- package/skills/mudra-master/mudra-xr/assets/templates/9_xr-toggle.html +90 -0
- package/skills/mudra-master/mudra-xr/assets/templates/heuristic_hand_gestures.html +102 -0
- package/skills/mudra-master/mudra-xr/assets/templates/meshes.html +47 -0
- package/skills/mudra-master/mudra-xr/assets/templates/planes.html +47 -0
- package/skills/mudra-master/mudra-xr/assets/templates/uikit.html +187 -0
- package/skills/mudra-master/mudra-xr/references/agent_protocol.json +878 -0
- package/skills/mudra-master/mudra-xr/references/promt.md +1516 -0
- package/skills/mudra-preview/SKILL.md +151 -0
- package/skills/mudra-preview/assets/ar-menu.html +382 -0
- package/skills/mudra-preview/assets/document-scroller.html +468 -0
- package/skills/mudra-preview/assets/drum-machine.html +788 -0
- package/skills/mudra-preview/assets/emg-visualizer.html +390 -0
- package/skills/mudra-preview/assets/generative-art.html +408 -0
- package/skills/mudra-preview/assets/gesture-assistant.html +342 -0
- package/skills/mudra-preview/assets/gesture-speech.html +444 -0
- package/skills/mudra-preview/assets/hands-free-desktop.html +376 -0
- package/skills/mudra-preview/assets/model-rotator.html +365 -0
- package/skills/mudra-preview/assets/mudra-duel.html +3200 -0
- package/skills/mudra-preview/assets/mudra-monitor.html +1451 -0
- package/skills/mudra-preview/assets/mudra-ultimate-template.html +891 -0
- package/skills/mudra-preview/assets/music-sequencer.html +455 -0
- package/skills/mudra-preview/assets/neural-pong.html +380 -0
- package/skills/mudra-preview/assets/neural-snake.html +364 -0
- package/skills/mudra-preview/assets/presentation-controller.html +345 -0
- package/skills/mudra-preview/assets/pressure-painter.html +285 -0
- package/skills/mudra-preview/assets/runner.html +1812 -0
- package/skills/mudra-preview/assets/smart-home.html +461 -0
- package/skills/mudra-preview/assets/space-invaders.html +1154 -0
- package/skills/mudra-preview/assets/waterful-ring-toss.html +1624 -0
- package/skills/mudra-preview/references/agent_protocol.json +646 -0
- package/skills/mudra-preview/references/promt.md +16829 -0
- package/skills/mudra-xr/SKILL.md +245 -0
- package/skills/mudra-xr/assets/demos/3dgs-walkthrough.html +242 -0
- package/skills/mudra-xr/assets/demos/aisimulator.html +792 -0
- package/skills/mudra-xr/assets/demos/balloonpop.html +422 -0
- package/skills/mudra-xr/assets/demos/ballpit.html +284 -0
- package/skills/mudra-xr/assets/demos/drone.html +41 -0
- package/skills/mudra-xr/assets/demos/gemini-icebreakers.html +338 -0
- package/skills/mudra-xr/assets/demos/gemini-xrobject.html +302 -0
- package/skills/mudra-xr/assets/demos/math3d.html +188 -0
- package/skills/mudra-xr/assets/demos/measure.html +247 -0
- package/skills/mudra-xr/assets/demos/occlusion.html +251 -0
- package/skills/mudra-xr/assets/demos/rain.html +498 -0
- package/skills/mudra-xr/assets/demos/screenwiper.html +432 -0
- package/skills/mudra-xr/assets/demos/splash.html +519 -0
- package/skills/mudra-xr/assets/demos/webcam_gestures.html +253 -0
- package/skills/mudra-xr/assets/demos/xremoji.html +833 -0
- package/skills/mudra-xr/assets/demos/xrpoet.html +151 -0
- package/skills/mudra-xr/assets/samples/depthmap.html +266 -0
- package/skills/mudra-xr/assets/samples/depthmesh.html +100 -0
- package/skills/mudra-xr/assets/samples/game_rps.html +1099 -0
- package/skills/mudra-xr/assets/samples/gestures_custom.html +467 -0
- package/skills/mudra-xr/assets/samples/gestures_heuristic.html +256 -0
- package/skills/mudra-xr/assets/samples/lighting.html +163 -0
- package/skills/mudra-xr/assets/samples/mesh_detection.html +46 -0
- package/skills/mudra-xr/assets/samples/modelviewer.html +183 -0
- package/skills/mudra-xr/assets/samples/paint.html +133 -0
- package/skills/mudra-xr/assets/samples/planar-vst.html +45 -0
- package/skills/mudra-xr/assets/samples/reticle.html +95 -0
- package/skills/mudra-xr/assets/samples/skybox_agent.html +384 -0
- package/skills/mudra-xr/assets/samples/sound.html +390 -0
- package/skills/mudra-xr/assets/samples/ui.html +496 -0
- package/skills/mudra-xr/assets/samples/virtual-screens.html +808 -0
- package/skills/mudra-xr/assets/templates/0_basic.html +64 -0
- package/skills/mudra-xr/assets/templates/1_ui.html +107 -0
- package/skills/mudra-xr/assets/templates/2_hands.html +183 -0
- package/skills/mudra-xr/assets/templates/3_depth.html +89 -0
- package/skills/mudra-xr/assets/templates/4_stereo.html +84 -0
- package/skills/mudra-xr/assets/templates/5_camera.html +117 -0
- package/skills/mudra-xr/assets/templates/6_ai.html +154 -0
- package/skills/mudra-xr/assets/templates/7_ai_live.html +253 -0
- package/skills/mudra-xr/assets/templates/8_objects.html +95 -0
- package/skills/mudra-xr/assets/templates/9_xr-toggle.html +90 -0
- package/skills/mudra-xr/assets/templates/heuristic_hand_gestures.html +102 -0
- package/skills/mudra-xr/assets/templates/meshes.html +47 -0
- package/skills/mudra-xr/assets/templates/planes.html +47 -0
- package/skills/mudra-xr/assets/templates/uikit.html +187 -0
- package/skills/mudra-xr/references/agent_protocol.json +878 -0
- package/skills/mudra-xr/references/promt.md +1516 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!-- reference: templates/meshes -->
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Meshes | XR Blocks Template</title>
|
|
6
|
+
|
|
7
|
+
<meta
|
|
8
|
+
name="viewport"
|
|
9
|
+
content="width=device-width, initial-scale=1.0, user-scalable=no"
|
|
10
|
+
/>
|
|
11
|
+
|
|
12
|
+
<link type="text/css" rel="stylesheet" href="https://xrblocks.github.io/css/xr.css" />
|
|
13
|
+
<script>
|
|
14
|
+
window.litDisableBundleWarning = true;
|
|
15
|
+
</script>
|
|
16
|
+
<script type="importmap">
|
|
17
|
+
{
|
|
18
|
+
"imports": {
|
|
19
|
+
"three": "https://cdn.jsdelivr.net/npm/three@0.182.0/build/three.module.js",
|
|
20
|
+
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.182.0/examples/jsm/",
|
|
21
|
+
"lit": "https://cdn.jsdelivr.net/gh/lit/dist@3/core/lit-core.min.js",
|
|
22
|
+
"lit/": "https://esm.run/lit@3/",
|
|
23
|
+
"xrblocks": "https://cdn.jsdelivr.net/npm/xrblocks@0.11.0/build/xrblocks.js",
|
|
24
|
+
"xrblocks/addons/": "https://cdn.jsdelivr.net/npm/xrblocks@0.11.0/build/addons/"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
</script>
|
|
28
|
+
</head>
|
|
29
|
+
|
|
30
|
+
<body>
|
|
31
|
+
<script type="module">
|
|
32
|
+
import 'xrblocks/addons/simulator/SimulatorAddons.js';
|
|
33
|
+
|
|
34
|
+
import * as xb from 'xrblocks';
|
|
35
|
+
|
|
36
|
+
document.addEventListener('DOMContentLoaded', async function () {
|
|
37
|
+
const options = new xb.Options();
|
|
38
|
+
options.simulator.instructions.enabled = false;
|
|
39
|
+
options.reticles.enabled = true;
|
|
40
|
+
options.world.enableMeshDetection();
|
|
41
|
+
options.world.meshes.showDebugVisualizations = true;
|
|
42
|
+
await xb.init(options);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
</script>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!-- reference: templates/planes -->
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Planes | XR Blocks Template</title>
|
|
6
|
+
|
|
7
|
+
<meta
|
|
8
|
+
name="viewport"
|
|
9
|
+
content="width=device-width, initial-scale=1.0, user-scalable=no"
|
|
10
|
+
/>
|
|
11
|
+
|
|
12
|
+
<link type="text/css" rel="stylesheet" href="https://xrblocks.github.io/css/xr.css" />
|
|
13
|
+
<script>
|
|
14
|
+
window.litDisableBundleWarning = true;
|
|
15
|
+
</script>
|
|
16
|
+
<script type="importmap">
|
|
17
|
+
{
|
|
18
|
+
"imports": {
|
|
19
|
+
"three": "https://cdn.jsdelivr.net/npm/three@0.182.0/build/three.module.js",
|
|
20
|
+
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.182.0/examples/jsm/",
|
|
21
|
+
"lit": "https://cdn.jsdelivr.net/gh/lit/dist@3/core/lit-core.min.js",
|
|
22
|
+
"lit/": "https://esm.run/lit@3/",
|
|
23
|
+
"xrblocks": "https://cdn.jsdelivr.net/npm/xrblocks@0.11.0/build/xrblocks.js",
|
|
24
|
+
"xrblocks/addons/": "https://cdn.jsdelivr.net/npm/xrblocks@0.11.0/build/addons/"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
</script>
|
|
28
|
+
</head>
|
|
29
|
+
|
|
30
|
+
<body>
|
|
31
|
+
<script type="module">
|
|
32
|
+
import 'xrblocks/addons/simulator/SimulatorAddons.js';
|
|
33
|
+
|
|
34
|
+
import * as xb from 'xrblocks';
|
|
35
|
+
|
|
36
|
+
document.addEventListener('DOMContentLoaded', async function () {
|
|
37
|
+
const options = new xb.Options();
|
|
38
|
+
options.simulator.instructions.enabled = false;
|
|
39
|
+
options.reticles.enabled = true;
|
|
40
|
+
options.world.enablePlaneDetection();
|
|
41
|
+
options.world.planes.showDebugVisualizations = true;
|
|
42
|
+
await xb.init(options);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
</script>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!-- reference: templates/uikit -->
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>XR Blocks x @pmndrs/uikit Template</title>
|
|
6
|
+
|
|
7
|
+
<meta
|
|
8
|
+
name="viewport"
|
|
9
|
+
content="width=device-width, initial-scale=1.0, user-scalable=no"
|
|
10
|
+
/>
|
|
11
|
+
<link type="text/css" rel="stylesheet" href="https://xrblocks.github.io/css/xr.css" />
|
|
12
|
+
<script>
|
|
13
|
+
window.litDisableBundleWarning = true;
|
|
14
|
+
</script>
|
|
15
|
+
<script type="importmap">
|
|
16
|
+
{
|
|
17
|
+
"imports": {
|
|
18
|
+
"three": "https://cdn.jsdelivr.net/npm/three@0.182.0/build/three.module.js",
|
|
19
|
+
"three/": "https://cdn.jsdelivr.net/npm/three@0.182.0/",
|
|
20
|
+
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.182.0/examples/jsm/",
|
|
21
|
+
"lit": "https://cdn.jsdelivr.net/gh/lit/dist@3/core/lit-core.min.js",
|
|
22
|
+
"lit/": "https://esm.run/lit@3/",
|
|
23
|
+
"@pmndrs/uikit": "https://cdn.jsdelivr.net/npm/@pmndrs/uikit@1.0.56/dist/index.min.js",
|
|
24
|
+
"@pmndrs/uikit-pub-sub": "https://cdn.jsdelivr.net/npm/@pmndrs/uikit-pub-sub@1.0.56/dist/index.min.js",
|
|
25
|
+
"@pmndrs/msdfonts": "https://cdn.jsdelivr.net/npm/@pmndrs/msdfonts@1.0.56/dist/index.min.js",
|
|
26
|
+
"@preact/signals-core": "https://cdn.jsdelivr.net/npm/@preact/signals-core@1.12.1/dist/signals-core.mjs",
|
|
27
|
+
"yoga-layout/load": "https://cdn.jsdelivr.net/npm/yoga-layout@3.2.1/dist/src/load.js",
|
|
28
|
+
"xrblocks": "https://cdn.jsdelivr.net/npm/xrblocks@0.11.0/build/xrblocks.js",
|
|
29
|
+
"xrblocks/addons/": "https://cdn.jsdelivr.net/npm/xrblocks@0.11.0/build/addons/"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
</head>
|
|
34
|
+
|
|
35
|
+
<body>
|
|
36
|
+
<script type="module">
|
|
37
|
+
import 'xrblocks/addons/simulator/SimulatorAddons.js';
|
|
38
|
+
import * as uikit from '@pmndrs/uikit';
|
|
39
|
+
import {computed} from '@preact/signals-core';
|
|
40
|
+
import * as xb from 'xrblocks';
|
|
41
|
+
|
|
42
|
+
// Inlined from MaterialSymbolsIcon.js
|
|
43
|
+
const SVG_BASE_PATH =
|
|
44
|
+
'https://cdn.jsdelivr.net/gh/marella/material-symbols@v0.38.0/svg/{{weight}}/{{style}}/{{icon}}.svg';
|
|
45
|
+
|
|
46
|
+
class MaterialSymbolsIcon extends uikit.Svg {
|
|
47
|
+
name = 'Material Symbols Icon';
|
|
48
|
+
constructor(properties, initialClasses, config) {
|
|
49
|
+
const icon = properties?.icon ?? config?.defaultOverrides?.icon;
|
|
50
|
+
const iconStyle =
|
|
51
|
+
properties?.iconStyle ?? config?.defaultOverrides?.iconStyle;
|
|
52
|
+
const iconWeight =
|
|
53
|
+
properties?.iconWeight ?? config?.defaultOverrides?.iconWeight;
|
|
54
|
+
|
|
55
|
+
const svgPath = computed(() => {
|
|
56
|
+
const finalIcon = icon?.value ?? icon ?? 'question_mark';
|
|
57
|
+
const finalStyle = iconStyle?.value ?? iconStyle ?? 'outlined';
|
|
58
|
+
const finalWeight = iconWeight?.value ?? iconWeight ?? 400;
|
|
59
|
+
|
|
60
|
+
return SVG_BASE_PATH.replace('{{style}}', finalStyle)
|
|
61
|
+
.replace('{{icon}}', finalIcon)
|
|
62
|
+
.replace('{{weight}}', String(finalWeight));
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
super(properties, initialClasses, {
|
|
66
|
+
...config,
|
|
67
|
+
defaultOverrides: {
|
|
68
|
+
src: svgPath,
|
|
69
|
+
...config?.defaultOverrides,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
class UikitPanel extends xb.Script {
|
|
76
|
+
dragFacingCamera = true;
|
|
77
|
+
draggable = true;
|
|
78
|
+
draggingMode = xb.DragMode.TRANSLATING;
|
|
79
|
+
container;
|
|
80
|
+
|
|
81
|
+
constructor() {
|
|
82
|
+
super();
|
|
83
|
+
const panelSize = 0.5;
|
|
84
|
+
this.container = new uikit.Container({
|
|
85
|
+
sizeX: (panelSize * 16) / 9,
|
|
86
|
+
sizeY: panelSize,
|
|
87
|
+
pixelSize: panelSize / 512,
|
|
88
|
+
flexDirection: 'column',
|
|
89
|
+
textAlign: 'center',
|
|
90
|
+
color: 'white',
|
|
91
|
+
fontSize: 64,
|
|
92
|
+
backgroundColor: 'gray',
|
|
93
|
+
borderRadius: 64,
|
|
94
|
+
padding: 16,
|
|
95
|
+
});
|
|
96
|
+
this.add(this.container);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
update() {
|
|
100
|
+
this.container?.update(xb.getDeltaTime());
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
onObjectSelectStart(event) {
|
|
104
|
+
this.dispatchEventRecursively(event.target, 'click', this.container);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
dispatchEventRecursively(controller, eventType, object) {
|
|
108
|
+
const intersections = xb.core.input.intersectObjectByController(
|
|
109
|
+
controller,
|
|
110
|
+
object
|
|
111
|
+
);
|
|
112
|
+
if (intersections.length == 0 || !(object instanceof uikit.Component)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
for (const child of object.children) {
|
|
116
|
+
this.dispatchEventRecursively(controller, eventType, child);
|
|
117
|
+
}
|
|
118
|
+
const intersection = intersections[0];
|
|
119
|
+
object.dispatchEvent({
|
|
120
|
+
type: 'click',
|
|
121
|
+
distance: intersection.distance,
|
|
122
|
+
nativeEvent: {},
|
|
123
|
+
object: intersection.object,
|
|
124
|
+
point: intersection.point,
|
|
125
|
+
pointerId: controller.userData.id,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* UIKit Template
|
|
132
|
+
*/
|
|
133
|
+
class UikitTemplate extends xb.Script {
|
|
134
|
+
constructor() {
|
|
135
|
+
super();
|
|
136
|
+
|
|
137
|
+
const spatialPanel = new UikitPanel();
|
|
138
|
+
spatialPanel.position.set(0, 1.5, -1);
|
|
139
|
+
this.add(spatialPanel);
|
|
140
|
+
|
|
141
|
+
const topRow = new uikit.Text({
|
|
142
|
+
text: 'XR Blocks x @pmndrs/uikit',
|
|
143
|
+
flexGrow: 2,
|
|
144
|
+
});
|
|
145
|
+
spatialPanel.container.add(topRow);
|
|
146
|
+
|
|
147
|
+
const bottomRow = new uikit.Container({
|
|
148
|
+
flexDirection: 'row',
|
|
149
|
+
flexGrow: 1,
|
|
150
|
+
justifyContent: 'space-evenly',
|
|
151
|
+
gap: 64,
|
|
152
|
+
});
|
|
153
|
+
spatialPanel.container.add(bottomRow);
|
|
154
|
+
|
|
155
|
+
const yesButton = new MaterialSymbolsIcon({
|
|
156
|
+
icon: 'check_circle',
|
|
157
|
+
});
|
|
158
|
+
yesButton.addEventListener('click', () => {
|
|
159
|
+
console.log('yes button clicked');
|
|
160
|
+
});
|
|
161
|
+
bottomRow.add(yesButton);
|
|
162
|
+
|
|
163
|
+
const noButton = new MaterialSymbolsIcon({
|
|
164
|
+
icon: 'x_circle',
|
|
165
|
+
});
|
|
166
|
+
noButton.addEventListener('click', () => {
|
|
167
|
+
console.log('no button clicked');
|
|
168
|
+
});
|
|
169
|
+
bottomRow.add(noButton);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const options = new xb.Options();
|
|
174
|
+
options.enableUI();
|
|
175
|
+
|
|
176
|
+
document.addEventListener('DOMContentLoaded', async function () {
|
|
177
|
+
xb.add(new UikitTemplate());
|
|
178
|
+
options.simulator.instructions.enabled = false;
|
|
179
|
+
await xb.init(options);
|
|
180
|
+
const renderer = xb.core.renderer;
|
|
181
|
+
renderer.localClippingEnabled = true;
|
|
182
|
+
renderer.setTransparentSort(uikit.reversePainterSortStable);
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
</script>
|
|
186
|
+
</body>
|
|
187
|
+
</html>
|