Modified MyAvatar to support more JS

This commit is contained in:
Atlante45 2014-03-20 12:09:33 -07:00
parent d239aecbfb
commit 39a6e03476
3 changed files with 5 additions and 4 deletions

View file

@ -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());
} }

View file

@ -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);
} }
} }

View file

@ -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;