summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/examples.pri17
-rw-r--r--examples/qmlbarchart/qml/qmlbarchart/main.qml17
-rw-r--r--src/datavis3dqml2/datavis3dqml2_plugin.h4
-rw-r--r--src/datavis3dqml2/datavisview.cpp44
-rw-r--r--src/datavis3dqml2/datavisview.h14
-rw-r--r--src/datavis3dqml2/scenerenderernode.cpp28
-rw-r--r--src/datavis3dqml2/scenerenderernode_p.h4
7 files changed, 100 insertions, 28 deletions
diff --git a/examples/examples.pri b/examples/examples.pri
index a06623f7..f20862e7 100644
--- a/examples/examples.pri
+++ b/examples/examples.pri
@@ -37,13 +37,16 @@ contains(TARGET, qml.*) {
src_lib = $${lib_name}.dll
}
} else {
- CONFIG(debug, release|debug) {
- src_dir = .
- src_lib = lib$${lib_name}_debug.dylib
- }
- CONFIG(release, release|debug){
- src_dir = .
- src_lib = lib$${lib_name}.dylib
+ src_dir = .
+ mac {
+ CONFIG(debug, release|debug) {
+ src_lib = lib$${lib_name}_debug.dylib
+ }
+ CONFIG(release, release|debug){
+ src_lib = lib$${lib_name}.dylib
+ }
+ } else {
+ src_lib = $${lib_name}.so
}
}
copy_lib.target = $$make_qmldir_path/$$src_lib
diff --git a/examples/qmlbarchart/qml/qmlbarchart/main.qml b/examples/qmlbarchart/qml/qmlbarchart/main.qml
index 215fbf56..2a246d59 100644
--- a/examples/qmlbarchart/qml/qmlbarchart/main.qml
+++ b/examples/qmlbarchart/qml/qmlbarchart/main.qml
@@ -22,6 +22,7 @@ import QtQuick 2.0
import com.digia.QtDataVis3D 1.0
DataVisView {
+ id: view
width: 360
height: 360
@@ -34,13 +35,15 @@ DataVisView {
id: testrow
function addData() {
testrow.addItem(testitem);
+ testrow.addItem(testitem);
}
}
Bars {
id: testchart
visible: true
- //width: parent.width
- //height: parent.height
+ width: view.width
+ height: view.height
+ //anchors.fill: view
grid: false
shadowQuality: DataVisView.ShadowNone
@@ -51,15 +54,15 @@ DataVisView {
//console.log(parent)
//console.log(parent.width)
//console.log(parent.height)
- testchart.setupSampleSpace(1, 1);
+ testchart.setupSampleSpace(2, 1);
testchart.addDataRow(testrow);
}
}
- Text {
- text: testitem.label
- anchors.centerIn: parent
- }
+// Text {
+// text: testitem.label
+// anchors.centerIn: parent
+// }
MouseArea {
anchors.fill: parent
onClicked: {
diff --git a/src/datavis3dqml2/datavis3dqml2_plugin.h b/src/datavis3dqml2/datavis3dqml2_plugin.h
index 17b7703b..55d18754 100644
--- a/src/datavis3dqml2/datavis3dqml2_plugin.h
+++ b/src/datavis3dqml2/datavis3dqml2_plugin.h
@@ -57,7 +57,7 @@
#include <QQmlExtensionPlugin>
-QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
+QTENTERPRISE_DATAVIS3D_USE_NAMESPACE
//Q_DECLARE_METATYPE(Declarative3DBars *)
//Q_DECLARE_METATYPE(Declarative3DMaps *)
@@ -71,6 +71,8 @@ Q_DECLARE_METATYPE(QDataItem *)
Q_DECLARE_METATYPE(QDataRow *)
Q_DECLARE_METATYPE(QDataSet *)
+QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
+
class Datavis3dqml2Plugin : public QQmlExtensionPlugin
{
Q_OBJECT
diff --git a/src/datavis3dqml2/datavisview.cpp b/src/datavis3dqml2/datavisview.cpp
index 0322acc1..5279d7da 100644
--- a/src/datavis3dqml2/datavisview.cpp
+++ b/src/datavis3dqml2/datavisview.cpp
@@ -39,13 +39,26 @@
**
****************************************************************************/
+//#define TEST1
+//#define TEST2
+
#include "datavisview.h"
#include "scenerenderernode_p.h"
#include <QDebug>
+#ifdef TEST1
+#include "q3dbars.h"
+#include <QtQuick/QQuickWindow>
+#endif
+
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
+#ifdef TEST1
+Q3DBars *test_scene;
+QQuickWindow *test_window;
+#endif
+
DataVisView::DataVisView(QQuickItem *parent):
QQuickItem(parent)
{
@@ -62,6 +75,34 @@ DataVisView::~DataVisView()
QSGNode *DataVisView::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
+#ifdef TEST1
+ static bool done = false;
+ if (!done) {
+ qDebug() << "create scene";
+ test_scene = new Q3DBars();
+ //test_scene->initialize();
+
+ // TODO: For testing. Add some data to scene.
+ QVector< QVector<float> > data;
+ QVector<float> row;
+ for (int j = 0; j < 2; j++) {
+ for (int i = 0; i < 2; i++)
+ row.append(1.0f);
+ data.append(row);
+ row.clear();
+ }
+ // Set up sample space based on inserted data
+ test_scene->setupSampleSpace(2, 2);
+ // Add data to chart
+ test_scene->addDataSet(data);
+
+ test_window = window();
+ QObject::connect(test_window, &QQuickWindow::beforeRendering, test_scene, &Q3DBars::renderNow,
+ Qt::DirectConnection);
+ test_window->update();
+ done = true;
+ }
+#elif TEST2
// Delete old node and recreate it. This function gets called when window geometry changes.
if (oldNode)
delete oldNode;
@@ -71,6 +112,9 @@ QSGNode *DataVisView::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
node->setRect(boundingRect());
return node;
+#else
+ return NULL;
+#endif
}
QTENTERPRISE_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3dqml2/datavisview.h b/src/datavis3dqml2/datavisview.h
index 3488338c..4e9d29e2 100644
--- a/src/datavis3dqml2/datavisview.h
+++ b/src/datavis3dqml2/datavisview.h
@@ -44,6 +44,7 @@
#include "QtDataVis3D/qdatavis3dglobal.h"
+#include <QtQuick/QQuickItem>
#include <QQuickItem>
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
@@ -57,9 +58,6 @@ class DataVisView : public QQuickItem
Q_ENUMS(LabelTransparency)
public:
- DataVisView(QQuickItem *parent = 0);
- ~DataVisView();
-
enum SelectionMode {
ModeNone = 0,
ModeBar,
@@ -83,14 +81,20 @@ public:
TransparencyNoBackground // Draw just text on transparent background
};
+public:
+ DataVisView(QQuickItem *parent = 0);
+ ~DataVisView();
+
protected:
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
};
-QML_DECLARE_TYPE(DataVisView)
-
QTENTERPRISE_DATAVIS3D_END_NAMESPACE
+QTENTERPRISE_DATAVIS3D_USE_NAMESPACE
+
+QML_DECLARE_TYPE(DataVisView)
+
#endif // DATAVISVIEW_H
diff --git a/src/datavis3dqml2/scenerenderernode.cpp b/src/datavis3dqml2/scenerenderernode.cpp
index 98c2167e..00f03e5e 100644
--- a/src/datavis3dqml2/scenerenderernode.cpp
+++ b/src/datavis3dqml2/scenerenderernode.cpp
@@ -43,7 +43,7 @@
#include <QtQuick/QQuickWindow>
#include <QtGui/QOpenGLFramebufferObject>
-//#include "q3dbars.h"
+#include "q3dbars.h"
//#include "q3dmaps.h"
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
@@ -51,8 +51,8 @@ QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
SceneRendererNode::SceneRendererNode(QQuickWindow *window)
: m_fbo(0),
m_texture(0),
- m_window(window)//,
- //m_scene(0)
+ m_window(window),
+ m_scene(0)
{
connect(m_window, SIGNAL(beforeRendering()), this, SLOT(render()));
}
@@ -61,7 +61,7 @@ SceneRendererNode::~SceneRendererNode()
{
delete m_texture;
delete m_fbo;
- //delete m_scene;
+ delete m_scene;
}
void SceneRendererNode::render()
@@ -78,7 +78,23 @@ void SceneRendererNode::render()
// TODO: If we create the vis3d this way, how do we connect it with QML?
// Should we create it at QML and give it to DataVisView using a property (setVisualizer or similar)?
// DataVisView can then give it here as an argument in constructor?
- //m_scene = new Q3DBars();
+
+ m_scene = new Q3DBars();
+
+ // TODO: For testing. Add some data to scene.
+ QVector< QVector<float> > data;
+ QVector<float> row;
+ for (int j = 0; j < 2; j++) {
+ for (int i = 0; i < 2; i++)
+ row.append(1.0f);
+ data.append(row);
+ row.clear();
+ }
+ // Set up sample space based on inserted data
+ m_scene->setupSampleSpace(2, 2);
+ // Add data to chart
+ m_scene->addDataSet(data);
+
//m_scene = new Q3DMaps();
setTexture(m_texture);
}
@@ -86,7 +102,7 @@ void SceneRendererNode::render()
m_fbo->bind();
// TODO: Render here, or "capture" the rendering we do at Q3DBars/Q3DMaps
- //m_scene->render();
+ m_scene->renderNow();
m_fbo->bindDefault();
diff --git a/src/datavis3dqml2/scenerenderernode_p.h b/src/datavis3dqml2/scenerenderernode_p.h
index 2a1f282c..aa59b9c1 100644
--- a/src/datavis3dqml2/scenerenderernode_p.h
+++ b/src/datavis3dqml2/scenerenderernode_p.h
@@ -63,7 +63,7 @@ class QQuickWindow;
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
-//class Q3DBars;
+class Q3DBars;
//class Q3DMaps;
// TODO: If we use texture node, our rendering is done into a texture that is then drawn to the
@@ -84,7 +84,7 @@ private:
QOpenGLFramebufferObject *m_fbo;
QSGTexture *m_texture;
QQuickWindow *m_window;
- //Q3DBars *m_scene;
+ Q3DBars *m_scene;
//Q3DMaps *m_scene;
};