From d344f8c77137908cfcd8fb5215a5c6dcb02c10b9 Mon Sep 17 00:00:00 2001 From: hybridherbst Date: Thu, 4 Jan 2024 16:48:46 +0100 Subject: [PATCH 1/2] WebXR: add onLoad callback for XRHandMeshModel --- examples/jsm/webxr/XRHandMeshModel.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/jsm/webxr/XRHandMeshModel.js b/examples/jsm/webxr/XRHandMeshModel.js index cad8487b211a74..53f9ef7acc49f6 100644 --- a/examples/jsm/webxr/XRHandMeshModel.js +++ b/examples/jsm/webxr/XRHandMeshModel.js @@ -4,7 +4,7 @@ const DEFAULT_HAND_PROFILE_PATH = 'https://cdn.jsdelivr.net/npm/@webxr-input-pro class XRHandMeshModel { - constructor( handModel, controller, path, handedness, loader = null ) { + constructor( handModel, controller, path, handedness, loader = null, onLoad = null ) { this.controller = controller; this.handModel = handModel; @@ -74,6 +74,8 @@ class XRHandMeshModel { } ); + if ( onLoad ) onLoad( object ); + } ); } From 172775bb421c6762379e2157ac77ed7b7bf27341 Mon Sep 17 00:00:00 2001 From: hybridherbst Date: Thu, 4 Jan 2024 17:13:35 +0100 Subject: [PATCH 2/2] add onLoad for XRControllerModelFactory --- examples/jsm/webxr/XRControllerModelFactory.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/jsm/webxr/XRControllerModelFactory.js b/examples/jsm/webxr/XRControllerModelFactory.js index ba638190928706..39bc4940c40a4d 100644 --- a/examples/jsm/webxr/XRControllerModelFactory.js +++ b/examples/jsm/webxr/XRControllerModelFactory.js @@ -206,11 +206,12 @@ function addAssetSceneToControllerModel( controllerModel, scene ) { class XRControllerModelFactory { - constructor( gltfLoader = null ) { + constructor( gltfLoader = null, onLoad = null ) { this.gltfLoader = gltfLoader; this.path = DEFAULT_PROFILES_PATH; this._assetCache = {}; + this.onLoad = onLoad; // If a GLTFLoader wasn't supplied to the constructor create a new one. if ( ! this.gltfLoader ) { @@ -247,6 +248,8 @@ class XRControllerModelFactory { addAssetSceneToControllerModel( controllerModel, scene ); + if ( this.onLoad ) this.onLoad( scene ); + } else { if ( ! this.gltfLoader ) { @@ -264,6 +267,8 @@ class XRControllerModelFactory { addAssetSceneToControllerModel( controllerModel, scene ); + if ( this.onLoad ) this.onLoad( scene ); + }, null, () => {