mirror of
https://github.com/overte-org/overte.git
synced 2025-04-12 10:42:10 +02:00
Update bow strings to be updated after getting the hand position
This commit is contained in:
parent
72da30e5bd
commit
8bbf3e8d89
1 changed files with 9 additions and 34 deletions
|
@ -399,20 +399,10 @@ getControllerWorldLocation = function (handController, doOffset) {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getLocalLineVectors: function() {
|
|
||||||
var topVector = Vec3.subtract(this.arrowRearPosition, this.topStringPosition);
|
|
||||||
var bottomVector = Vec3.subtract(this.bottomStringPosition, this.topStringPosition);
|
|
||||||
return [topVector, bottomVector];
|
|
||||||
},
|
|
||||||
|
|
||||||
getControllerLocation: function (controllerHand) {
|
getControllerLocation: function (controllerHand) {
|
||||||
var standardControllerValue =
|
var standardControllerValue =
|
||||||
(controllerHand === "right") ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
(controllerHand === "right") ? Controller.Standard.RightHand : Controller.Standard.LeftHand;
|
||||||
return getControllerWorldLocation(standardControllerValue, true);
|
return getControllerWorldLocation(standardControllerValue, true);
|
||||||
var pose = Controller.getPoseValue(standardControllerValue);
|
|
||||||
var orientation = Quat.multiply(MyAvatar.orientation, pose.rotation);
|
|
||||||
var position = Vec3.sum(Vec3.multiplyQbyV(MyAvatar.orientation, pose.translation), MyAvatar.position);
|
|
||||||
return {position: position, orientation: orientation};
|
|
||||||
},
|
},
|
||||||
|
|
||||||
checkStringHand: function() {
|
checkStringHand: function() {
|
||||||
|
@ -452,8 +442,8 @@ getControllerWorldLocation = function (handController, doOffset) {
|
||||||
this.pullBackDistance = 0;
|
this.pullBackDistance = 0;
|
||||||
this.state = STATE_ARROW_GRABBED;
|
this.state = STATE_ARROW_GRABBED;
|
||||||
} else {
|
} else {
|
||||||
this.updateString();
|
|
||||||
this.updateArrowPositionInNotch(false, false);
|
this.updateArrowPositionInNotch(false, false);
|
||||||
|
this.updateString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.state === STATE_ARROW_GRABBED) {
|
if (this.state === STATE_ARROW_GRABBED) {
|
||||||
|
@ -464,8 +454,8 @@ getControllerWorldLocation = function (handController, doOffset) {
|
||||||
// they've grabbed the arrow and pulled it
|
// they've grabbed the arrow and pulled it
|
||||||
this.state = STATE_ARROW_GRABBED_AND_PULLED;
|
this.state = STATE_ARROW_GRABBED_AND_PULLED;
|
||||||
} else {
|
} else {
|
||||||
this.updateString();
|
|
||||||
this.updateArrowPositionInNotch(false, true);
|
this.updateArrowPositionInNotch(false, true);
|
||||||
|
this.updateString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.state === STATE_ARROW_GRABBED_AND_PULLED) {
|
if (this.state === STATE_ARROW_GRABBED_AND_PULLED) {
|
||||||
|
@ -479,21 +469,12 @@ getControllerWorldLocation = function (handController, doOffset) {
|
||||||
this.state = STATE_IDLE;
|
this.state = STATE_IDLE;
|
||||||
this.resetStringToIdlePosition();
|
this.resetStringToIdlePosition();
|
||||||
} else {
|
} else {
|
||||||
this.updateString();
|
|
||||||
this.updateArrowPositionInNotch(false, true);
|
this.updateArrowPositionInNotch(false, true);
|
||||||
|
this.updateString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
setArrowRearPosition: function(arrowPosition, arrowRotation) {
|
|
||||||
var frontVector = Quat.getFront(arrowRotation);
|
|
||||||
var frontOffset = Vec3.multiply(frontVector, -ARROW_TIP_OFFSET);
|
|
||||||
var arrorRearPosition = Vec3.sum(arrowPosition, frontOffset);
|
|
||||||
this.arrowRearPosition = arrorRearPosition;
|
|
||||||
return arrorRearPosition;
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
getNotchPosition: function(bowProperties) {
|
getNotchPosition: function(bowProperties) {
|
||||||
var frontVector = Quat.getFront(bowProperties.rotation);
|
var frontVector = Quat.getFront(bowProperties.rotation);
|
||||||
var notchVectorForward = Vec3.multiply(frontVector, NOTCH_OFFSET_FORWARD);
|
var notchVectorForward = Vec3.multiply(frontVector, NOTCH_OFFSET_FORWARD);
|
||||||
|
@ -526,20 +507,14 @@ getControllerWorldLocation = function (handController, doOffset) {
|
||||||
pullBackDistance = DRAW_STRING_MAX_DRAW;
|
pullBackDistance = DRAW_STRING_MAX_DRAW;
|
||||||
}
|
}
|
||||||
|
|
||||||
// //pull the arrow back a bit
|
|
||||||
// var pullBackOffset = Vec3.multiply(handToNotch, -pullBackDistance);
|
|
||||||
// var arrowPosition = Vec3.sum(notchPosition, pullBackOffset);
|
|
||||||
|
|
||||||
// // // move it forward a bit
|
|
||||||
// var pushForwardOffset = Vec3.multiply(handToNotch, -ARROW_OFFSET);
|
|
||||||
// var finalArrowPosition = Vec3.sum(arrowPosition, pushForwardOffset);
|
|
||||||
|
|
||||||
//we draw strings to the rear of the arrow
|
|
||||||
// this.setArrowRearPosition(finalArrowPosition, arrowRotation);
|
|
||||||
|
|
||||||
var halfArrowVec = Vec3.multiply(Vec3.normalize(handToNotch), ARROW_DIMENSIONS.z / 2.0);
|
var halfArrowVec = Vec3.multiply(Vec3.normalize(handToNotch), ARROW_DIMENSIONS.z / 2.0);
|
||||||
var arrowPosition = Vec3.sum(stringHandPosition, halfArrowVec);
|
var arrowPosition = Vec3.sum(stringHandPosition, halfArrowVec);
|
||||||
this.setArrowRearPosition(arrowPosition, arrowRotation);
|
|
||||||
|
// Set arrow rear position
|
||||||
|
var frontVector = Quat.getFront(arrowRotation);
|
||||||
|
var frontOffset = Vec3.multiply(frontVector, -ARROW_TIP_OFFSET);
|
||||||
|
var arrorRearPosition = Vec3.sum(arrowPosition, frontOffset);
|
||||||
|
this.arrowRearPosition = arrorRearPosition;
|
||||||
|
|
||||||
//if we're not shooting, we're updating the arrow's orientation
|
//if we're not shooting, we're updating the arrow's orientation
|
||||||
if (shouldReleaseArrow !== true) {
|
if (shouldReleaseArrow !== true) {
|
||||||
|
|
Loading…
Reference in a new issue