mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 07:17:43 +02:00
Modified MyAvatar to support more JS
This commit is contained in:
parent
d239aecbfb
commit
39a6e03476
3 changed files with 5 additions and 4 deletions
|
@ -1680,7 +1680,7 @@ void Application::updateMyAvatarLookAtPosition() {
|
||||||
} else {
|
} else {
|
||||||
// look in direction of the mouse ray, but use distance from intersection, if any
|
// look in direction of the mouse ray, but use distance from intersection, if any
|
||||||
float distance = TREE_SCALE;
|
float distance = TREE_SCALE;
|
||||||
if (_myAvatar->getLookAtTargetAvatar()) {
|
if (_myAvatar->getLookAtTargetAvatar() && _myAvatar != _myAvatar->getLookAtTargetAvatar()) {
|
||||||
distance = glm::distance(_mouseRayOrigin,
|
distance = glm::distance(_mouseRayOrigin,
|
||||||
static_cast<Avatar*>(_myAvatar->getLookAtTargetAvatar())->getHead()->calculateAverageEyePosition());
|
static_cast<Avatar*>(_myAvatar->getLookAtTargetAvatar())->getHead()->calculateAverageEyePosition());
|
||||||
}
|
}
|
||||||
|
|
|
@ -587,16 +587,15 @@ void MyAvatar::updateLookAtTargetAvatar() {
|
||||||
|
|
||||||
foreach (const AvatarSharedPointer& avatarPointer, Application::getInstance()->getAvatarManager().getAvatarHash()) {
|
foreach (const AvatarSharedPointer& avatarPointer, Application::getInstance()->getAvatarManager().getAvatarHash()) {
|
||||||
Avatar* avatar = static_cast<Avatar*>(avatarPointer.data());
|
Avatar* avatar = static_cast<Avatar*>(avatarPointer.data());
|
||||||
if (avatar == static_cast<Avatar*>(this)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
float distance;
|
float distance;
|
||||||
if (avatar->findRayIntersection(mouseOrigin, mouseDirection, distance)) {
|
if (avatar->findRayIntersection(mouseOrigin, mouseDirection, distance)) {
|
||||||
_lookAtTargetAvatar = avatarPointer;
|
_lookAtTargetAvatar = avatarPointer;
|
||||||
|
_targetAvatarPosition = avatarPointer->getPosition();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_lookAtTargetAvatar.clear();
|
_lookAtTargetAvatar.clear();
|
||||||
|
_targetAvatarPosition = glm::vec3(0, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,7 @@ public:
|
||||||
|
|
||||||
void orbit(const glm::vec3& position, int deltaX, int deltaY);
|
void orbit(const glm::vec3& position, int deltaX, int deltaY);
|
||||||
|
|
||||||
|
Q_INVOKABLE glm::vec3 getTargetAvatarPosition() const { return _targetAvatarPosition; }
|
||||||
AvatarData* getLookAtTargetAvatar() const { return _lookAtTargetAvatar.data(); }
|
AvatarData* getLookAtTargetAvatar() const { return _lookAtTargetAvatar.data(); }
|
||||||
void updateLookAtTargetAvatar();
|
void updateLookAtTargetAvatar();
|
||||||
void clearLookAtTargetAvatar();
|
void clearLookAtTargetAvatar();
|
||||||
|
@ -116,6 +117,7 @@ private:
|
||||||
glm::vec3 _moveTarget;
|
glm::vec3 _moveTarget;
|
||||||
int _moveTargetStepCounter;
|
int _moveTargetStepCounter;
|
||||||
QWeakPointer<AvatarData> _lookAtTargetAvatar;
|
QWeakPointer<AvatarData> _lookAtTargetAvatar;
|
||||||
|
glm::vec3 _targetAvatarPosition;
|
||||||
bool _shouldRender;
|
bool _shouldRender;
|
||||||
|
|
||||||
bool _billboardValid;
|
bool _billboardValid;
|
||||||
|
|
Loading…
Reference in a new issue