|
@@ -64,7 +64,7 @@ define(["module", "vwf/view"], function (module, view) {
|
|
|
|
|
|
this.threeDoFMobile = AFRAME.utils.device.isMobileVR() && AFRAME.utils.device.checkHeadsetConnected() && !navigator.userAgent.includes('Quest');
|
|
this.threeDoFMobile = AFRAME.utils.device.isMobileVR() && AFRAME.utils.device.checkHeadsetConnected() && !navigator.userAgent.includes('Quest');
|
|
this.sixDoFMobile = AFRAME.utils.device.checkHeadsetConnected() && navigator.userAgent.includes('Quest');
|
|
this.sixDoFMobile = AFRAME.utils.device.checkHeadsetConnected() && navigator.userAgent.includes('Quest');
|
|
- this.sixDoFDesktop = !AFRAME.utils.device.isMobileVR() && AFRAME.utils.device.checkHeadsetConnected();
|
|
|
|
|
|
+ this.sixDoFDesktop = !AFRAME.utils.device.isMobile && !AFRAME.utils.device.isMobileVR() && AFRAME.utils.device.checkHeadsetConnected();
|
|
|
|
|
|
|
|
|
|
},
|
|
},
|
|
@@ -82,7 +82,7 @@ define(["module", "vwf/view"], function (module, view) {
|
|
|
|
|
|
if (this.state.scenes[childID]) {
|
|
if (this.state.scenes[childID]) {
|
|
let scene = this.state.scenes[childID];
|
|
let scene = this.state.scenes[childID];
|
|
-
|
|
|
|
|
|
+ //document.body.appendChild(scene);
|
|
|
|
|
|
let prepairAvatar = new Promise((resolve, reject) => {
|
|
let prepairAvatar = new Promise((resolve, reject) => {
|
|
let createAvatarPromise = new Promise(r=> r(createAvatarControl(scene)));
|
|
let createAvatarPromise = new Promise(r=> r(createAvatarControl(scene)));
|
|
@@ -121,10 +121,12 @@ define(["module", "vwf/view"], function (module, view) {
|
|
createAvatar.call(self, childID);
|
|
createAvatar.call(self, childID);
|
|
postLoadAction.call(self, childID);
|
|
postLoadAction.call(self, childID);
|
|
|
|
|
|
|
|
+ }).then(res=>{
|
|
|
|
+ //document.body.appendChild(scene);
|
|
})
|
|
})
|
|
// this.state.appInitialized = true;
|
|
// this.state.appInitialized = true;
|
|
|
|
|
|
- document.body.appendChild(scene); //append is not working in Edge browser
|
|
|
|
|
|
+ //document.body.appendChild(scene); //append is not working in Edge browser
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -288,7 +290,11 @@ define(["module", "vwf/view"], function (module, view) {
|
|
|
|
|
|
//TODO: Temporary fix for font resource loading error
|
|
//TODO: Temporary fix for font resource loading error
|
|
console.log('Set font from view');
|
|
console.log('Set font from view');
|
|
- self.kernel.callMethod(nodeId, "setFont", [propertyValue])
|
|
|
|
|
|
+
|
|
|
|
+ setTimeout(function(){
|
|
|
|
+ self.kernel.callMethod(nodeId, "setFont", [propertyValue])
|
|
|
|
+ }, 100);
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -661,7 +667,7 @@ define(["module", "vwf/view"], function (module, view) {
|
|
|
|
|
|
function updateAvatarPosition() {
|
|
function updateAvatarPosition() {
|
|
|
|
|
|
- let delta = 0.0001;
|
|
|
|
|
|
+ let delta = 0.001;
|
|
|
|
|
|
let avatarName = 'avatar-' + self.kernel.moniker();
|
|
let avatarName = 'avatar-' + self.kernel.moniker();
|
|
var node = self.state.nodes[avatarName];
|
|
var node = self.state.nodes[avatarName];
|
|
@@ -681,23 +687,39 @@ define(["module", "vwf/view"], function (module, view) {
|
|
// }
|
|
// }
|
|
//let position = el.getAttribute('position');
|
|
//let position = el.getAttribute('position');
|
|
|
|
|
|
- let position = el.getAttribute('position');
|
|
|
|
|
|
+ //let position = el.getAttribute('position');
|
|
|
|
+ let position = el.object3D.position;
|
|
let rotation = el.getAttribute('rotation'); //getWorldRotation(el, 'YXZ');
|
|
let rotation = el.getAttribute('rotation'); //getWorldRotation(el, 'YXZ');
|
|
|
|
|
|
let lastRotation = self.nodes[avatarName].selfTickRotation;
|
|
let lastRotation = self.nodes[avatarName].selfTickRotation;
|
|
- let lastPosition = self.nodes[avatarName].selfTickPosition;
|
|
|
|
|
|
+ let lastPosition = self.nodes[avatarName].selfTickPosition ? self.nodes[avatarName].selfTickPosition: new THREE.Vector3(0, 0, 0);
|
|
|
|
|
|
// let currentPosition = node.aframeObj.getAttribute('position');
|
|
// let currentPosition = node.aframeObj.getAttribute('position');
|
|
// let currentRotation = node.aframeObj.getAttribute('rotation');
|
|
// let currentRotation = node.aframeObj.getAttribute('rotation');
|
|
|
|
|
|
- if (position && rotation && lastPosition && lastRotation) {
|
|
|
|
- if (compareCoordinates(position, lastPosition, delta) || Math.abs(rotation.y - lastRotation.y) > delta) {
|
|
|
|
- console.log("not equal!!")
|
|
|
|
- self.kernel.callMethod(avatarName, "followAvatarControl", [position, rotation]);
|
|
|
|
|
|
+
|
|
|
|
+ // compareCoordinates(position, lastPosition, delta)
|
|
|
|
+
|
|
|
|
+ if(position && lastPosition ) {
|
|
|
|
+ let distance = lastPosition.distanceTo(position);
|
|
|
|
+
|
|
|
|
+ if (distance > delta)
|
|
|
|
+ {
|
|
|
|
+ console.log("position not equal");
|
|
|
|
+ self.kernel.setProperty(avatarName, "position", position);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (rotation && lastRotation) {
|
|
|
|
+ let distance = Math.abs(rotation.y - lastRotation.y);
|
|
|
|
+ if ( distance > delta) {
|
|
|
|
+ console.log("rotation not equal")
|
|
|
|
+ self.kernel.callMethod(avatarName, "updateAvatarRotation", [rotation]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
self.nodes[avatarName].selfTickRotation = Object.assign({}, rotation);
|
|
self.nodes[avatarName].selfTickRotation = Object.assign({}, rotation);
|
|
- self.nodes[avatarName].selfTickPosition = Object.assign({}, position);
|
|
|
|
|
|
+ //self.nodes[avatarName].selfTickPosition = Object.assign({}, position);
|
|
|
|
+ self.nodes[avatarName].selfTickPosition = position.clone();
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -706,7 +728,7 @@ define(["module", "vwf/view"], function (module, view) {
|
|
function updateHandControllerVR(aName, aSelector) {
|
|
function updateHandControllerVR(aName, aSelector) {
|
|
//let avatarName = 'avatar-' + self.kernel.moniker();
|
|
//let avatarName = 'avatar-' + self.kernel.moniker();
|
|
|
|
|
|
- let delta = 0.0001
|
|
|
|
|
|
+ let delta = 0.001
|
|
|
|
|
|
let avatarName = aName + self.kernel.moniker();
|
|
let avatarName = aName + self.kernel.moniker();
|
|
var node = self.state.nodes[avatarName];
|
|
var node = self.state.nodes[avatarName];
|
|
@@ -721,29 +743,49 @@ define(["module", "vwf/view"], function (module, view) {
|
|
// el.object3D.getWorldPosition(position);
|
|
// el.object3D.getWorldPosition(position);
|
|
// let rotation = getWorldRotation(el, 'XYZ');
|
|
// let rotation = getWorldRotation(el, 'XYZ');
|
|
|
|
|
|
- let position = el.getAttribute('position');
|
|
|
|
- let rotation = el.getAttribute('rotation');
|
|
|
|
-
|
|
|
|
|
|
+ // let position = el.getAttribute('position');
|
|
|
|
+ // let rotation = el.getAttribute('rotation');
|
|
|
|
|
|
- //let rotation = el.getAttribute('rotation');
|
|
|
|
|
|
+ let position = el.object3D.position;
|
|
|
|
+ let rotation = el.getAttribute('rotation'); //getWorldRotation(el, 'YXZ');
|
|
|
|
|
|
let lastRotation = self.nodes[avatarName].selfTickRotation;
|
|
let lastRotation = self.nodes[avatarName].selfTickRotation;
|
|
- let lastPosition = self.nodes[avatarName].selfTickPosition;
|
|
|
|
|
|
+ let lastPosition = self.nodes[avatarName].selfTickPosition ? self.nodes[avatarName].selfTickPosition: new THREE.Vector3(0, 0, 0);
|
|
|
|
|
|
// let currentPosition = node.aframeObj.getAttribute('position');
|
|
// let currentPosition = node.aframeObj.getAttribute('position');
|
|
//let currentRotation = node.aframeObj.getAttribute('rotation');
|
|
//let currentRotation = node.aframeObj.getAttribute('rotation');
|
|
|
|
|
|
- if (position && rotation && lastRotation && lastPosition) {
|
|
|
|
- if (compareCoordinates(position, lastPosition, delta) || compareCoordinates(rotation, lastRotation, delta)) {
|
|
|
|
- console.log("not equal!!");
|
|
|
|
- vwf_view.kernel.callMethod(avatarName, "updateVRControl", [position, rotation]);
|
|
|
|
|
|
+ if (position && lastPosition) {
|
|
|
|
+ let distance = lastPosition.distanceTo(position);
|
|
|
|
+
|
|
|
|
+ if (distance > delta)
|
|
|
|
+ {
|
|
|
|
+ console.log("position not equal");
|
|
|
|
+ self.kernel.setProperty(avatarName, "position", position);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (rotation && lastRotation) {
|
|
|
|
+ let distance = compareCoordinates(rotation, lastRotation, delta)
|
|
|
|
+
|
|
|
|
+ if (distance)
|
|
|
|
+ {
|
|
|
|
+ console.log("rotation not equal");
|
|
|
|
+ self.kernel.setProperty(avatarName, "rotation", rotation);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // if (position && rotation && lastRotation && lastPosition) {
|
|
|
|
+ // if (compareCoordinates(position, lastPosition, delta) || compareCoordinates(rotation, lastRotation, delta)) {
|
|
|
|
+ // console.log("not equal!!");
|
|
|
|
+ // vwf_view.kernel.callMethod(avatarName, "updateVRControl", [position, rotation]);
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
|
|
//vwf_view.kernel.callMethod(avatarName, "updateVRControl", [position, rotation]);
|
|
//vwf_view.kernel.callMethod(avatarName, "updateVRControl", [position, rotation]);
|
|
|
|
|
|
- self.nodes[avatarName].selfTickPosition = Object.assign({}, position);
|
|
|
|
|
|
+ self.nodes[avatarName].selfTickPosition = position.clone();
|
|
self.nodes[avatarName].selfTickRotation = Object.assign({}, rotation);
|
|
self.nodes[avatarName].selfTickRotation = Object.assign({}, rotation);
|
|
|
|
|
|
}
|
|
}
|