three-stdlib 2.11.0 → 2.11.1

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-stdlib",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "private": false,
5
5
  "description": "stand-alone library of threejs examples",
6
6
  "main": "index.cjs.js",
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./XRHandMeshModel.cjs.js");require("../loaders/GLTFLoader.cjs.js");class o extends e.Object3D{constructor(e,o){super(),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null,e.addEventListener("connected",(s=>{const n=s.data;n.hand&&!this.motionController&&(this.xrInputSource=n,this.motionController=new t.XRHandMeshModel(this,e,this.path,n.handedness,"left"===n.handedness?o[0]:o[1]))})),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(t){const o=this.getPointerPosition();if(o){const s=new e.Sphere(o,.01),n=(new e.Box3).setFromObject(t);return s.intersectsBox(n)}return!1}checkButton(e){this.intersectBoxObject(e)?e.onPress():e.onClear(),e.isPressed()&&e.whilePressed()}dispose(){this.clear(),this.motionController&&this.motionController.traverse((e=>{if(e&&"Scene"!==e.type){var t;null===(t=e.dispose)||void 0===t||t.call(e);for(const t in e){var o;null===(o=t.dispose)||void 0===o||o.call(t),delete e[t]}}})),this.motionController=null}}exports.OculusHandModel=o;
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 n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../loaders/GLTFLoader.cjs.js");var r=n(e);class s extends t.Object3D{constructor(e,t){super(),r.default(this,"controller",void 0),r.default(this,"motionController",void 0),r.default(this,"envMap",void 0),r.default(this,"mesh",void 0),r.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 r=n.data;r.hand&&!this.motionController&&(this.xrInputSource=r,this.motionController=new o.XRHandMeshModel(this,e,void 0,r.handedness,"left"===r.handedness?null==t?void 0:t[0]:null==t?void 0:t[1]))})),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 n=new t.Sphere(o,.01),r=(new t.Box3).setFromObject(e);return n.intersectsBox(r)}return!1}checkButton(e){this.intersectBoxObject(e)?e.onPress():e.onClear(),e.isPressed()&&e.whilePressed()}dispose(){this.clear(),this.motionController=null}}exports.OculusHandModel=s;
@@ -1,19 +1,22 @@
1
- import { Object3D, Sphere, Box3, Mesh, Texture, Vector3 } from 'three';
2
-
3
- export class OculusHandModel extends Object3D {
1
+ import { Object3D, Mesh, Texture, XRInputSource, Vector3 } from 'three';
2
+ import { XRHandMeshModel } from './XRHandMeshModel';
3
+ export interface XRButton extends Object3D {
4
+ onPress(): void;
5
+ onClear(): void;
6
+ isPressed(): boolean;
7
+ whilePressed(): void;
8
+ }
9
+ declare class OculusHandModel extends Object3D {
4
10
  controller: Object3D;
5
- motionController: Object3D | null;
11
+ motionController: XRHandMeshModel | null;
6
12
  envMap: Texture | null;
7
-
8
13
  mesh: Mesh | null;
9
-
10
- constructor(controller: Object3D);
11
-
14
+ xrInputSource: XRInputSource | null;
15
+ constructor(controller: Object3D, customModels?: string[]);
12
16
  updateMatrixWorld(force?: boolean): void;
13
-
14
17
  getPointerPosition(): Vector3 | null;
15
-
16
18
  intersectBoxObject(boxObject: Object3D): boolean;
17
-
18
- checkButton(button: Object3D): void;
19
+ checkButton(button: XRButton): void;
20
+ dispose(): void;
19
21
  }
22
+ export { OculusHandModel };
@@ -1,3 +1,4 @@
1
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
2
  import { Object3D, Sphere, Box3 } from 'three';
2
3
  import { XRHandMeshModel } from './XRHandMeshModel.js';
3
4
 
@@ -7,16 +8,28 @@ const POINTING_JOINT = 'index-finger-tip';
7
8
  class OculusHandModel extends Object3D {
8
9
  constructor(controller, customModels) {
9
10
  super();
11
+
12
+ _defineProperty(this, "controller", void 0);
13
+
14
+ _defineProperty(this, "motionController", void 0);
15
+
16
+ _defineProperty(this, "envMap", void 0);
17
+
18
+ _defineProperty(this, "mesh", void 0);
19
+
20
+ _defineProperty(this, "xrInputSource", void 0);
21
+
10
22
  this.controller = controller;
11
23
  this.motionController = null;
12
24
  this.envMap = null;
13
25
  this.mesh = null;
26
+ this.xrInputSource = null;
14
27
  controller.addEventListener('connected', event => {
15
28
  const xrInputSource = event.data;
16
29
 
17
30
  if (xrInputSource.hand && !this.motionController) {
18
31
  this.xrInputSource = xrInputSource;
19
- this.motionController = new XRHandMeshModel(this, controller, this.path, xrInputSource.handedness, xrInputSource.handedness === 'left' ? customModels[0] : customModels[1]);
32
+ this.motionController = new XRHandMeshModel(this, controller, undefined, xrInputSource.handedness, xrInputSource.handedness === 'left' ? customModels === null || customModels === void 0 ? void 0 : customModels[0] : customModels === null || customModels === void 0 ? void 0 : customModels[1]);
20
33
  }
21
34
  });
22
35
  controller.addEventListener('disconnected', () => {
@@ -33,6 +46,7 @@ class OculusHandModel extends Object3D {
33
46
  }
34
47
 
35
48
  getPointerPosition() {
49
+ // @ts-ignore XRController needs to extend Group
36
50
  const indexFingerTip = this.controller.joints[POINTING_JOINT];
37
51
 
38
52
  if (indexFingerTip) {
@@ -68,26 +82,6 @@ class OculusHandModel extends Object3D {
68
82
 
69
83
  dispose() {
70
84
  this.clear();
71
-
72
- if (this.motionController) {
73
- this.motionController.traverse(node => {
74
- if (!node) return;
75
-
76
- if (node.type !== 'Scene') {
77
- var _node$dispose;
78
-
79
- (_node$dispose = node.dispose) === null || _node$dispose === void 0 ? void 0 : _node$dispose.call(node); // Dispose of its properties as well
80
-
81
- for (const property in node) {
82
- var _property$dispose;
83
-
84
- (_property$dispose = property.dispose) === null || _property$dispose === void 0 ? void 0 : _property$dispose.call(property);
85
- delete node[property];
86
- }
87
- }
88
- });
89
- }
90
-
91
85
  this.motionController = null;
92
86
  }
93
87
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../loaders/GLTFLoader.cjs.js");require("three");exports.XRHandMeshModel=class{constructor(i,n,a,t,r){this.controller=n,this.handModel=i,this.bones=[];const l=new e.GLTFLoader;r||l.setPath(a||"https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/"),l.load(null!=r?r:`${t}.glb`,(e=>{const i=e.scene.children[0];this.handModel.add(i);const n=i.getObjectByProperty("type","SkinnedMesh");n.frustumCulled=!1,n.castShadow=!0,n.receiveShadow=!0;["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"].forEach((e=>{const n=i.getObjectByName(e);void 0!==n?n.jointName=e:console.warn(`Couldn't find ${e} in ${t} hand mesh`),this.bones.push(n)}))}))}updateMesh(){const e=this.controller.joints;for(let i=0;i<this.bones.length;i++){const n=this.bones[i];if(n){const i=e[n.jointName];if(i.visible){const e=i.position;n.position.copy(e),n.quaternion.copy(i.quaternion)}}}}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),i=require("../loaders/GLTFLoader.cjs.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("three");var t=n(e);exports.XRHandMeshModel=class{constructor(e,n,a="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/",r,l){t.default(this,"controller",void 0),t.default(this,"handModel",void 0),t.default(this,"bones",void 0),this.controller=n,this.handModel=e,this.bones=[];const o=new i.GLTFLoader;l||o.setPath(a),o.load(null!=l?l:`${r}.glb`,(e=>{const i=e.scene.children[0];this.handModel.add(i);const n=i.getObjectByProperty("type","SkinnedMesh");n.frustumCulled=!1,n.castShadow=!0,n.receiveShadow=!0;["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"].forEach((e=>{const n=i.getObjectByName(e);void 0!==n?n.jointName=e:console.warn(`Couldn't find ${e} in ${r} hand mesh`),this.bones.push(n)}))}))}updateMesh(){const e=this.controller.joints;for(let i=0;i<this.bones.length;i++){const n=this.bones[i];if(n){const i=e[n.jointName];if(i.visible){const e=i.position;n.position.copy(e),n.quaternion.copy(i.quaternion)}}}}};
@@ -1,11 +1,9 @@
1
1
  import { Object3D } from 'three';
2
-
3
- export class XRHandMeshModel {
2
+ declare class XRHandMeshModel {
4
3
  controller: Object3D;
5
4
  handModel: Object3D;
6
5
  bones: Object3D[];
7
-
8
- constructor(handModel: Object3D, controller: Object3D, path: string, handedness: string);
9
-
6
+ constructor(handModel: Object3D, controller: Object3D, path: string | undefined, handedness: string, customModel?: string);
10
7
  updateMesh(): void;
11
8
  }
9
+ export { XRHandMeshModel };
@@ -1,14 +1,21 @@
1
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
2
  import { GLTFLoader } from '../loaders/GLTFLoader.js';
2
3
 
3
4
  const DEFAULT_HAND_PROFILE_PATH = 'https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/';
4
5
 
5
6
  class XRHandMeshModel {
6
- constructor(handModel, controller, path, handedness, customModel) {
7
+ constructor(handModel, controller, path = DEFAULT_HAND_PROFILE_PATH, handedness, customModel) {
8
+ _defineProperty(this, "controller", void 0);
9
+
10
+ _defineProperty(this, "handModel", void 0);
11
+
12
+ _defineProperty(this, "bones", void 0);
13
+
7
14
  this.controller = controller;
8
15
  this.handModel = handModel;
9
16
  this.bones = [];
10
17
  const loader = new GLTFLoader();
11
- if (!customModel) loader.setPath(path || DEFAULT_HAND_PROFILE_PATH);
18
+ if (!customModel) loader.setPath(path);
12
19
  loader.load(customModel != null ? customModel : `${handedness}.glb`, gltf => {
13
20
  const object = gltf.scene.children[0];
14
21
  this.handModel.add(object);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./XRHandPrimitiveModel.cjs.js"),r=require("./XRHandMeshModel.cjs.js");require("../loaders/GLTFLoader.cjs.js");class o extends e.Object3D{constructor(e){super(),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&this.motionController.updateMesh()}}exports.XRHandModelFactory=class{constructor(){this.path=null}setPath(e){return this.path=e,this}createHandModel(e,n){const s=new o(e);return e.addEventListener("connected",(o=>{const i=o.data;i.hand&&!s.motionController&&(s.xrInputSource=i,void 0===n||"spheres"===n?s.motionController=new t.XRHandPrimitiveModel(s,e,this.path,i.handedness,{primitive:"sphere"}):"boxes"===n?s.motionController=new t.XRHandPrimitiveModel(s,e,this.path,i.handedness,{primitive:"box"}):"mesh"===n&&(s.motionController=new r.XRHandMeshModel(s,e,this.path,i.handedness)))})),e.addEventListener("disconnected",(()=>{})),s}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("./XRHandPrimitiveModel.cjs.js"),r=require("./XRHandMeshModel.cjs.js");require("@babel/runtime/helpers/defineProperty"),require("../loaders/GLTFLoader.cjs.js");class o extends e.Object3D{constructor(e){super(),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&this.motionController.updateMesh()}}exports.XRHandModelFactory=class{constructor(){this.path=null}setPath(e){return this.path=e,this}createHandModel(e,n){const s=new o(e);return e.addEventListener("connected",(o=>{const i=o.data;i.hand&&!s.motionController&&(s.xrInputSource=i,void 0===n||"spheres"===n?s.motionController=new t.XRHandPrimitiveModel(s,e,this.path,i.handedness,{primitive:"sphere"}):"boxes"===n?s.motionController=new t.XRHandPrimitiveModel(s,e,this.path,i.handedness,{primitive:"box"}):"mesh"===n&&(s.motionController=new r.XRHandMeshModel(s,e,this.path,i.handedness)))})),e.addEventListener("disconnected",(()=>{})),s}};