From 0f45dc185e22c605a6dce8fc19c341ddb9fae40c Mon Sep 17 00:00:00 2001 From: Sandro Weber <webers@in.tum.de> Date: Tue, 7 Jul 2020 07:47:59 +0000 Subject: [PATCH] =?UTF-8?q?Fusion=20effectu=C3=A9e=20NRRPLT-7881-avatar-mo?= =?UTF-8?q?de-is-broken=20(pull=20request=20#38)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [NRRPLT-7881] quick adjustment * [NRRPLT-7881] quick adjustment Approuvé par : Manos Angelidis Approuvé par : Michael Zechmair --- gz3d/client/js/include/avatar-controls.js | 71 ++++++++++++----------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/gz3d/client/js/include/avatar-controls.js b/gz3d/client/js/include/avatar-controls.js index 5d51035..07bb4aa 100644 --- a/gz3d/client/js/include/avatar-controls.js +++ b/gz3d/client/js/include/avatar-controls.js @@ -5,7 +5,7 @@ /* global THREE: true */ /* global console: false */ -THREE.AvatarControls = function(userNavigationService, gz3d) { +THREE.AvatarControls = function (userNavigationService, gz3d) { 'use strict'; var that = this; @@ -83,7 +83,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { this.avatarRotation = new THREE.Quaternion(); - this.init = function(avatar, camera) { + this.init = function (avatar, camera) { this.avatar = avatar; this.camera = camera; @@ -94,9 +94,9 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { this.camera.updateMatrixWorld(); }; - this.createAvatarTopics = function(avatarName) { + this.createAvatarTopics = function (avatarName) { this.linearVelocityTopicName = - '/' + avatarName + '/user_avatar_basic/body/cmd_vel'; + '/' + avatarName + '/user_avatar_basic/body/linear_vel'; this.linearVelocityTopic = this.userNavigationService.roslib.createTopic( this.rosConnection, this.linearVelocityTopicName, @@ -111,7 +111,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { ); }; - this.onMouseDown = function(event) { + this.onMouseDown = function (event) { // HBP-NRP: The next three lines are commented since this leads to problems in chrome with respect // to AngularJS, also see: [NRRPLT-1992] //if (this.domElementPointerBindings !== document) { @@ -137,7 +137,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { } }; - this.onMouseUp = function(event) { + this.onMouseUp = function (event) { event.preventDefault(); // We do not stop the event propagation here, since there may be other @@ -158,7 +158,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { } }; - this.onMouseMove = function(event) { + this.onMouseMove = function (event) { // only update the position, when a mouse button is pressed // else end the lookAround-mode @@ -173,7 +173,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { } }; - this.onTouchStart = function(event) { + this.onTouchStart = function (event) { switch (event.touches.length) { case 1: // look around @@ -220,7 +220,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { } }; - this.onTouchMove = function(event) { + this.onTouchMove = function (event) { event.preventDefault(); switch (event.touches.length) { case 1: @@ -289,7 +289,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { } }; - this.onTouchEnd = function(event) { + this.onTouchEnd = function (event) { switch (event.touches.length) { case 0: that.endLookAround(); @@ -302,14 +302,14 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { } }; - this.endLookAround = function() { + this.endLookAround = function () { this.mouseRotationEnabled = false; this.touchRotationEnabled = false; this.azimuthOnRotStart = this.azimuth; this.zenithOnRotStart = this.zenith; }; - this.endMovement = function() { + this.endMovement = function () { this.moveForward = false; this.moveBackward = false; this.moveRight = false; @@ -318,7 +318,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { this.moveDown = false; }; - this.onKeyDown = function(event) { + this.onKeyDown = function (event) { if ( that.keyboardBindingsEnabled === false || event.metaKey || @@ -371,7 +371,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { event.preventDefault(); }; - this.onKeyUp = function(event) { + this.onKeyUp = function (event) { if (that.keyboardBindingsEnabled === false) { return; } @@ -431,7 +431,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { event.preventDefault(); }; - this.keyboardRotate = function(rightAmount, upAmount) { + this.keyboardRotate = function (rightAmount, upAmount) { // rotate left/right // rotation happens around the world up axis so up remains up (no upside-down) this.azimuth += rightAmount; @@ -446,7 +446,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { * @param position * @param lookAt */ - this.applyPose = function(position, lookAt) { + this.applyPose = function (position, lookAt) { this.applyPosePosition = position; this.applyPoseLookAt = lookAt; this.applyPoseDuringUpdate = true; @@ -457,7 +457,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { * @param position THREE.Vector3 position * @param lookAt THREE.Vector3 point to look at (world coordinates) */ - this.setPose = function(position, lookAt) { + this.setPose = function (position, lookAt) { if ( !(position instanceof THREE.Vector3) || !(lookAt instanceof THREE.Vector3) @@ -477,7 +477,8 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { } // update orientation - var camWorldPosition = this.camera.getWorldPosition(); + let camWorldPosition = new THREE.Vector3(); + this.camera.getWorldPosition(camWorldPosition); var vecForward = new THREE.Vector3() .add(lookAt) .sub(camWorldPosition) @@ -490,11 +491,11 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { * @param position THREE.Vector3 position in space * @returns {*} */ - this.projectOntoGround = function(position) { + this.projectOntoGround = function (position) { var that = this; - var isObjectPartOfAvatar = function(object) { + var isObjectPartOfAvatar = function (object) { var partOfAvatar = false; - object.traverseAncestors(function(node) { + object.traverseAncestors(function (node) { if (node.name && node.name === that.avatar.name) { partOfAvatar = true; } @@ -539,7 +540,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { * update spherical angles by a world forward vector * @param vecForward */ - this.updateSphericalAnglesFromForwardVector = function(vecForward) { + this.updateSphericalAnglesFromForwardVector = function (vecForward) { vecForward.normalize(); this.azimuth = Math.atan2(vecForward.y, vecForward.x) - 0.5 * Math.PI; @@ -552,7 +553,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { this.zenithOnRotStart = this.zenith; }; - this.updateSphericalAnglesFromUserInput = function( + this.updateSphericalAnglesFromUserInput = function ( timeDelta, rotationSensitivity ) { @@ -634,7 +635,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { /** * Update avatar quaternion from current azimuth */ - this.updateAvatarRotation = function() { + this.updateAvatarRotation = function () { /*if (this.azimuth > Math.PI) { this.azimuth -= 2 * Math.PI; } else if (this.azimuth < -Math.PI) { @@ -651,12 +652,12 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { /** * Update avatar quaternion from current azimuth */ - this.publishAvatarRotation = function() { + this.publishAvatarRotation = function () { var rotationMsg = new ROSLIB.Message({ x: this.avatarRotation.x, y: this.avatarRotation.y, z: this.avatarRotation.z, - w: this.avatarRotation.w + w: this.avatarRotation.w, }); this.avatarRotationTopic.publish(rotationMsg); @@ -665,7 +666,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { /** * Update camera quaternion from current azimuth and zenith */ - this.updateCameraRotation = function() { + this.updateCameraRotation = function () { var rotation = new THREE.Quaternion(); rotation.multiply( new THREE.Quaternion().setFromAxisAngle( @@ -677,7 +678,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { this.camera.updateMatrixWorld(); }; - this.updateLinearVelocity = function(delta, translationSensitivity) { + this.updateLinearVelocity = function (delta, translationSensitivity) { var speedFactor; if (this.shiftHold) { @@ -715,11 +716,11 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { this.linearVelocity.applyQuaternion(this.avatar.quaternion); }; - this.publishLinearVelocity = function() { + this.publishLinearVelocity = function () { var velocityMsg = new ROSLIB.Message({ x: this.linearVelocity.x, y: this.linearVelocity.y, - z: this.linearVelocity.z + z: this.linearVelocity.z, }); this.linearVelocityTopic.publish(velocityMsg); @@ -729,7 +730,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { * Method to be called during render cycles for updates between frames. * @param delta Time passed since last frame */ - this.update = function(delta, translationSensitivity, rotationSensitivity) { + this.update = function (delta, translationSensitivity, rotationSensitivity) { if (!this.enabled) { if (this.mouseRotationEnabled || this.touchRotationEnabled) { this.endLookAround(); @@ -766,15 +767,15 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { this.updateCameraRotation(); }; - this.onMouseDownManipulator = function(action) { + this.onMouseDownManipulator = function (action) { this[action] = true; }; - this.onMouseUpManipulator = function(action) { + this.onMouseUpManipulator = function (action) { this[action] = false; }; - this.attachEventListeners = function() { + this.attachEventListeners = function () { var userViewDOM = this.gz3d.scene.viewManager.mainUserView.container; this.domElementPointerBindings = userViewDOM ? userViewDOM : document; this.domElementKeyboardBindings = document; @@ -822,7 +823,7 @@ THREE.AvatarControls = function(userNavigationService, gz3d) { ); }; - this.detachEventListeners = function() { + this.detachEventListeners = function () { if (this.domElementPointerBindings) { this.domElementPointerBindings.removeEventListener( 'mousedown', -- GitLab