mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 07:39:44 +02:00
Merge branch 'master' of github.com:highfidelity/hifi into tablet-ui-tablet-is-overlay
This commit is contained in:
commit
4600d546c0
3 changed files with 42 additions and 0 deletions
|
@ -36,6 +36,7 @@
|
||||||
#include <shared/JSONHelpers.h>
|
#include <shared/JSONHelpers.h>
|
||||||
#include <ShapeInfo.h>
|
#include <ShapeInfo.h>
|
||||||
#include <AudioHelpers.h>
|
#include <AudioHelpers.h>
|
||||||
|
#include <VariantMapToScriptValue.h>
|
||||||
|
|
||||||
#include "AvatarLogging.h"
|
#include "AvatarLogging.h"
|
||||||
|
|
||||||
|
@ -2309,3 +2310,37 @@ void RayToAvatarIntersectionResultFromScriptValue(const QScriptValue& object, Ra
|
||||||
vec3FromScriptValue(intersection, value.intersection);
|
vec3FromScriptValue(intersection, value.intersection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QScriptValue AvatarEntityMapToScriptValue(QScriptEngine* engine, const AvatarEntityMap& value) {
|
||||||
|
QScriptValue obj = engine->newObject();
|
||||||
|
for (auto entityID : value.keys()) {
|
||||||
|
QByteArray entityProperties = value.value(entityID);
|
||||||
|
QJsonDocument jsonEntityProperties = QJsonDocument::fromBinaryData(entityProperties);
|
||||||
|
if (!jsonEntityProperties.isObject()) {
|
||||||
|
qCDebug(avatars) << "bad AvatarEntityData in AvatarEntityMap" << QString(entityProperties.toHex());
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant variantEntityProperties = jsonEntityProperties.toVariant();
|
||||||
|
QVariantMap entityPropertiesMap = variantEntityProperties.toMap();
|
||||||
|
QScriptValue scriptEntityProperties = variantMapToScriptValue(entityPropertiesMap, *engine);
|
||||||
|
|
||||||
|
QString key = entityID.toString();
|
||||||
|
obj.setProperty(key, scriptEntityProperties);
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AvatarEntityMapFromScriptValue(const QScriptValue& object, AvatarEntityMap& value) {
|
||||||
|
QScriptValueIterator itr(object);
|
||||||
|
while (itr.hasNext()) {
|
||||||
|
itr.next();
|
||||||
|
QUuid EntityID = QUuid(itr.name());
|
||||||
|
|
||||||
|
QScriptValue scriptEntityProperties = itr.value();
|
||||||
|
QVariant variantEntityProperties = scriptEntityProperties.toVariant();
|
||||||
|
QJsonDocument jsonEntityProperties = QJsonDocument::fromVariant(variantEntityProperties);
|
||||||
|
QByteArray binaryEntityProperties = jsonEntityProperties.toBinaryData();
|
||||||
|
|
||||||
|
value[EntityID] = binaryEntityProperties;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -44,6 +44,7 @@ typedef unsigned long long quint64;
|
||||||
#include <QVariantMap>
|
#include <QVariantMap>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
#include <QtScript/QScriptable>
|
#include <QtScript/QScriptable>
|
||||||
|
#include <QtScript/QScriptValueIterator>
|
||||||
#include <QReadWriteLock>
|
#include <QReadWriteLock>
|
||||||
|
|
||||||
#include <JointData.h>
|
#include <JointData.h>
|
||||||
|
@ -816,6 +817,11 @@ Q_DECLARE_METATYPE(RayToAvatarIntersectionResult)
|
||||||
QScriptValue RayToAvatarIntersectionResultToScriptValue(QScriptEngine* engine, const RayToAvatarIntersectionResult& results);
|
QScriptValue RayToAvatarIntersectionResultToScriptValue(QScriptEngine* engine, const RayToAvatarIntersectionResult& results);
|
||||||
void RayToAvatarIntersectionResultFromScriptValue(const QScriptValue& object, RayToAvatarIntersectionResult& results);
|
void RayToAvatarIntersectionResultFromScriptValue(const QScriptValue& object, RayToAvatarIntersectionResult& results);
|
||||||
|
|
||||||
|
Q_DECLARE_METATYPE(AvatarEntityMap)
|
||||||
|
|
||||||
|
QScriptValue AvatarEntityMapToScriptValue(QScriptEngine* engine, const AvatarEntityMap& value);
|
||||||
|
void AvatarEntityMapFromScriptValue(const QScriptValue& object, AvatarEntityMap& value);
|
||||||
|
|
||||||
// faux joint indexes (-1 means invalid)
|
// faux joint indexes (-1 means invalid)
|
||||||
const int SENSOR_TO_WORLD_MATRIX_INDEX = 65534; // -2
|
const int SENSOR_TO_WORLD_MATRIX_INDEX = 65534; // -2
|
||||||
const int CONTROLLER_RIGHTHAND_INDEX = 65533; // -3
|
const int CONTROLLER_RIGHTHAND_INDEX = 65533; // -3
|
||||||
|
|
|
@ -576,6 +576,7 @@ void ScriptEngine::init() {
|
||||||
qScriptRegisterMetaType(this, EntityItemIDtoScriptValue, EntityItemIDfromScriptValue);
|
qScriptRegisterMetaType(this, EntityItemIDtoScriptValue, EntityItemIDfromScriptValue);
|
||||||
qScriptRegisterMetaType(this, RayToEntityIntersectionResultToScriptValue, RayToEntityIntersectionResultFromScriptValue);
|
qScriptRegisterMetaType(this, RayToEntityIntersectionResultToScriptValue, RayToEntityIntersectionResultFromScriptValue);
|
||||||
qScriptRegisterMetaType(this, RayToAvatarIntersectionResultToScriptValue, RayToAvatarIntersectionResultFromScriptValue);
|
qScriptRegisterMetaType(this, RayToAvatarIntersectionResultToScriptValue, RayToAvatarIntersectionResultFromScriptValue);
|
||||||
|
qScriptRegisterMetaType(this, AvatarEntityMapToScriptValue, AvatarEntityMapFromScriptValue);
|
||||||
qScriptRegisterSequenceMetaType<QVector<QUuid>>(this);
|
qScriptRegisterSequenceMetaType<QVector<QUuid>>(this);
|
||||||
qScriptRegisterSequenceMetaType<QVector<EntityItemID>>(this);
|
qScriptRegisterSequenceMetaType<QVector<EntityItemID>>(this);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue