summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-04-23 09:58:15 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-04-23 11:43:41 +0300
commit555acef736a72cdc92113a268826a6bba77fbe40 (patch)
tree83200c64836afbfcbbbd73bbeba2dbf8765dae98 /src/datavisualizationqml2
parenta11dcce773b9ad2a913a32efe0c51b1221694659 (diff)
Added QML support for custom items
Task-number: QTRD-3048 Change-Id: I90e6fbee38bae858c2e0910178684e28eacc6472 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp32
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h8
2 files changed, 33 insertions, 7 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index 881a7860..2a02ad24 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -37,18 +37,18 @@ AbstractDeclarative::AbstractDeclarative(QQuickItem *parent) :
m_controller(0),
m_contextWindow(0),
m_renderMode(RenderIndirect),
-#if defined(QT_OPENGL_ES_2)
+ #if defined(QT_OPENGL_ES_2)
m_samples(0),
-#else
+ #else
m_samples(4),
-#endif
+ #endif
m_windowSamples(0),
m_initialisedSize(0, 0),
-#ifdef USE_SHARED_CONTEXT
+ #ifdef USE_SHARED_CONTEXT
m_context(0),
-#else
+ #else
m_stateStore(0),
-#endif
+ #endif
m_qtContext(0),
m_mainThread(QThread::currentThread()),
m_contextThread(0)
@@ -211,6 +211,26 @@ bool AbstractDeclarative::shadowsSupported() const
return m_controller->shadowsSupported();
}
+int AbstractDeclarative::addCustomItem(const QString &meshFile, const QVector3D &position,
+ const QVector3D &scaling, const QQuaternion &rotation,
+ const QString &textureFile)
+{
+ QImage textureImage;
+ if (!textureFile.isNull())
+ textureImage = QImage(textureFile);
+ return m_controller->addCustomItem(meshFile, position, scaling, rotation, textureImage);
+}
+
+void AbstractDeclarative::removeCustomItemAt(int index)
+{
+ m_controller->deleteCustomItem(index);
+}
+
+void AbstractDeclarative::removeCustomItemAt(const QVector3D &position)
+{
+ m_controller->deleteCustomItem(position);
+}
+
void AbstractDeclarative::setSharedController(Abstract3DController *controller)
{
Q_ASSERT(controller);
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index 8ba86b11..4f73380f 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -128,7 +128,13 @@ public:
Q_INVOKABLE virtual void clearSelection();
- virtual void geometryChanged(const QRectF & newGeometry, const QRectF & oldGeometry);
+ Q_INVOKABLE virtual int addCustomItem(const QString &meshFile, const QVector3D &position,
+ const QVector3D &scaling, const QQuaternion &rotation,
+ const QString &textureFile = 0);
+ Q_INVOKABLE virtual void removeCustomItemAt(int index);
+ Q_INVOKABLE virtual void removeCustomItemAt(const QVector3D &position);
+
+ virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry);
void setSharedController(Abstract3DController *controller);
// Used to synch up data model from controller to renderer while main thread is locked