mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 18:50:00 +02:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
70239b560a
5 changed files with 69 additions and 11 deletions
|
@ -81,6 +81,25 @@ Item {
|
||||||
anchors.fill: parent;
|
anchors.fill: parent;
|
||||||
visible: userImage.status != Image.Ready;
|
visible: userImage.status != Image.Ready;
|
||||||
}
|
}
|
||||||
|
StateImage {
|
||||||
|
id: infoHoverImage;
|
||||||
|
visible: false;
|
||||||
|
imageURL: "../../images/info-icon-2-state.svg";
|
||||||
|
size: 32;
|
||||||
|
buttonState: 1;
|
||||||
|
anchors.centerIn: parent;
|
||||||
|
}
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
enabled: (selected || isMyCard) && activeTab == "nearbyTab";
|
||||||
|
hoverEnabled: enabled
|
||||||
|
onClicked: {
|
||||||
|
userInfoViewer.url = defaultBaseUrl + "/users/" + userName;
|
||||||
|
userInfoViewer.visible = true;
|
||||||
|
}
|
||||||
|
onEntered: infoHoverImage.visible = true;
|
||||||
|
onExited: infoHoverImage.visible = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Colored border around avatarImage
|
// Colored border around avatarImage
|
||||||
|
|
|
@ -910,17 +910,21 @@ Rectangle {
|
||||||
color: hifi.colors.darkGray
|
color: hifi.colors.darkGray
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
textFormat: Text.StyledText;
|
textFormat: Text.StyledText;
|
||||||
|
property string hmdMountedInstructions:
|
||||||
|
"1. Put your hand out onto their hand and squeeze your controller's grip button on its side.<br>" +
|
||||||
|
"2. Once the other person puts their hand onto yours, you'll see your connection form.<br>" +
|
||||||
|
"3. After about 3 seconds, you're connected!"
|
||||||
|
property string hmdNotMountedInstructions:
|
||||||
|
"1. Press and hold the 'x' key to extend your arm.<br>" +
|
||||||
|
"2. Once the other person puts their hand onto yours, you'll see your connection form.<br>" +
|
||||||
|
"3. After about 3 seconds, you're connected!";
|
||||||
|
property string notLoggedInInstructions: "<b><font color='red'>You must be logged into your High Fidelity account to make connections.</b></font><br>"
|
||||||
|
property string instructions:
|
||||||
|
"<b>When you meet someone you want to remember later, you can <font color='purple'>connect</font> with a handshake:</b><br><br>"
|
||||||
// Text
|
// Text
|
||||||
text: HMD.isMounted ?
|
text:
|
||||||
"<b>When you meet someone you want to remember later, you can <font color='purple'>connect</font> with a handshake:</b><br><br>" +
|
Account.isLoggedIn() ? ( HMD.mounted ? instructions + hmdMountedInstructions : instructions + hmdNotMountedInstructions)
|
||||||
"1. Put your hand out onto their hand and squeeze your controller's grip button on its side.<br>" +
|
: ( HMD.mounted ? notLoggedInInstructions + instructions + hmdMountedInstructions : notLoggedInInstructions + instructions + hmdNotMountedInstructions)
|
||||||
"2. Once the other person puts their hand onto yours, you'll see your connection form.<br>" +
|
|
||||||
"3. After about 3 seconds, you're connected!"
|
|
||||||
:
|
|
||||||
"<b>When you meet someone you want to remember later, you can <font color='purple'>connect</font> with a handshake:</b><br><br>" +
|
|
||||||
"1. Press and hold the 'x' key to extend your arm.<br>" +
|
|
||||||
"2. Once the other person puts their hand onto yours, you'll see your connection form.<br>" +
|
|
||||||
"3. After about 3 seconds, you're connected!";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -933,6 +933,21 @@ glm::vec3 Avatar::getDefaultJointTranslation(int index) const {
|
||||||
return translation;
|
return translation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
glm::quat Avatar::getAbsoluteDefaultJointRotationInObjectFrame(int index) const {
|
||||||
|
glm::quat rotation;
|
||||||
|
auto rig = _skeletonModel->getRig();
|
||||||
|
glm::quat rot = rig->getAnimSkeleton()->getAbsoluteDefaultPose(index).rot();
|
||||||
|
return Quaternions::Y_180 * rot;
|
||||||
|
}
|
||||||
|
|
||||||
|
glm::vec3 Avatar::getAbsoluteDefaultJointTranslationInObjectFrame(int index) const {
|
||||||
|
glm::vec3 translation;
|
||||||
|
auto rig = _skeletonModel->getRig();
|
||||||
|
glm::vec3 trans = rig->getAnimSkeleton()->getAbsoluteDefaultPose(index).trans();
|
||||||
|
glm::mat4 y180Mat = createMatFromQuatAndPos(Quaternions::Y_180, glm::vec3());
|
||||||
|
return transformPoint(y180Mat * rig->getGeometryToRigTransform(), trans);
|
||||||
|
}
|
||||||
|
|
||||||
glm::quat Avatar::getAbsoluteJointRotationInObjectFrame(int index) const {
|
glm::quat Avatar::getAbsoluteJointRotationInObjectFrame(int index) const {
|
||||||
if (index < 0) {
|
if (index < 0) {
|
||||||
index += numeric_limits<unsigned short>::max() + 1; // 65536
|
index += numeric_limits<unsigned short>::max() + 1; // 65536
|
||||||
|
|
|
@ -121,6 +121,26 @@ public:
|
||||||
Q_INVOKABLE virtual glm::quat getDefaultJointRotation(int index) const;
|
Q_INVOKABLE virtual glm::quat getDefaultJointRotation(int index) const;
|
||||||
Q_INVOKABLE virtual glm::vec3 getDefaultJointTranslation(int index) const;
|
Q_INVOKABLE virtual glm::vec3 getDefaultJointTranslation(int index) const;
|
||||||
|
|
||||||
|
/**jsdoc
|
||||||
|
* Provides read only access to the default joint rotations in avatar coordinates.
|
||||||
|
* The default pose of the avatar is defined by the position and orientation of all bones
|
||||||
|
* in the avatar's model file. Typically this is a t-pose.
|
||||||
|
* @function Avatar.getAbsoluteDefaultJointRotationInObjectFrame
|
||||||
|
* @param index {number} index number
|
||||||
|
* @returns {Quat} The rotation of this joint in avatar coordinates.
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE virtual glm::quat getAbsoluteDefaultJointRotationInObjectFrame(int index) const;
|
||||||
|
|
||||||
|
/**jsdoc
|
||||||
|
* Provides read only access to the default joint translations in avatar coordinates.
|
||||||
|
* The default pose of the avatar is defined by the position and orientation of all bones
|
||||||
|
* in the avatar's model file. Typically this is a t-pose.
|
||||||
|
* @function Avatar.getAbsoluteDefaultJointTranslationInObjectFrame
|
||||||
|
* @param index {number} index number
|
||||||
|
* @returns {Vec3} The position of this joint in avatar coordinates.
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE virtual glm::vec3 getAbsoluteDefaultJointTranslationInObjectFrame(int index) const;
|
||||||
|
|
||||||
virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override;
|
virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override;
|
||||||
virtual glm::vec3 getAbsoluteJointTranslationInObjectFrame(int index) const override;
|
virtual glm::vec3 getAbsoluteJointTranslationInObjectFrame(int index) const override;
|
||||||
virtual bool setAbsoluteJointRotationInObjectFrame(int index, const glm::quat& rotation) override { return false; }
|
virtual bool setAbsoluteJointRotationInObjectFrame(int index, const glm::quat& rotation) override { return false; }
|
||||||
|
|
|
@ -109,7 +109,7 @@ void AnimVariantMap::animVariantMapFromScriptValue(const QScriptValue& source) {
|
||||||
if (z.isNumber()) {
|
if (z.isNumber()) {
|
||||||
QScriptValue w = value.property("w");
|
QScriptValue w = value.property("w");
|
||||||
if (w.isNumber()) {
|
if (w.isNumber()) {
|
||||||
set(property.name(), glm::quat(x.toNumber(), y.toNumber(), z.toNumber(), w.toNumber()));
|
set(property.name(), glm::quat(w.toNumber(), x.toNumber(), y.toNumber(), z.toNumber()));
|
||||||
} else {
|
} else {
|
||||||
set(property.name(), glm::vec3(x.toNumber(), y.toNumber(), z.toNumber()));
|
set(property.name(), glm::vec3(x.toNumber(), y.toNumber(), z.toNumber()));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue