diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index b7a02f1..25b112f 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -236,6 +236,7 @@ when the property has one of the following types: \o \c point - use \l{QML:Qt::point()}{Qt.point()} \o \c size - use \l{QML:Qt::size()}{Qt.size()} \o \c vector3d - use \l{QML:Qt::vector3d()}{Qt.vector3d()} +\o \c vector4d - use \l{QML::Qt::vector4d()}{Qt.vector4d()} \endlist There are also string based constructors for these types. See \l{qdeclarativebasictypes.html}{QML Basic Types} for more information. @@ -417,6 +418,7 @@ QDeclarativeScriptEngine::QDeclarativeScriptEngine(QDeclarativeEnginePrivate *pr qtObject.setProperty(QLatin1String("point"), newFunction(QDeclarativeEnginePrivate::point, 2)); qtObject.setProperty(QLatin1String("size"), newFunction(QDeclarativeEnginePrivate::size, 2)); qtObject.setProperty(QLatin1String("vector3d"), newFunction(QDeclarativeEnginePrivate::vector3d, 3)); + qtObject.setProperty(QLatin1String("vector4d"), newFunction(QDeclarativeEnginePrivate::vector4d, 4)); if (mainthread) { //color helpers @@ -1437,6 +1439,22 @@ QScriptValue QDeclarativeEnginePrivate::vector3d(QScriptContext *ctxt, QScriptEn return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(QVariant::fromValue(QVector3D(x, y, z))); } + +/*! +\qmlmethod Qt::vector4d(real x, real y, real z, real w) +Returns a Vector4D with the specified \c x, \c y, \c z and \w. +*/ +QScriptValue QDeclarativeEnginePrivate::vector4d(QScriptContext *ctxt, QScriptEngine *engine) +{ + if(ctxt->argumentCount() != 4) + return ctxt->throwError(QLatin1String("Qt.vector4d(): Invalid arguments")); + qsreal x = ctxt->argument(0).toNumber(); + qsreal y = ctxt->argument(1).toNumber(); + qsreal z = ctxt->argument(2).toNumber(); + qsreal w = ctxt->argument(3).toNumber(); + return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(QVariant::fromValue(QVector4D(x, y, z, w))); +} + /*! \qmlmethod string Qt::formatDate(datetime date, variant format) diff --git a/src/declarative/qml/qdeclarativeengine_p.h b/src/declarative/qml/qdeclarativeengine_p.h index 88b4e80..458887f 100644 --- a/src/declarative/qml/qdeclarativeengine_p.h +++ b/src/declarative/qml/qdeclarativeengine_p.h @@ -289,6 +289,7 @@ public: static QScriptValue createQmlObject(QScriptContext*, QScriptEngine*); static QScriptValue isQtObject(QScriptContext*, QScriptEngine*); static QScriptValue vector3d(QScriptContext*, QScriptEngine*); + static QScriptValue vector4d(QScriptContext*, QScriptEngine*); static QScriptValue rgba(QScriptContext*, QScriptEngine*); static QScriptValue hsla(QScriptContext*, QScriptEngine*); static QScriptValue point(QScriptContext*, QScriptEngine*);