summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-05-14 13:40:35 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-05-14 13:44:46 +0300
commit8015a58ea819b41e0a896ea9e7d57d7f3a9f1c5f (patch)
tree486a6017c2bd0fdaeb408aed46b76587ddd034dd /src/datavisualization/data
parent824cf363f6ab999d2fc38ebdab1f7faae5559ad0 (diff)
Added visible flag and possibility to release ownership of custom item
Task-number: QTRD-3080 Change-Id: I198930c48fe9bce6a158406aff5fbf31272b9afe Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/data')
-rw-r--r--src/datavisualization/data/customrenderitem.cpp3
-rw-r--r--src/datavisualization/data/customrenderitem_p.h3
-rw-r--r--src/datavisualization/data/qcustom3ditem.cpp26
-rw-r--r--src/datavisualization/data/qcustom3ditem.h5
-rw-r--r--src/datavisualization/data/qcustom3ditem_p.h1
5 files changed, 35 insertions, 3 deletions
diff --git a/src/datavisualization/data/customrenderitem.cpp b/src/datavisualization/data/customrenderitem.cpp
index ad1fba71..53db9bd1 100644
--- a/src/datavisualization/data/customrenderitem.cpp
+++ b/src/datavisualization/data/customrenderitem.cpp
@@ -23,7 +23,8 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION
CustomRenderItem::CustomRenderItem()
: AbstractRenderItem(),
m_texture(0),
- m_object(0)
+ m_object(0),
+ m_visible(true)
{
}
diff --git a/src/datavisualization/data/customrenderitem_p.h b/src/datavisualization/data/customrenderitem_p.h
index 0632f53e..70c162b7 100644
--- a/src/datavisualization/data/customrenderitem_p.h
+++ b/src/datavisualization/data/customrenderitem_p.h
@@ -49,12 +49,15 @@ public:
inline QVector3D scaling() { return m_scaling; }
inline void setBlendNeeded(bool blend) { m_needBlend = blend; }
inline bool isBlendNeeded() { return m_needBlend; }
+ inline void setVisible(bool visible) { m_visible = visible; }
+ inline bool isVisible() { return m_visible; }
private:
GLuint m_texture;
QVector3D m_scaling;
ObjectHelper *m_object;
bool m_needBlend;
+ bool m_visible;
};
typedef QVector<CustomRenderItem *> CustomRenderItemArray;
diff --git a/src/datavisualization/data/qcustom3ditem.cpp b/src/datavisualization/data/qcustom3ditem.cpp
index 70795fdf..285f5a39 100644
--- a/src/datavisualization/data/qcustom3ditem.cpp
+++ b/src/datavisualization/data/qcustom3ditem.cpp
@@ -187,6 +187,23 @@ QQuaternion QCustom3DItem::rotation()
return d_ptr->m_rotation;
}
+/*! \property QCustom3DItem::visible
+ *
+ * Sets the item \a visible. Defaults to \c{true}.
+ */
+void QCustom3DItem::setVisible(bool visible)
+{
+ if (d_ptr->m_visible != visible) {
+ d_ptr->m_visible = visible;
+ emit visibleChanged(visible);
+ }
+}
+
+bool QCustom3DItem::isVisible()
+{
+ return d_ptr->m_visible;
+}
+
/*!
* A convenience function to construct rotation quaternion from \a axis and \a angle.
*
@@ -242,7 +259,11 @@ QString QCustom3DItem::textureFile()
QCustom3DItemPrivate::QCustom3DItemPrivate(QCustom3DItem *q, QObject *parent) :
QObject(parent),
- q_ptr(q)
+ q_ptr(q),
+ m_position(QVector3D(0.0f, 0.0f, 0.0f)),
+ m_scaling(QVector3D(0.1f, 0.1f, 0.1f)),
+ m_rotation(QQuaternion(0.0f, 0.0f, 0.0f, 0.0f)),
+ m_visible(true)
{
}
@@ -254,7 +275,8 @@ QCustom3DItemPrivate::QCustom3DItemPrivate(QCustom3DItem *q, const QString &mesh
m_meshFile(meshFile),
m_position(position),
m_scaling(scaling),
- m_rotation(rotation)
+ m_rotation(rotation),
+ m_visible(true)
{
}
diff --git a/src/datavisualization/data/qcustom3ditem.h b/src/datavisualization/data/qcustom3ditem.h
index 394c51d7..c9d0cd63 100644
--- a/src/datavisualization/data/qcustom3ditem.h
+++ b/src/datavisualization/data/qcustom3ditem.h
@@ -36,6 +36,7 @@ class QT_DATAVISUALIZATION_EXPORT QCustom3DItem : public QObject
Q_PROPERTY(QVector3D position READ position WRITE setPosition NOTIFY positionChanged)
Q_PROPERTY(QVector3D scaling READ scaling WRITE setScaling NOTIFY scalingChanged)
Q_PROPERTY(QQuaternion rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
+ Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged)
public:
explicit QCustom3DItem(QObject *parent = 0);
@@ -59,6 +60,9 @@ public:
void setRotation(const QQuaternion &rotation);
QQuaternion rotation();
+ void setVisible(bool visible);
+ bool isVisible();
+
Q_INVOKABLE void setRotationAxisAndAngle(const QVector3D &axis, float angle);
void setTextureImage(const QImage &textureImage);
@@ -69,6 +73,7 @@ signals:
void positionChanged(const QVector3D &position);
void scalingChanged(const QVector3D &scaling);
void rotationChanged(const QQuaternion &rotation);
+ void visibleChanged(bool visible);
protected:
QScopedPointer<QCustom3DItemPrivate> d_ptr;
diff --git a/src/datavisualization/data/qcustom3ditem_p.h b/src/datavisualization/data/qcustom3ditem_p.h
index 77062768..f85ec5bf 100644
--- a/src/datavisualization/data/qcustom3ditem_p.h
+++ b/src/datavisualization/data/qcustom3ditem_p.h
@@ -53,6 +53,7 @@ public:
QVector3D m_position;
QVector3D m_scaling;
QQuaternion m_rotation;
+ bool m_visible;
private:
friend class QCustom3DItem;