From b0783e4cce707ac639b76de63d954d165d5caf8e Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 6 Aug 2013 11:25:29 -0700 Subject: [PATCH] add Q_PROPERTY macro for position QVariantMap --- libraries/avatars/src/AvatarData.cpp | 14 ++++++++++++++ libraries/avatars/src/AvatarData.h | 5 ++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 1dd6a0787b..4df93de340 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -51,6 +51,20 @@ AvatarData::~AvatarData() { delete _handData; } +void AvatarData::setPositionFromVariantMap(QVariantMap positionMap) { + _position = glm::vec3(positionMap.value("x"), positionMap.value("y"), positionMap.value("z")); +} + +QVariantMap AvatarData::getPositionVariantMap() { + QVariantMap positionMap; + + positionMap.insert("x", _position.x); + positionMap.insert("y", _position.y); + positionMap.insert("z", _position.z); + + return positionMap; +} + void AvatarData::sendData() { // called from Agent visual loop to send data diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 2978d54f3e..90a01954ad 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -43,6 +43,7 @@ class JointData; class AvatarData : public NodeData { Q_OBJECT + Q_PROPERTY(QVariantMap position READ getPositionVariantMap WRITE setPositionFromVariantMap) Q_PROPERTY(float bodyYaw READ getBodyYaw WRITE setBodyYaw) Q_PROPERTY(float bodyPitch READ getBodyPitch WRITE setBodyPitch) Q_PROPERTY(float bodyRoll READ getBodyRoll WRITE setBodyRoll) @@ -56,6 +57,9 @@ public: void setPosition (const glm::vec3 position ) { _position = position; } void setHandPosition (const glm::vec3 handPosition ) { _handPosition = handPosition; } + void setPositionFromVariantMap(QVariantMap positionMap); + QVariantMap getPositionVariantMap(); + int getBroadcastData(unsigned char* destinationBuffer); int parseData(unsigned char* sourceBuffer, int numBytes); @@ -115,7 +119,6 @@ public: void setHandData(HandData* handData) { _handData = handData; } public slots: - void setPosition(float x, float y, float z) { _position = glm::vec3(x, y, z); } void setHandPosition(float x, float y, float z) { _position = glm::vec3(x, y, z); } void sendData();