mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 05:23:33 +02:00
cleanup
This commit is contained in:
parent
f73d974ad7
commit
67afc86222
6 changed files with 60 additions and 19 deletions
|
@ -253,6 +253,7 @@ Rectangle {
|
||||||
dominantHand : settings.dominantHandIsLeft ? 'left' : 'right',
|
dominantHand : settings.dominantHandIsLeft ? 'left' : 'right',
|
||||||
collisionsEnabled : settings.avatarCollisionsOn,
|
collisionsEnabled : settings.avatarCollisionsOn,
|
||||||
sittingEnabled : settings.avatarSittingOn,
|
sittingEnabled : settings.avatarSittingOn,
|
||||||
|
lockStateEnabled : settings.avatarLockSitStandStateOn,
|
||||||
animGraphOverrideUrl : settings.avatarAnimationOverrideJSON,
|
animGraphOverrideUrl : settings.avatarAnimationOverrideJSON,
|
||||||
collisionSoundUrl : settings.avatarCollisionSoundUrl
|
collisionSoundUrl : settings.avatarCollisionSoundUrl
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,6 +21,7 @@ Rectangle {
|
||||||
property alias dominantHandIsLeft: leftHandRadioButton.checked
|
property alias dominantHandIsLeft: leftHandRadioButton.checked
|
||||||
property alias avatarCollisionsOn: collisionsEnabledRadiobutton.checked
|
property alias avatarCollisionsOn: collisionsEnabledRadiobutton.checked
|
||||||
property alias avatarSittingOn: sitRadiobutton.checked
|
property alias avatarSittingOn: sitRadiobutton.checked
|
||||||
|
property alias avatarLockSitStandStateOn: lockSitStandStateCheckbox.checked
|
||||||
property alias avatarAnimationOverrideJSON: avatarAnimationUrlInputText.text
|
property alias avatarAnimationOverrideJSON: avatarAnimationUrlInputText.text
|
||||||
property alias avatarAnimationJSON: avatarAnimationUrlInputText.placeholderText
|
property alias avatarAnimationJSON: avatarAnimationUrlInputText.placeholderText
|
||||||
property alias avatarCollisionSoundUrl: avatarCollisionSoundUrlInputText.text
|
property alias avatarCollisionSoundUrl: avatarCollisionSoundUrlInputText.text
|
||||||
|
@ -52,6 +53,12 @@ Rectangle {
|
||||||
standRadioButton.checked = true;
|
standRadioButton.checked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (settings.lockStateEnabled) {
|
||||||
|
lockSitStandStateCheckbox.checked = true;
|
||||||
|
} else {
|
||||||
|
lockSitStandStateCheckbox.checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
avatarAnimationJSON = settings.animGraphUrl;
|
avatarAnimationJSON = settings.animGraphUrl;
|
||||||
avatarAnimationOverrideJSON = settings.animGraphOverrideUrl;
|
avatarAnimationOverrideJSON = settings.animGraphOverrideUrl;
|
||||||
avatarCollisionSoundUrl = settings.collisionSoundUrl;
|
avatarCollisionSoundUrl = settings.collisionSoundUrl;
|
||||||
|
@ -343,6 +350,18 @@ Rectangle {
|
||||||
text: "Stand"
|
text: "Stand"
|
||||||
boxSize: 20
|
boxSize: 20
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// "Lock State" Checkbox
|
||||||
|
|
||||||
|
HifiControlsUit.CheckBox {
|
||||||
|
id: lockSitStandStateCheckbox;
|
||||||
|
visible: activeTab == "nearbyTab";
|
||||||
|
anchors.right: reloadNearbyContainer.left;
|
||||||
|
anchors.rightMargin: 20;
|
||||||
|
checked: settings.lockStateEnabled;
|
||||||
|
text: "lock";
|
||||||
|
boxSize: 24;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
|
|
@ -531,7 +531,7 @@ void MyAvatar::update(float deltaTime) {
|
||||||
glm::vec3 sensorHips = transformPoint(glm::inverse(getSensorToWorldMatrix()), worldHips);
|
glm::vec3 sensorHips = transformPoint(glm::inverse(getSensorToWorldMatrix()), worldHips);
|
||||||
|
|
||||||
// put update sit stand state counts here
|
// put update sit stand state counts here
|
||||||
if (!_lockSitStandState) {
|
if (getIsSitStandStateLocked()) {
|
||||||
if (getIsInSittingState()) {
|
if (getIsInSittingState()) {
|
||||||
if (newHeightReading.getTranslation().y > (STANDING_HEIGHT_MULTIPLE * _tippingPoint)) {
|
if (newHeightReading.getTranslation().y > (STANDING_HEIGHT_MULTIPLE * _tippingPoint)) {
|
||||||
// if we recenter upwards then no longer in sitting state
|
// if we recenter upwards then no longer in sitting state
|
||||||
|
@ -584,7 +584,6 @@ void MyAvatar::update(float deltaTime) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (_drawAverageFacingEnabled) {
|
if (_drawAverageFacingEnabled) {
|
||||||
auto sensorHeadPose = getControllerPoseInSensorFrame(controller::Action::HEAD);
|
auto sensorHeadPose = getControllerPoseInSensorFrame(controller::Action::HEAD);
|
||||||
glm::vec3 worldHeadPos = transformPoint(getSensorToWorldMatrix(), sensorHeadPose.getTranslation());
|
glm::vec3 worldHeadPos = transformPoint(getSensorToWorldMatrix(), sensorHeadPose.getTranslation());
|
||||||
|
@ -596,15 +595,8 @@ void MyAvatar::update(float deltaTime) {
|
||||||
// draw hand azimuth vector
|
// draw hand azimuth vector
|
||||||
glm::vec3 handAzimuthMidpoint = transformPoint(getTransform().getMatrix(), glm::vec3(_hipToHandController.x, 0.0f, _hipToHandController.y));
|
glm::vec3 handAzimuthMidpoint = transformPoint(getTransform().getMatrix(), glm::vec3(_hipToHandController.x, 0.0f, _hipToHandController.y));
|
||||||
DebugDraw::getInstance().drawRay(getWorldPosition(), handAzimuthMidpoint, glm::vec4(0.0f, 1.0f, 1.0f, 1.0f));
|
DebugDraw::getInstance().drawRay(getWorldPosition(), handAzimuthMidpoint, glm::vec4(0.0f, 1.0f, 1.0f, 1.0f));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// temp: draw spine 2 position for hand azimuth purposes.
|
|
||||||
int spine2Index = getJointIndex("Spine2");
|
|
||||||
glm::vec3 spine2WorldPosition = transformPoint(getTransform().getMatrix(), getAbsoluteJointTranslationInObjectFrame(spine2Index));
|
|
||||||
DebugDraw::getInstance().addMarker("spine2 location", Quaternions::IDENTITY, spine2WorldPosition, glm::vec4(1));
|
|
||||||
|
|
||||||
if (_goToPending) {
|
if (_goToPending) {
|
||||||
setWorldPosition(_goToPosition);
|
setWorldPosition(_goToPosition);
|
||||||
setWorldOrientation(_goToOrientation);
|
setWorldOrientation(_goToOrientation);
|
||||||
|
@ -949,8 +941,6 @@ glm::vec2 MyAvatar::computeHandAzimuth() const {
|
||||||
if (!(spine2Index < 0)) {
|
if (!(spine2Index < 0)) {
|
||||||
// use the spine for the azimuth origin.
|
// use the spine for the azimuth origin.
|
||||||
azimuthOrigin = getAbsoluteJointTranslationInObjectFrame(spine2Index);
|
azimuthOrigin = getAbsoluteJointTranslationInObjectFrame(spine2Index);
|
||||||
} else {
|
|
||||||
// use the avatar root as the azimuth origin.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
controller::Pose leftHandPoseAvatarSpace = getLeftHandPose();
|
controller::Pose leftHandPoseAvatarSpace = getLeftHandPose();
|
||||||
|
@ -3882,6 +3872,10 @@ bool MyAvatar::getIsInSittingState() const {
|
||||||
return _isInSittingState.get();
|
return _isInSittingState.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool MyAvatar::getIsSitStandStateLocked() const {
|
||||||
|
return _lockSitStandState.get();
|
||||||
|
}
|
||||||
|
|
||||||
float MyAvatar::getWalkSpeed() const {
|
float MyAvatar::getWalkSpeed() const {
|
||||||
return _walkSpeed.get() * _walkSpeedScalar;
|
return _walkSpeed.get() * _walkSpeedScalar;
|
||||||
}
|
}
|
||||||
|
@ -3907,6 +3901,11 @@ void MyAvatar::setIsInSittingState(bool isSitting) {
|
||||||
emit sittingEnabledChanged(isSitting);
|
emit sittingEnabledChanged(isSitting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyAvatar::setIsSitStandStateLocked(bool isLocked) {
|
||||||
|
_lockSitStandState.set(isLocked);
|
||||||
|
emit sitStandStateLockEnabledChanged(isLocked);
|
||||||
|
}
|
||||||
|
|
||||||
void MyAvatar::setWalkSpeed(float value) {
|
void MyAvatar::setWalkSpeed(float value) {
|
||||||
_walkSpeed.set(value);
|
_walkSpeed.set(value);
|
||||||
}
|
}
|
||||||
|
@ -4152,7 +4151,7 @@ bool MyAvatar::FollowHelper::shouldActivateVertical(MyAvatar& myAvatar, const gl
|
||||||
glm::vec3 offset = extractTranslation(desiredBodyMatrix) - extractTranslation(currentBodyMatrix);
|
glm::vec3 offset = extractTranslation(desiredBodyMatrix) - extractTranslation(currentBodyMatrix);
|
||||||
|
|
||||||
bool returnValue = false;
|
bool returnValue = false;
|
||||||
returnValue = (offset.y > CYLINDER_TOP);// || (offset.y < CYLINDER_BOTTOM);
|
returnValue = (offset.y > CYLINDER_TOP) || (offset.y < CYLINDER_BOTTOM);
|
||||||
|
|
||||||
if (myAvatar.getSitStandStateChange()) {
|
if (myAvatar.getSitStandStateChange()) {
|
||||||
qCDebug(interfaceapp) << "sit state change";
|
qCDebug(interfaceapp) << "sit state change";
|
||||||
|
|
|
@ -244,6 +244,7 @@ class MyAvatar : public Avatar {
|
||||||
Q_PROPERTY(float walkBackwardSpeed READ getWalkBackwardSpeed WRITE setWalkBackwardSpeed);
|
Q_PROPERTY(float walkBackwardSpeed READ getWalkBackwardSpeed WRITE setWalkBackwardSpeed);
|
||||||
Q_PROPERTY(float sprintSpeed READ getSprintSpeed WRITE setSprintSpeed);
|
Q_PROPERTY(float sprintSpeed READ getSprintSpeed WRITE setSprintSpeed);
|
||||||
Q_PROPERTY(bool isInSittingState READ getIsInSittingState WRITE setIsInSittingState);
|
Q_PROPERTY(bool isInSittingState READ getIsInSittingState WRITE setIsInSittingState);
|
||||||
|
Q_PROPERTY(bool isSitStandStateLocked READ getIsSitStandStateLocked WRITE setIsSitStandStateLocked);
|
||||||
|
|
||||||
const QString DOMINANT_LEFT_HAND = "left";
|
const QString DOMINANT_LEFT_HAND = "left";
|
||||||
const QString DOMINANT_RIGHT_HAND = "right";
|
const QString DOMINANT_RIGHT_HAND = "right";
|
||||||
|
@ -1105,6 +1106,8 @@ public:
|
||||||
bool getIsInWalkingState() const;
|
bool getIsInWalkingState() const;
|
||||||
void setIsInSittingState(bool isSitting);
|
void setIsInSittingState(bool isSitting);
|
||||||
bool getIsInSittingState() const;
|
bool getIsInSittingState() const;
|
||||||
|
void setIsSitStandStateLocked(bool isLocked);
|
||||||
|
bool getIsSitStandStateLocked() const;
|
||||||
void setWalkSpeed(float value);
|
void setWalkSpeed(float value);
|
||||||
float getWalkSpeed() const;
|
float getWalkSpeed() const;
|
||||||
void setWalkBackwardSpeed(float value);
|
void setWalkBackwardSpeed(float value);
|
||||||
|
@ -1526,6 +1529,14 @@ signals:
|
||||||
*/
|
*/
|
||||||
void sittingEnabledChanged(bool enabled);
|
void sittingEnabledChanged(bool enabled);
|
||||||
|
|
||||||
|
/**jsdoc
|
||||||
|
* Triggered when the sit state is enabled or disabled
|
||||||
|
* @function MyAvatar.sitStandStateLockEnabledChanged
|
||||||
|
* @param {boolean} enabled
|
||||||
|
* @returns {Signal}
|
||||||
|
*/
|
||||||
|
void sitStandStateLockEnabledChanged(bool enabled);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void leaveDomain();
|
void leaveDomain();
|
||||||
void updateCollisionCapsuleCache();
|
void updateCollisionCapsuleCache();
|
||||||
|
@ -1824,7 +1835,7 @@ private:
|
||||||
float _sumUserHeightSensorSpace{ DEFAULT_AVATAR_HEIGHT };
|
float _sumUserHeightSensorSpace{ DEFAULT_AVATAR_HEIGHT };
|
||||||
int _averageUserHeightCount{ 1 };
|
int _averageUserHeightCount{ 1 };
|
||||||
bool _sitStandStateChange{ false };
|
bool _sitStandStateChange{ false };
|
||||||
bool _lockSitStandState { true };
|
ThreadSafeValueCache<bool> _lockSitStandState { true };
|
||||||
|
|
||||||
// max unscaled forward movement speed
|
// max unscaled forward movement speed
|
||||||
ThreadSafeValueCache<float> _walkSpeed { DEFAULT_AVATAR_MAX_WALKING_SPEED };
|
ThreadSafeValueCache<float> _walkSpeed { DEFAULT_AVATAR_MAX_WALKING_SPEED };
|
||||||
|
|
|
@ -239,7 +239,6 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) {
|
||||||
params.primaryControllerFlags[Rig::PrimaryControllerType_Hips] = (uint8_t)Rig::ControllerFlags::Enabled | (uint8_t)Rig::ControllerFlags::Estimated;
|
params.primaryControllerFlags[Rig::PrimaryControllerType_Hips] = (uint8_t)Rig::ControllerFlags::Enabled | (uint8_t)Rig::ControllerFlags::Estimated;
|
||||||
|
|
||||||
// set spine2 if we have hand controllers
|
// set spine2 if we have hand controllers
|
||||||
// myAvatar->getHMDLeanRecenterEnabled() &&
|
|
||||||
if (myAvatar->getControllerPoseInAvatarFrame(controller::Action::RIGHT_HAND).isValid() &&
|
if (myAvatar->getControllerPoseInAvatarFrame(controller::Action::RIGHT_HAND).isValid() &&
|
||||||
myAvatar->getControllerPoseInAvatarFrame(controller::Action::LEFT_HAND).isValid() &&
|
myAvatar->getControllerPoseInAvatarFrame(controller::Action::LEFT_HAND).isValid() &&
|
||||||
!(params.primaryControllerFlags[Rig::PrimaryControllerType_Spine2] & (uint8_t)Rig::ControllerFlags::Enabled)) {
|
!(params.primaryControllerFlags[Rig::PrimaryControllerType_Spine2] & (uint8_t)Rig::ControllerFlags::Enabled)) {
|
||||||
|
@ -251,7 +250,7 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) {
|
||||||
bool headExists = _rig.getAbsoluteJointPoseInRigFrame(_rig.indexOfJoint("Head"), currentHeadPose);
|
bool headExists = _rig.getAbsoluteJointPoseInRigFrame(_rig.indexOfJoint("Head"), currentHeadPose);
|
||||||
bool hipsExists = _rig.getAbsoluteJointPoseInRigFrame(_rig.indexOfJoint("Hips"), currentHipsPose);
|
bool hipsExists = _rig.getAbsoluteJointPoseInRigFrame(_rig.indexOfJoint("Hips"), currentHipsPose);
|
||||||
if (spine2Exists && headExists && hipsExists) {
|
if (spine2Exists && headExists && hipsExists) {
|
||||||
// qCDebug(interfaceapp) << "hips forward direction "<< (currentHipsPose.rot() * glm::vec3(0.0f, 0.0f, 1.0f));
|
|
||||||
AnimPose rigSpaceYaw(myAvatar->getSpine2RotationRigSpace());
|
AnimPose rigSpaceYaw(myAvatar->getSpine2RotationRigSpace());
|
||||||
glm::vec3 u, v, w;
|
glm::vec3 u, v, w;
|
||||||
glm::vec3 fwd = rigSpaceYaw.rot() * glm::vec3(0.0f, 0.0f, 1.0f);
|
glm::vec3 fwd = rigSpaceYaw.rot() * glm::vec3(0.0f, 0.0f, 1.0f);
|
||||||
|
|
|
@ -64,7 +64,8 @@ function getMyAvatarSettings() {
|
||||||
return {
|
return {
|
||||||
dominantHand: MyAvatar.getDominantHand(),
|
dominantHand: MyAvatar.getDominantHand(),
|
||||||
collisionsEnabled : MyAvatar.getCollisionsEnabled(),
|
collisionsEnabled : MyAvatar.getCollisionsEnabled(),
|
||||||
sittingEnabled : MyAvatar.isInSittingState,
|
sittingEnabled: MyAvatar.isInSittingState,
|
||||||
|
lockStateEnabled: MyAvatar.isSitStandStateLocked,
|
||||||
collisionSoundUrl : MyAvatar.collisionSoundURL,
|
collisionSoundUrl : MyAvatar.collisionSoundURL,
|
||||||
animGraphUrl: MyAvatar.getAnimGraphUrl(),
|
animGraphUrl: MyAvatar.getAnimGraphUrl(),
|
||||||
animGraphOverrideUrl : MyAvatar.getAnimGraphOverrideUrl(),
|
animGraphOverrideUrl : MyAvatar.getAnimGraphOverrideUrl(),
|
||||||
|
@ -145,6 +146,14 @@ function onSittingEnabledChanged(isSitting) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onSitStandStateLockedEnabledChanged(isLocked) {
|
||||||
|
if (currentAvatarSettings.lockStateEnabled !== isLocked) {
|
||||||
|
currentAvatarSettings.lockStateEnabled = isLocked;
|
||||||
|
print("emit lock sit stand state changed");
|
||||||
|
sendToQml({ 'method': 'settingChanged', 'name': 'lockStateEnabled', 'value': isLocked })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function onNewCollisionSoundUrl(url) {
|
function onNewCollisionSoundUrl(url) {
|
||||||
if(currentAvatarSettings.collisionSoundUrl !== url) {
|
if(currentAvatarSettings.collisionSoundUrl !== url) {
|
||||||
currentAvatarSettings.collisionSoundUrl = url;
|
currentAvatarSettings.collisionSoundUrl = url;
|
||||||
|
@ -324,6 +333,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See
|
||||||
MyAvatar.setDominantHand(message.settings.dominantHand);
|
MyAvatar.setDominantHand(message.settings.dominantHand);
|
||||||
MyAvatar.setCollisionsEnabled(message.settings.collisionsEnabled);
|
MyAvatar.setCollisionsEnabled(message.settings.collisionsEnabled);
|
||||||
MyAvatar.isInSittingState = message.settings.sittingEnabled;
|
MyAvatar.isInSittingState = message.settings.sittingEnabled;
|
||||||
|
MyAvatar.isSitStandStateLocked = message.settings.lockStateEnabled;
|
||||||
MyAvatar.collisionSoundURL = message.settings.collisionSoundUrl;
|
MyAvatar.collisionSoundURL = message.settings.collisionSoundUrl;
|
||||||
MyAvatar.setAnimGraphOverrideUrl(message.settings.animGraphOverrideUrl);
|
MyAvatar.setAnimGraphOverrideUrl(message.settings.animGraphOverrideUrl);
|
||||||
|
|
||||||
|
@ -518,6 +528,7 @@ function off() {
|
||||||
MyAvatar.dominantHandChanged.disconnect(onDominantHandChanged);
|
MyAvatar.dominantHandChanged.disconnect(onDominantHandChanged);
|
||||||
MyAvatar.collisionsEnabledChanged.disconnect(onCollisionsEnabledChanged);
|
MyAvatar.collisionsEnabledChanged.disconnect(onCollisionsEnabledChanged);
|
||||||
MyAvatar.sittingEnabledChanged.disconnect(onSittingEnabledChanged);
|
MyAvatar.sittingEnabledChanged.disconnect(onSittingEnabledChanged);
|
||||||
|
MyAvatar.sitStandStateLockEnabledChanged.disconnect(onSitStandStateLockedEnabledChanged);
|
||||||
MyAvatar.newCollisionSoundURL.disconnect(onNewCollisionSoundUrl);
|
MyAvatar.newCollisionSoundURL.disconnect(onNewCollisionSoundUrl);
|
||||||
MyAvatar.animGraphUrlChanged.disconnect(onAnimGraphUrlChanged);
|
MyAvatar.animGraphUrlChanged.disconnect(onAnimGraphUrlChanged);
|
||||||
MyAvatar.targetScaleChanged.disconnect(onTargetScaleChanged);
|
MyAvatar.targetScaleChanged.disconnect(onTargetScaleChanged);
|
||||||
|
@ -533,6 +544,7 @@ function on() {
|
||||||
MyAvatar.dominantHandChanged.connect(onDominantHandChanged);
|
MyAvatar.dominantHandChanged.connect(onDominantHandChanged);
|
||||||
MyAvatar.collisionsEnabledChanged.connect(onCollisionsEnabledChanged);
|
MyAvatar.collisionsEnabledChanged.connect(onCollisionsEnabledChanged);
|
||||||
MyAvatar.sittingEnabledChanged.connect(onSittingEnabledChanged);
|
MyAvatar.sittingEnabledChanged.connect(onSittingEnabledChanged);
|
||||||
|
MyAvatar.sitStandStateLockEnabledChanged.connect(onSitStandStateLockedEnabledChanged);
|
||||||
MyAvatar.newCollisionSoundURL.connect(onNewCollisionSoundUrl);
|
MyAvatar.newCollisionSoundURL.connect(onNewCollisionSoundUrl);
|
||||||
MyAvatar.animGraphUrlChanged.connect(onAnimGraphUrlChanged);
|
MyAvatar.animGraphUrlChanged.connect(onAnimGraphUrlChanged);
|
||||||
MyAvatar.targetScaleChanged.connect(onTargetScaleChanged);
|
MyAvatar.targetScaleChanged.connect(onTargetScaleChanged);
|
||||||
|
|
Loading…
Reference in a new issue