mirror of
https://github.com/overte-org/overte.git
synced 2025-08-07 04:39:51 +02:00
Merge branch 'master' of https://github.com/highfidelity/hifi into orange
This commit is contained in:
commit
9466cf9345
7 changed files with 28 additions and 22 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -46,4 +46,6 @@ libraries/audio-client/external/*/*
|
||||||
gvr-interface/assets/oculussig*
|
gvr-interface/assets/oculussig*
|
||||||
gvr-interface/libs/*
|
gvr-interface/libs/*
|
||||||
|
|
||||||
TAGS
|
# ignore files for various dev environments
|
||||||
|
TAGS
|
||||||
|
*.swp
|
||||||
|
|
|
@ -256,7 +256,7 @@ Menu::Menu() {
|
||||||
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::FullscreenMirror, Qt::Key_H, false,
|
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::FullscreenMirror, Qt::Key_H, false,
|
||||||
qApp, SLOT(cameraMenuChanged()));
|
qApp, SLOT(cameraMenuChanged()));
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::HMDTools, Qt::META | Qt::Key_H,
|
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::HMDTools, Qt::CTRL | Qt::Key_H,
|
||||||
false,
|
false,
|
||||||
dialogsManager.data(),
|
dialogsManager.data(),
|
||||||
SLOT(hmdTools(bool)));
|
SLOT(hmdTools(bool)));
|
||||||
|
|
|
@ -127,7 +127,7 @@ void MyAvatar::reset() {
|
||||||
_skeletonModel.reset();
|
_skeletonModel.reset();
|
||||||
getHead()->reset();
|
getHead()->reset();
|
||||||
|
|
||||||
_velocity = glm::vec3(0.0f);
|
_targetVelocity = glm::vec3(0.0f);
|
||||||
setThrust(glm::vec3(0.0f));
|
setThrust(glm::vec3(0.0f));
|
||||||
// Reset the pitch and roll components of the avatar's orientation, preserve yaw direction
|
// Reset the pitch and roll components of the avatar's orientation, preserve yaw direction
|
||||||
glm::vec3 eulers = safeEulerAngles(getOrientation());
|
glm::vec3 eulers = safeEulerAngles(getOrientation());
|
||||||
|
@ -1378,28 +1378,28 @@ glm::vec3 MyAvatar::applyScriptedMotor(float deltaTime, const glm::vec3& localVe
|
||||||
void MyAvatar::updatePosition(float deltaTime) {
|
void MyAvatar::updatePosition(float deltaTime) {
|
||||||
// rotate velocity into camera frame
|
// rotate velocity into camera frame
|
||||||
glm::quat rotation = getHead()->getCameraOrientation();
|
glm::quat rotation = getHead()->getCameraOrientation();
|
||||||
glm::vec3 localVelocity = glm::inverse(rotation) * _velocity;
|
glm::vec3 localVelocity = glm::inverse(rotation) * _targetVelocity;
|
||||||
|
|
||||||
bool isHovering = _characterController.isHovering();
|
bool isHovering = _characterController.isHovering();
|
||||||
glm::vec3 newLocalVelocity = applyKeyboardMotor(deltaTime, localVelocity, isHovering);
|
glm::vec3 newLocalVelocity = applyKeyboardMotor(deltaTime, localVelocity, isHovering);
|
||||||
newLocalVelocity = applyScriptedMotor(deltaTime, newLocalVelocity);
|
newLocalVelocity = applyScriptedMotor(deltaTime, newLocalVelocity);
|
||||||
|
|
||||||
// rotate back into world-frame
|
// rotate back into world-frame
|
||||||
_velocity = rotation * newLocalVelocity;
|
_targetVelocity = rotation * newLocalVelocity;
|
||||||
|
|
||||||
_velocity += _thrust * deltaTime;
|
_targetVelocity += _thrust * deltaTime;
|
||||||
_thrust = glm::vec3(0.0f);
|
_thrust = glm::vec3(0.0f);
|
||||||
|
|
||||||
// cap avatar speed
|
// cap avatar speed
|
||||||
float speed = glm::length(_velocity);
|
float speed = glm::length(_targetVelocity);
|
||||||
if (speed > MAX_AVATAR_SPEED) {
|
if (speed > MAX_AVATAR_SPEED) {
|
||||||
_velocity *= MAX_AVATAR_SPEED / speed;
|
_targetVelocity *= MAX_AVATAR_SPEED / speed;
|
||||||
speed = MAX_AVATAR_SPEED;
|
speed = MAX_AVATAR_SPEED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (speed > MIN_AVATAR_SPEED && !_characterController.isEnabled()) {
|
if (speed > MIN_AVATAR_SPEED && !_characterController.isEnabled()) {
|
||||||
// update position ourselves
|
// update position ourselves
|
||||||
applyPositionDelta(deltaTime * _velocity);
|
applyPositionDelta(deltaTime * _targetVelocity);
|
||||||
measureMotionDerivatives(deltaTime);
|
measureMotionDerivatives(deltaTime);
|
||||||
} // else physics will move avatar later
|
} // else physics will move avatar later
|
||||||
|
|
||||||
|
|
|
@ -117,21 +117,21 @@ public:
|
||||||
virtual void clearJointData(int index);
|
virtual void clearJointData(int index);
|
||||||
virtual void clearJointsData();
|
virtual void clearJointsData();
|
||||||
|
|
||||||
void useFullAvatarURL(const QUrl& fullAvatarURL, const QString& modelName = QString());
|
Q_INVOKABLE void useFullAvatarURL(const QUrl& fullAvatarURL, const QString& modelName = QString());
|
||||||
void useHeadURL(const QUrl& headURL, const QString& modelName = QString());
|
Q_INVOKABLE void useHeadURL(const QUrl& headURL, const QString& modelName = QString());
|
||||||
void useBodyURL(const QUrl& bodyURL, const QString& modelName = QString());
|
Q_INVOKABLE void useBodyURL(const QUrl& bodyURL, const QString& modelName = QString());
|
||||||
void useHeadAndBodyURLs(const QUrl& headURL, const QUrl& bodyURL, const QString& headName = QString(), const QString& bodyName = QString());
|
Q_INVOKABLE void useHeadAndBodyURLs(const QUrl& headURL, const QUrl& bodyURL, const QString& headName = QString(), const QString& bodyName = QString());
|
||||||
|
|
||||||
bool getUseFullAvatar() const { return _useFullAvatar; }
|
Q_INVOKABLE bool getUseFullAvatar() const { return _useFullAvatar; }
|
||||||
const QUrl& getFullAvatarURLFromPreferences() const { return _fullAvatarURLFromPreferences; }
|
Q_INVOKABLE const QUrl& getFullAvatarURLFromPreferences() const { return _fullAvatarURLFromPreferences; }
|
||||||
const QUrl& getHeadURLFromPreferences() const { return _headURLFromPreferences; }
|
Q_INVOKABLE const QUrl& getHeadURLFromPreferences() const { return _headURLFromPreferences; }
|
||||||
const QUrl& getBodyURLFromPreferences() const { return _skeletonURLFromPreferences; }
|
Q_INVOKABLE const QUrl& getBodyURLFromPreferences() const { return _skeletonURLFromPreferences; }
|
||||||
|
|
||||||
const QString& getHeadModelName() const { return _headModelName; }
|
Q_INVOKABLE const QString& getHeadModelName() const { return _headModelName; }
|
||||||
const QString& getBodyModelName() const { return _bodyModelName; }
|
Q_INVOKABLE const QString& getBodyModelName() const { return _bodyModelName; }
|
||||||
const QString& getFullAvartarModelName() const { return _fullAvatarModelName; }
|
Q_INVOKABLE const QString& getFullAvartarModelName() const { return _fullAvatarModelName; }
|
||||||
|
|
||||||
QString getModelDescription() const;
|
Q_INVOKABLE QString getModelDescription() const;
|
||||||
|
|
||||||
virtual void setAttachmentData(const QVector<AttachmentData>& attachmentData);
|
virtual void setAttachmentData(const QVector<AttachmentData>& attachmentData);
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,7 @@ AvatarData::AvatarData() :
|
||||||
_owningAvatarMixer(),
|
_owningAvatarMixer(),
|
||||||
_lastUpdateTimer(),
|
_lastUpdateTimer(),
|
||||||
_velocity(0.0f),
|
_velocity(0.0f),
|
||||||
|
_targetVelocity(0.0f),
|
||||||
_localAABox(DEFAULT_LOCAL_AABOX_CORNER, DEFAULT_LOCAL_AABOX_SCALE)
|
_localAABox(DEFAULT_LOCAL_AABOX_CORNER, DEFAULT_LOCAL_AABOX_SCALE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -296,6 +296,7 @@ public:
|
||||||
|
|
||||||
void setVelocity(const glm::vec3 velocity) { _velocity = velocity; }
|
void setVelocity(const glm::vec3 velocity) { _velocity = velocity; }
|
||||||
Q_INVOKABLE glm::vec3 getVelocity() const { return _velocity; }
|
Q_INVOKABLE glm::vec3 getVelocity() const { return _velocity; }
|
||||||
|
glm::vec3 getTargetVelocity() const { return _targetVelocity; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void sendAvatarDataPacket();
|
void sendAvatarDataPacket();
|
||||||
|
@ -386,6 +387,7 @@ protected:
|
||||||
void changeReferential(Referential* ref);
|
void changeReferential(Referential* ref);
|
||||||
|
|
||||||
glm::vec3 _velocity;
|
glm::vec3 _velocity;
|
||||||
|
glm::vec3 _targetVelocity;
|
||||||
|
|
||||||
AABox _localAABox;
|
AABox _localAABox;
|
||||||
|
|
||||||
|
|
|
@ -386,7 +386,7 @@ void DynamicCharacterController::preSimulation(btScalar timeStep) {
|
||||||
setHovering(true);
|
setHovering(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
_walkVelocity = glmToBullet(_avatarData->getVelocity());
|
_walkVelocity = glmToBullet(_avatarData->getTargetVelocity());
|
||||||
|
|
||||||
if (_pendingFlags & PENDING_FLAG_JUMP) {
|
if (_pendingFlags & PENDING_FLAG_JUMP) {
|
||||||
_pendingFlags &= ~ PENDING_FLAG_JUMP;
|
_pendingFlags &= ~ PENDING_FLAG_JUMP;
|
||||||
|
@ -408,6 +408,7 @@ void DynamicCharacterController::postSimulation() {
|
||||||
|
|
||||||
_avatarData->setOrientation(rotation);
|
_avatarData->setOrientation(rotation);
|
||||||
_avatarData->setPosition(position - rotation * _shapeLocalOffset);
|
_avatarData->setPosition(position - rotation * _shapeLocalOffset);
|
||||||
|
_avatarData->setVelocity(bulletToGLM(_rigidBody->getLinearVelocity()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue