Add new Avatar.getAvatarEntityData() method for API

This commit is contained in:
David Rowe 2019-12-01 16:35:05 +13:00
parent c7f82a8264
commit 9d3e9f6a78
2 changed files with 15 additions and 1 deletions

View file

@ -279,7 +279,18 @@ void ScriptableAvatar::setJointMappingsFromNetworkReply() {
networkReply->deleteLater(); networkReply->deleteLater();
} }
AvatarEntityMap ScriptableAvatar::getAvatarEntityData() const {
auto data = getAvatarEntityDataInternal(true);
return data;
}
AvatarEntityMap ScriptableAvatar::getAvatarEntityDataNonDefault() const { AvatarEntityMap ScriptableAvatar::getAvatarEntityDataNonDefault() const {
auto data = getAvatarEntityDataInternal(false);
return data;
}
AvatarEntityMap ScriptableAvatar::getAvatarEntityDataInternal(bool allProperties) const {
// DANGER: Now that we store the AvatarEntityData in packed format this call is potentially Very Expensive! // DANGER: Now that we store the AvatarEntityData in packed format this call is potentially Very Expensive!
// Avoid calling this method if possible. // Avoid calling this method if possible.
AvatarEntityMap data; AvatarEntityMap data;
@ -290,7 +301,7 @@ AvatarEntityMap ScriptableAvatar::getAvatarEntityDataNonDefault() const {
EntityItemPointer entity = itr.second; EntityItemPointer entity = itr.second;
EntityItemProperties properties = entity->getProperties(); EntityItemProperties properties = entity->getProperties();
QByteArray blob; QByteArray blob;
EntityItemProperties::propertiesToBlob(_scriptEngine, sessionID, properties, blob); EntityItemProperties::propertiesToBlob(_scriptEngine, sessionID, properties, blob, allProperties);
data[id] = blob; data[id] = blob;
} }
}); });

View file

@ -178,9 +178,12 @@ public:
* var avatarEntityData = Avatar.getAvatarEntityData(); * var avatarEntityData = Avatar.getAvatarEntityData();
* print("Avatar entities: " + JSON.stringify(avatarEntityData)); * print("Avatar entities: " + JSON.stringify(avatarEntityData));
*/ */
Q_INVOKABLE AvatarEntityMap getAvatarEntityData() const override;
AvatarEntityMap getAvatarEntityDataNonDefault() const override; AvatarEntityMap getAvatarEntityDataNonDefault() const override;
AvatarEntityMap getAvatarEntityDataInternal(bool allProperties) const;
/**jsdoc /**jsdoc
* Sets all avatar entities from an object. * Sets all avatar entities from an object.
* <p><strong>Warning:</strong> Potentially an expensive call. Do not use if possible.</p> * <p><strong>Warning:</strong> Potentially an expensive call. Do not use if possible.</p>