19 #ifndef hifi_ScriptValueUtils_h
20 #define hifi_ScriptValueUtils_h
22 #include <QtCore/QVector>
24 #include <glm/glm.hpp>
25 #include <glm/gtc/quaternion.hpp>
27 #include "ScriptValue.h"
57 bool mat4FromScriptValue(
const ScriptValue&
object, glm::mat4& mat4);
74 bool vec2FromScriptValue(
const ScriptValue&
object, glm::vec2& vec2);
98 bool vec3FromScriptValue(
const ScriptValue&
object, glm::vec3& vec3);
140 bool u8vec3FromScriptValue(
const ScriptValue&
object, glm::u8vec3& vec3);
152 bool vec4FromScriptValue(
const ScriptValue&
object, glm::vec4& vec4);
156 bool quatFromScriptValue(
const ScriptValue&
object, glm::quat& quat);
168 bool qVector2DFromScriptValue(
const ScriptValue&
object, QVector2D& qVector2D);
172 bool qVector3DFromScriptValue(
const ScriptValue&
object, QVector3D& qVector3D);
176 bool qRectFromScriptValue(
const ScriptValue&
object, QRect& rect);
180 bool qRectFFromScriptValue(
const ScriptValue&
object, QRectF& rect);
185 bool qColorFromScriptValue(
const ScriptValue&
object, QColor& color);
190 bool qTimerFromScriptValue(
const ScriptValue&
object, QTimer* &out);
194 bool qURLFromScriptValue(
const ScriptValue&
object, QUrl& url);
197 Q_DECLARE_METATYPE(QVector<glm::vec3>)
200 bool qVectorVec3FromScriptValue(
const ScriptValue& array, QVector<glm::vec3>& vector);
201 QVector<glm::vec3> qVectorVec3FromScriptValue(
const ScriptValue& array);
204 Q_DECLARE_METATYPE(QVector<glm::quat>)
206 bool qVectorQuatFromScriptValue(
const ScriptValue& array, QVector<glm::quat>& vector);
207 QVector<glm::quat> qVectorQuatFromScriptValue(
const ScriptValue& array);
211 bool qVectorBoolFromScriptValue(
const ScriptValue& array, QVector<bool>& vector);
212 QVector<bool> qVectorBoolFromScriptValue(
const ScriptValue& array);
216 bool qVectorFloatFromScriptValue(
const ScriptValue& array, QVector<float>& vector);
217 QVector<float> qVectorFloatFromScriptValue(
const ScriptValue& array);
221 bool qVectorIntFromScriptValue(
const ScriptValue& array, QVector<uint32_t>& vector);
224 bool qVectorQUuidFromScriptValue(
const ScriptValue& array, QVector<QUuid>& vector);
225 QVector<QUuid> qVectorQUuidFromScriptValue(
const ScriptValue& array);
229 bool aaCubeFromScriptValue(
const ScriptValue&
object, AACube& aaCube);
233 bool pickRayFromScriptValue(
const ScriptValue&
object, PickRay& pickRay);
237 bool collisionFromScriptValue(
const ScriptValue&
object, Collision& collision);
247 bool quuidFromScriptValue(
const ScriptValue&
object, QUuid& uuid);
252 bool qSizeFFromScriptValue(
const ScriptValue&
object, QSizeF& qSizeF);
254 class AnimationDetails;
256 bool animationDetailsFromScriptValue(
const ScriptValue&
object, AnimationDetails& event);
260 bool meshFromScriptValue(
const ScriptValue& value, MeshProxy*& out);
264 bool meshesFromScriptValue(
const ScriptValue& value, MeshProxyList& out);
268 bool meshFaceFromScriptValue(
const ScriptValue&
object, MeshFace& meshFaceResult);
270 bool qVectorMeshFaceFromScriptValue(
const ScriptValue& array, QVector<MeshFace>& result);
272 enum class StencilMaskMode;
274 bool stencilMaskModeFromScriptValue(
const ScriptValue&
object, StencilMaskMode& stencilMode);
277 bool promiseFromScriptValue(
const ScriptValue&
object, std::shared_ptr<MiniPromise>& promise);
283 QVector<EntityItemID> qVectorEntityItemIDFromScriptValue(
const ScriptValue& array);
Abstract ID for editing model items. Used in EntityItem JS API.
Definition: EntityItemID.h:28
Provides an engine-independent interface for a scripting engine.
Definition: ScriptEngine.h:93
[ScriptInterface] Provides an engine-independent interface for QScriptValue
Definition: ScriptValue.h:40