Explorar o código

Include handModel on hands implementatations to use it as holder for the geometry

Fernando Serrano %!s(int64=5) %!d(string=hai) anos
pai
achega
99809a909d

+ 3 - 3
examples/jsm/webxr/WebXRHandController.js

@@ -65,15 +65,15 @@ var XRHandModelFactory = ( function () {
 					// @todo Detect profile if not provided
 					if ( profile === undefined || profile === "spheres" ) {
 
-						handModel.motionController = new XRHandPrimitiveModel( controller, xrInputSource.handedness, { primitive: "sphere" } );
+						handModel.motionController = new XRHandPrimitiveModel( handModel, controller, xrInputSource.handedness, { primitive: "sphere" } );
 
 					} else if ( profile === "boxes" ) {
 
-						handModel.motionController = new XRHandPrimitiveModel( controller, xrInputSource.handedness, { primitive: "box" } );
+						handModel.motionController = new XRHandPrimitiveModel( handModel, controller, xrInputSource.handedness, { primitive: "box" } );
 
 					} else if ( profile === "oculus" ) {
 
-						handModel.motionController = new XRHandOculusMeshModel( controller, xrInputSource.handedness, options );
+						handModel.motionController = new XRHandOculusMeshModel( handModel, controller, xrInputSource.handedness, options );
 
 					}
 

+ 4 - 2
examples/jsm/webxr/XRHandOculusMeshModel.js

@@ -2,16 +2,18 @@ import { FBXLoader } from "../loaders/FBXLoader.js";
 
 class XRHandOculusMeshModel {
 
-	constructor( controller, handedness, options ) {
+	constructor( handModel, controller, handedness, options ) {
 
 		this.controller = controller;
+		this.handModel = handModel;
+
 		this.bones = [];
 		var loader = new FBXLoader();
 		const low = options && options.model === "lowpoly" ? "_low" : "";
 
 		loader.load( `/examples/models/fbx/OculusHand_${handedness === "right" ? "R" : "L"}${low}.fbx`, object => {
 
-			this.controller.add( object );
+			this.handModel.add( object );
 			object.scale.setScalar( 0.01 );
 
 			const bonesMapping = [

+ 3 - 2
examples/jsm/webxr/XRHandPrimitiveModel.js

@@ -8,14 +8,15 @@ import {
 
 class XRHandPrimitiveModel {
 
-	constructor( controller, handedness, options ) {
+	constructor( handModel, controller, handedness, options ) {
 
 		this.controller = controller;
+		this.handModel = handModel;
 
 	  this.envMap = null;
 
 		this.handMesh = new Group();
-		this.controller.add( this.handMesh );
+		this.handModel.add( this.handMesh );
 
 		if ( window.XRHand ) {