From 8a78e454401e192481ed0b18a2698ab17280c33f Mon Sep 17 00:00:00 2001 From: Michael Mainguy Date: Fri, 19 Dec 2025 15:32:28 -0600 Subject: [PATCH] version bump --- index.html | 2 +- package.json | 2 +- public/assets/dasfad-logo.png | Bin 0 -> 42110 bytes src/controllers/functions/buildRig.ts | 3 ++- src/toolbox/functions/buildMesh.ts | 8 ++++++-- 5 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 public/assets/dasfad-logo.png diff --git a/index.html b/index.html index 9e262fd..c909032 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - + DASFAD diff --git a/package.json b/package.json index 5fa0b52..bca50a6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "immersive", "private": true, - "version": "0.0.8-33", + "version": "0.0.8-34", "type": "module", "license": "MIT", "engines": { diff --git a/public/assets/dasfad-logo.png b/public/assets/dasfad-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..57401e4bebc011fb7f7ea59ddded7d91a71e9b96 GIT binary patch literal 42110 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 literal 0 HcmV?d00001 diff --git a/src/controllers/functions/buildRig.ts b/src/controllers/functions/buildRig.ts index b12c947..bd579e0 100644 --- a/src/controllers/functions/buildRig.ts +++ b/src/controllers/functions/buildRig.ts @@ -15,6 +15,7 @@ import {DefaultScene} from "../../defaultScene"; export function buildRig(xr: WebXRDefaultExperience): Mesh { const scene = DefaultScene.Scene; const rigMesh = MeshBuilder.CreateCylinder("platform", {diameter: .5, height: .01}, scene); + rigMesh.setAbsolutePosition(new Vector3(0, .01, 5)); const cameratransform = new TransformNode("cameraTransform", scene); cameratransform.parent = rigMesh; xr.baseExperience.onInitialXRPoseSetObservable.add(() => { @@ -31,7 +32,7 @@ export function buildRig(xr: WebXRDefaultExperience): Mesh { } }); - rigMesh.setAbsolutePosition(new Vector3(0, .01, 5)); + rigMesh.isPickable = false; const axis = new AxesViewer(scene, .25); axis.zAxis.rotation.y = Math.PI; diff --git a/src/toolbox/functions/buildMesh.ts b/src/toolbox/functions/buildMesh.ts index 4075fdc..135bc25 100644 --- a/src/toolbox/functions/buildMesh.ts +++ b/src/toolbox/functions/buildMesh.ts @@ -1,5 +1,5 @@ import {ToolType} from "../types/toolType"; -import {AssetContainer, LoadAssetContainerAsync, Mesh, MeshBuilder, SceneLoader} from "@babylonjs/core"; +import {AssetContainer, LoadAssetContainerAsync, Mesh, MeshBuilder} from "@babylonjs/core"; import {DefaultScene} from "../../defaultScene"; import log from "loglevel"; @@ -11,7 +11,7 @@ const detail = { // Cache the loading promise to prevent multiple fetches and handle concurrent requests let personAssetContainerPromise: Promise | null = null; export async function buildMesh(type: ToolType, toolname: string): Promise { - const logger = log.getLogger('buldMesh'); + const logger = log.getLogger('buildMesh'); const scene = DefaultScene.Scene; switch (type) { case ToolType.BOX: @@ -57,6 +57,10 @@ export async function buildMesh(type: ToolType, toolname: string): Promise // Create new instance using BabylonJS's built-in instantiation const entries = container.instantiateModelsToScene(); const mesh = entries.rootNodes[0] as Mesh; + if (!mesh) { + logger.error('error loading mesh'); + return MeshBuilder.CreateBox(toolname, {width: 1, height: 1, depth: 1}); + } mesh.setParent(null); mesh.id = toolname; mesh.name = toolname;