mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-19 08:18:05 +02:00
Expose hero-status to scripts
This commit is contained in:
parent
137c25f907
commit
d7a1ecdbb3
5 changed files with 19 additions and 3 deletions
|
@ -184,6 +184,7 @@ class MyAvatar : public Avatar {
|
|||
* @property {Mat4} controllerLeftHandMatrix <em>Read-only.</em>
|
||||
* @property {Mat4} controllerRightHandMatrix <em>Read-only.</em>
|
||||
* @property {number} sensorToWorldScale <em>Read-only.</em>
|
||||
* @property {boolean} hasPriority - is the avatar in a Hero zone? <em>Read-only</em>
|
||||
*/
|
||||
// FIXME: `glm::vec3 position` is not accessible from QML, so this exposes position in a QML-native type
|
||||
Q_PROPERTY(QVector3D qmlPosition READ getQmlPosition)
|
||||
|
|
|
@ -1143,10 +1143,11 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) {
|
|||
// we store the hand state as well as other items in a shared bitset. The hand state is an octal, but is split
|
||||
// into two sections to maintain backward compatibility. The bits are ordered as such (0-7 left to right).
|
||||
// AA 6/1/18 added three more flags bits 8,9, and 10 for procedural audio, blink, and eye saccade enabled
|
||||
// +---+-----+-----+--+--+--+--+-----+
|
||||
// |x,x|H0,H1|x,x,x|H2|Au|Bl|Ey|xxxxx|
|
||||
// +---+-----+-----+--+--+--+--+-----+
|
||||
// +---+-----+-----+--+--+--+--+--+----+
|
||||
// |x,x|H0,H1|x,x,x|H2|Au|Bl|Ey|He|xxxx|
|
||||
// +---+-----+-----+--+--+--+--+--+----+
|
||||
// Hand state - H0,H1,H2 is found in the 3rd, 4th, and 8th bits
|
||||
// Hero-avatar status (He) - 12th bit
|
||||
auto newHandState = getSemiNibbleAt(bitItems, HAND_STATE_START_BIT)
|
||||
+ (oneAtBit16(bitItems, HAND_STATE_FINGER_POINTING_BIT) ? IS_FINGER_POINTING_FLAG : 0);
|
||||
|
||||
|
|
|
@ -453,6 +453,8 @@ class AvatarData : public QObject, public SpatiallyNestable {
|
|||
|
||||
Q_PROPERTY(float sensorToWorldScale READ getSensorToWorldScale)
|
||||
|
||||
Q_PROPERTY(bool hasPriority READ getHasPriority)
|
||||
|
||||
public:
|
||||
virtual QString getName() const override { return QString("Avatar:") + _displayName; }
|
||||
|
||||
|
|
|
@ -343,6 +343,14 @@ glm::mat4 ScriptAvatarData::getControllerRightHandMatrix() const {
|
|||
// END
|
||||
//
|
||||
|
||||
bool ScriptAvatarData::getHasPriority() const {
|
||||
if (AvatarSharedPointer sharedAvatarData = _avatarData.lock()) {
|
||||
return sharedAvatarData->getHasPriority();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
glm::quat ScriptAvatarData::getAbsoluteJointRotationInObjectFrame(int index) const {
|
||||
if (AvatarSharedPointer sharedAvatarData = _avatarData.lock()) {
|
||||
return sharedAvatarData->getAbsoluteJointRotationInObjectFrame(index);
|
||||
|
|
|
@ -68,6 +68,8 @@ class ScriptAvatarData : public QObject {
|
|||
Q_PROPERTY(glm::mat4 controllerLeftHandMatrix READ getControllerLeftHandMatrix)
|
||||
Q_PROPERTY(glm::mat4 controllerRightHandMatrix READ getControllerRightHandMatrix)
|
||||
|
||||
Q_PROPERTY(bool hasPriority READ getHasPriority)
|
||||
|
||||
public:
|
||||
ScriptAvatarData(AvatarSharedPointer avatarData);
|
||||
|
||||
|
@ -133,6 +135,8 @@ public:
|
|||
glm::mat4 getControllerLeftHandMatrix() const;
|
||||
glm::mat4 getControllerRightHandMatrix() const;
|
||||
|
||||
bool getHasPriority() const;
|
||||
|
||||
signals:
|
||||
void displayNameChanged();
|
||||
void sessionDisplayNameChanged();
|
||||
|
|
Loading…
Reference in a new issue