three-stdlib 2.12.0 → 2.12.1
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("three"),o=require("./XRHandMeshModel.cjs.js");function
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("three"),o=require("./XRHandMeshModel.cjs.js");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../loaders/GLTFLoader.cjs.js");var n=r(e);class s extends t.Object3D{constructor(e,t,r){super(),n.default(this,"controller",void 0),n.default(this,"motionController",void 0),n.default(this,"envMap",void 0),n.default(this,"mesh",void 0),n.default(this,"xrInputSource",void 0),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null,this.xrInputSource=null,e.addEventListener("connected",(n=>{const s=n.data;s.hand&&!this.motionController&&(this.xrInputSource=s,this.motionController=new o.XRHandMeshModel(this,e,void 0,s.handedness,"left"===s.handedness?t:r))})),e.addEventListener("disconnected",(()=>{this.dispose()}))}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&this.motionController.updateMesh()}getPointerPosition(){const e=this.controller.joints["index-finger-tip"];return e?e.position:null}intersectBoxObject(e){const o=this.getPointerPosition();if(o){const r=new t.Sphere(o,.01),n=(new t.Box3).setFromObject(e);return r.intersectsBox(n)}return!1}checkButton(e){this.intersectBoxObject(e)?e.onPress():e.onClear(),e.isPressed()&&e.whilePressed()}dispose(){this.clear(),this.motionController=null}}exports.OculusHandModel=s;
|
@@ -12,7 +12,7 @@ declare class OculusHandModel extends Object3D {
|
|
12
12
|
envMap: Texture | null;
|
13
13
|
mesh: Mesh | null;
|
14
14
|
xrInputSource: XRInputSource | null;
|
15
|
-
constructor(controller: Object3D,
|
15
|
+
constructor(controller: Object3D, leftModelPath?: string, rightModelPath?: string);
|
16
16
|
updateMatrixWorld(force?: boolean): void;
|
17
17
|
getPointerPosition(): Vector3 | null;
|
18
18
|
intersectBoxObject(boxObject: Object3D): boolean;
|
package/webxr/OculusHandModel.js
CHANGED
@@ -6,7 +6,7 @@ const TOUCH_RADIUS = 0.01;
|
|
6
6
|
const POINTING_JOINT = 'index-finger-tip';
|
7
7
|
|
8
8
|
class OculusHandModel extends Object3D {
|
9
|
-
constructor(controller,
|
9
|
+
constructor(controller, leftModelPath, rightModelPath) {
|
10
10
|
super();
|
11
11
|
|
12
12
|
_defineProperty(this, "controller", void 0);
|
@@ -29,7 +29,7 @@ class OculusHandModel extends Object3D {
|
|
29
29
|
|
30
30
|
if (xrInputSource.hand && !this.motionController) {
|
31
31
|
this.xrInputSource = xrInputSource;
|
32
|
-
this.motionController = new XRHandMeshModel(this, controller, undefined, xrInputSource.handedness, xrInputSource.handedness === 'left' ?
|
32
|
+
this.motionController = new XRHandMeshModel(this, controller, undefined, xrInputSource.handedness, xrInputSource.handedness === 'left' ? leftModelPath : rightModelPath);
|
33
33
|
}
|
34
34
|
});
|
35
35
|
controller.addEventListener('disconnected', () => {
|
@@ -3,7 +3,7 @@ declare class XRHandMeshModel {
|
|
3
3
|
controller: Object3D;
|
4
4
|
handModel: Object3D;
|
5
5
|
bones: Object3D[];
|
6
|
-
constructor(handModel: Object3D, controller: Object3D, path: string | undefined, handedness: string,
|
6
|
+
constructor(handModel: Object3D, controller: Object3D, path: string | undefined, handedness: string, customModelPath?: string);
|
7
7
|
updateMesh(): void;
|
8
8
|
}
|
9
9
|
export { XRHandMeshModel };
|
package/webxr/XRHandMeshModel.js
CHANGED
@@ -4,7 +4,7 @@ import { GLTFLoader } from '../loaders/GLTFLoader.js';
|
|
4
4
|
const DEFAULT_HAND_PROFILE_PATH = 'https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/';
|
5
5
|
|
6
6
|
class XRHandMeshModel {
|
7
|
-
constructor(handModel, controller, path = DEFAULT_HAND_PROFILE_PATH, handedness,
|
7
|
+
constructor(handModel, controller, path = DEFAULT_HAND_PROFILE_PATH, handedness, customModelPath) {
|
8
8
|
_defineProperty(this, "controller", void 0);
|
9
9
|
|
10
10
|
_defineProperty(this, "handModel", void 0);
|
@@ -15,8 +15,8 @@ class XRHandMeshModel {
|
|
15
15
|
this.handModel = handModel;
|
16
16
|
this.bones = [];
|
17
17
|
const loader = new GLTFLoader();
|
18
|
-
if (!
|
19
|
-
loader.load(
|
18
|
+
if (!customModelPath) loader.setPath(path);
|
19
|
+
loader.load(customModelPath != null ? customModelPath : `${handedness}.glb`, gltf => {
|
20
20
|
const object = gltf.scene.children[0];
|
21
21
|
this.handModel.add(object);
|
22
22
|
const mesh = object.getObjectByProperty('type', 'SkinnedMesh');
|