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);
153 bool vec4FromScriptValue(
const ScriptValue&
object, glm::vec4& vec4);
157 bool quatFromScriptValue(
const ScriptValue&
object, glm::quat& quat);
169 bool qVector2DFromScriptValue(
const ScriptValue&
object, QVector2D& qVector2D);
173 bool qVector3DFromScriptValue(
const ScriptValue&
object, QVector3D& qVector3D);
177 bool qRectFromScriptValue(
const ScriptValue&
object, QRect& rect);
181 bool qRectFFromScriptValue(
const ScriptValue&
object, QRectF& rect);
186 bool qColorFromScriptValue(
const ScriptValue&
object, QColor& color);
191 bool qTimerFromScriptValue(
const ScriptValue&
object, QTimer* &out);
195 bool qURLFromScriptValue(
const ScriptValue&
object, QUrl& url);
198 Q_DECLARE_METATYPE(QVector<glm::vec3>)
201 bool qVectorVec3FromScriptValue(
const ScriptValue& array, QVector<glm::vec3>& vector);
202 QVector<glm::vec3> qVectorVec3FromScriptValue(
const ScriptValue& array);
205 Q_DECLARE_METATYPE(QVector<glm::quat>)
207 bool qVectorQuatFromScriptValue(
const ScriptValue& array, QVector<glm::quat>& vector);
208 QVector<glm::quat> qVectorQuatFromScriptValue(
const ScriptValue& array);
212 bool qVectorBoolFromScriptValue(
const ScriptValue& array, QVector<bool>& vector);
213 QVector<bool> qVectorBoolFromScriptValue(
const ScriptValue& array);
217 bool qVectorFloatFromScriptValue(
const ScriptValue& array, QVector<float>& vector);
218 QVector<float> qVectorFloatFromScriptValue(
const ScriptValue& array);
222 bool qVectorIntFromScriptValue(
const ScriptValue& array, QVector<uint32_t>& vector);
225 bool qVectorQUuidFromScriptValue(
const ScriptValue& array, QVector<QUuid>& vector);
226 QVector<QUuid> qVectorQUuidFromScriptValue(
const ScriptValue& array);
229 QVector<QString> qVectorQStringFromScriptValue(
const ScriptValue& array);
233 bool aaCubeFromScriptValue(
const ScriptValue&
object, AACube& aaCube);
237 bool pickRayFromScriptValue(
const ScriptValue&
object, PickRay& pickRay);
241 bool collisionFromScriptValue(
const ScriptValue&
object, Collision& collision);
251 bool quuidFromScriptValue(
const ScriptValue&
object, QUuid& uuid);
256 bool qSizeFFromScriptValue(
const ScriptValue&
object, QSizeF& qSizeF);
258 class AnimationDetails;
260 bool animationDetailsFromScriptValue(
const ScriptValue&
object, AnimationDetails& event);
264 bool meshFromScriptValue(
const ScriptValue& value, MeshProxy*& out);
268 bool meshesFromScriptValue(
const ScriptValue& value, MeshProxyList& out);
272 bool meshFaceFromScriptValue(
const ScriptValue&
object, MeshFace& meshFaceResult);
274 bool qVectorMeshFaceFromScriptValue(
const ScriptValue& array, QVector<MeshFace>& result);
276 enum class StencilMaskMode;
278 bool stencilMaskModeFromScriptValue(
const ScriptValue&
object, StencilMaskMode& stencilMode);
281 bool promiseFromScriptValue(
const ScriptValue&
object, std::shared_ptr<MiniPromise>& promise);
287 QVector<EntityItemID> qVectorEntityItemIDFromScriptValue(
const ScriptValue& array);
291 bool samplerFromScriptValue(
const ScriptValue&
object, Sampler& sampler);
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