summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/axis
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavis3d/axis')
-rw-r--r--src/datavis3d/axis/axis.pri12
-rw-r--r--src/datavis3d/axis/qabstractaxis.cpp84
-rw-r--r--src/datavis3d/axis/qabstractaxis.h86
-rw-r--r--src/datavis3d/axis/qabstractaxis_p.h61
-rw-r--r--src/datavis3d/axis/qcategoryaxis.cpp60
-rw-r--r--src/datavis3d/axis/qcategoryaxis.h54
-rw-r--r--src/datavis3d/axis/qcategoryaxis_p.h49
-rw-r--r--src/datavis3d/axis/qvalueaxis.cpp235
-rw-r--r--src/datavis3d/axis/qvalueaxis.h77
-rw-r--r--src/datavis3d/axis/qvalueaxis_p.h67
10 files changed, 785 insertions, 0 deletions
diff --git a/src/datavis3d/axis/axis.pri b/src/datavis3d/axis/axis.pri
new file mode 100644
index 00000000..7d5a1c6f
--- /dev/null
+++ b/src/datavis3d/axis/axis.pri
@@ -0,0 +1,12 @@
+HEADERS += \
+ $$PWD/qabstractaxis.h \
+ $$PWD/qabstractaxis_p.h \
+ $$PWD/qvalueaxis.h \
+ $$PWD/qvalueaxis_p.h \
+ $$PWD/qcategoryaxis.h \
+ $$PWD/qcategoryaxis_p.h
+
+SOURCES += \
+ $$PWD/qabstractaxis.cpp \
+ $$PWD/qvalueaxis.cpp \
+ $$PWD/qcategoryaxis.cpp
diff --git a/src/datavis3d/axis/qabstractaxis.cpp b/src/datavis3d/axis/qabstractaxis.cpp
new file mode 100644
index 00000000..71b9effd
--- /dev/null
+++ b/src/datavis3d/axis/qabstractaxis.cpp
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#include "qabstractaxis.h"
+#include "qabstractaxis_p.h"
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+QAbstractAxis::QAbstractAxis(QAbstractAxisPrivate *d) :
+ QObject(0),
+ d_ptr(d)
+{
+}
+
+QAbstractAxis::~QAbstractAxis()
+{
+}
+
+QString QAbstractAxis::title() const
+{
+ return d_ptr->m_title;
+}
+
+QStringList QAbstractAxis::labels() const
+{
+ return d_ptr->m_labels;
+}
+
+QAbstractAxis::AxisOrientation QAbstractAxis::orientation() const
+{
+ return d_ptr->m_orientation;
+}
+
+QAbstractAxis::AxisType QAbstractAxis::type() const
+{
+ return d_ptr->m_type;
+}
+
+void QAbstractAxis::setTitle(QString title)
+{
+ if (d_ptr->m_title != title) {
+ d_ptr->m_title = title;
+ emit titleChanged(title);
+ }
+}
+
+// QAbstractAxisPrivate
+
+QAbstractAxisPrivate::QAbstractAxisPrivate(QAbstractAxis *q, QAbstractAxis::AxisType type)
+ : QObject(0),
+ q_ptr(q),
+ m_orientation(QAbstractAxis::AxisOrientationNone),
+ m_type(type)
+{
+}
+
+QAbstractAxisPrivate::~QAbstractAxisPrivate()
+{
+}
+
+void QAbstractAxisPrivate::setOrientation(QAbstractAxis::AxisOrientation orientation)
+{
+ if (m_orientation == QAbstractAxis::AxisOrientationNone)
+ m_orientation = orientation;
+ else
+ Q_ASSERT("Attempted to reset axis orientation.");
+}
+
+QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/axis/qabstractaxis.h b/src/datavis3d/axis/qabstractaxis.h
new file mode 100644
index 00000000..4bc0ac16
--- /dev/null
+++ b/src/datavis3d/axis/qabstractaxis.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#ifndef QABSTRACTAXIS_H
+#define QABSTRACTAXIS_H
+
+#include <QtDataVis3D/qdatavis3denums.h>
+#include <QObject>
+#include <QScopedPointer>
+#include <QVector>
+#include <QStringList>
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+class QAbstractAxisPrivate;
+
+class QT_DATAVIS3D_EXPORT QAbstractAxis : public QObject
+{
+ Q_OBJECT
+ Q_ENUMS(AxisOrientation)
+ Q_ENUMS(AxisType)
+ Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
+ Q_PROPERTY(QStringList labels READ labels NOTIFY labelsChanged)
+ Q_PROPERTY(AxisOrientation orientation READ orientation)
+ Q_PROPERTY(AxisType type READ type)
+
+public:
+ enum AxisOrientation {
+ AxisOrientationNone = 0,
+ AxisOrientationX = 1,
+ AxisOrientationY = 2,
+ AxisOrientationZ = 4
+ };
+
+ enum AxisType {
+ AxisTypeNone = 0,
+ AxisTypeCategory = 1,
+ AxisTypeValue = 2
+ //AxisTypeLogValue = 6 // inherits valueaxis (4 + 2) // TODO
+ };
+
+protected:
+ explicit QAbstractAxis(QAbstractAxisPrivate *d);
+public:
+ virtual ~QAbstractAxis();
+
+ QString title() const;
+ QStringList labels() const;
+
+ AxisOrientation orientation() const;
+ AxisType type() const;
+
+public slots:
+ void setTitle(QString title);
+
+signals:
+ void titleChanged(QString newTitle);
+ void labelsChanged();
+
+protected:
+ QScopedPointer<QAbstractAxisPrivate> d_ptr;
+
+private:
+ Q_DISABLE_COPY(QAbstractAxis)
+
+ friend class Abstract3DController;
+};
+
+QT_DATAVIS3D_END_NAMESPACE
+
+#endif // QABSTRACTAXIS_H
diff --git a/src/datavis3d/axis/qabstractaxis_p.h b/src/datavis3d/axis/qabstractaxis_p.h
new file mode 100644
index 00000000..3866ee75
--- /dev/null
+++ b/src/datavis3d/axis/qabstractaxis_p.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the QtDataVis3D API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#include "datavis3dglobal_p.h"
+#include "qabstractaxis.h"
+
+#ifndef QABSTRACTAXIS_P_H
+#define QABSTRACTAXIS_P_H
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+class QAbstractAxisPrivate : public QObject
+{
+ Q_OBJECT
+public:
+ QAbstractAxisPrivate(QAbstractAxis *q, QAbstractAxis::AxisType type);
+ virtual ~QAbstractAxisPrivate();
+
+ void setOrientation(QAbstractAxis::AxisOrientation orientation);
+
+protected:
+ QAbstractAxis *q_ptr;
+
+ QString m_title;
+ QStringList m_labels;
+ QAbstractAxis::AxisOrientation m_orientation;
+ QAbstractAxis::AxisType m_type;
+
+ friend class QAbstractAxis;
+ friend class QValueAxis;
+ friend class QCategoryAxis;
+};
+
+QT_DATAVIS3D_END_NAMESPACE
+
+#endif // QABSTRACTAXIS_P_H
diff --git a/src/datavis3d/axis/qcategoryaxis.cpp b/src/datavis3d/axis/qcategoryaxis.cpp
new file mode 100644
index 00000000..c20eb80f
--- /dev/null
+++ b/src/datavis3d/axis/qcategoryaxis.cpp
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#include "qcategoryaxis.h"
+#include "qcategoryaxis_p.h"
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+QCategoryAxis::QCategoryAxis() :
+ QAbstractAxis(new QCategoryAxisPrivate(this))
+{
+}
+
+QCategoryAxis::~QCategoryAxis()
+{
+}
+
+QStringList QCategoryAxis::categoryLabels() const
+{
+ return labels();
+}
+
+void QCategoryAxis::setCategoryLabels(const QStringList &labels)
+{
+ if (d_ptr->m_labels != labels) {
+ d_ptr->m_labels = labels;
+ emit labelsChanged();
+ }
+}
+
+QCategoryAxisPrivate *QCategoryAxis::dptr()
+{
+ return static_cast<QCategoryAxisPrivate *>(d_ptr.data());
+}
+
+QCategoryAxisPrivate::QCategoryAxisPrivate(QCategoryAxis *q)
+ : QAbstractAxisPrivate(q, QAbstractAxis::AxisTypeCategory)
+{
+}
+
+QCategoryAxisPrivate::~QCategoryAxisPrivate()
+{
+}
+
+QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/axis/qcategoryaxis.h b/src/datavis3d/axis/qcategoryaxis.h
new file mode 100644
index 00000000..8d1e3f57
--- /dev/null
+++ b/src/datavis3d/axis/qcategoryaxis.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#ifndef QCATEGORYAXIS_H
+#define QCATEGORYAXIS_H
+
+#include <QtDataVis3D/qabstractaxis.h>
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+class QCategoryAxisPrivate;
+
+class QT_DATAVIS3D_EXPORT QCategoryAxis : public QAbstractAxis
+{
+ Q_OBJECT
+ // Note: categoryLabels actually reads/writes the labels property in abstract axis,
+ // which is read only there. Since subclass cannot have property with same name,
+ // this partially duplicate property is necessary.
+ Q_PROPERTY(QStringList categoryLabels READ categoryLabels WRITE setCategoryLabels)
+public:
+ explicit QCategoryAxis();
+ ~QCategoryAxis();
+
+ QStringList categoryLabels() const;
+
+public slots:
+ void setCategoryLabels(const QStringList &labels);
+
+protected:
+ QCategoryAxisPrivate *dptr();
+
+private:
+
+ Q_DISABLE_COPY(QCategoryAxis)
+};
+
+QT_DATAVIS3D_END_NAMESPACE
+
+#endif // QCATEGORYAXIS_H
diff --git a/src/datavis3d/axis/qcategoryaxis_p.h b/src/datavis3d/axis/qcategoryaxis_p.h
new file mode 100644
index 00000000..3ca79c64
--- /dev/null
+++ b/src/datavis3d/axis/qcategoryaxis_p.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the QtDataVis3D API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#include "qcategoryaxis.h"
+#include "qabstractaxis_p.h"
+#include "qbardataitem.h"
+
+#ifndef QCATEGORYAXIS_P_H
+#define QCATEGORYAXIS_P_H
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+class QCategoryAxisPrivate : public QAbstractAxisPrivate
+{
+ Q_OBJECT
+
+public:
+ QCategoryAxisPrivate(QCategoryAxis *q);
+ virtual ~QCategoryAxisPrivate();
+};
+
+QT_DATAVIS3D_END_NAMESPACE
+
+#endif // QCATEGORYAXIS_P_H
diff --git a/src/datavis3d/axis/qvalueaxis.cpp b/src/datavis3d/axis/qvalueaxis.cpp
new file mode 100644
index 00000000..cee8a5c7
--- /dev/null
+++ b/src/datavis3d/axis/qvalueaxis.cpp
@@ -0,0 +1,235 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#include "qvalueaxis.h"
+#include "qvalueaxis_p.h"
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+QValueAxis::QValueAxis() :
+ QAbstractAxis(new QValueAxisPrivate(this))
+{
+}
+
+QValueAxis::~QValueAxis()
+{
+}
+
+void QValueAxis::setRange(qreal min, qreal max)
+{
+ dptr()->setRange(min, max);
+ setAutoAdjustRange(false);
+}
+
+void QValueAxis::setMin(qreal min)
+{
+ dptr()->setMin(min);
+ setAutoAdjustRange(false);
+}
+
+void QValueAxis::setMax(qreal max)
+{
+ dptr()->setMax(max);
+ setAutoAdjustRange(false);
+}
+
+qreal QValueAxis::min() const
+{
+ return dptrc()->m_min;
+}
+
+qreal QValueAxis::max() const
+{
+ return dptrc()->m_max;
+}
+
+void QValueAxis::setSegmentCount(int count)
+{
+ if (count <= 0) {
+ qWarning() << "Warning: Illegal segment count automatically adjusted to a legal one:"
+ << count << "-> 1";
+ count = 1;
+ }
+ if (dptr()->m_segmentCount != count){
+ dptr()->m_segmentCount = count;
+ dptr()->recreateLabels();
+ emit segmentCountChanged(count);
+ }
+}
+
+int QValueAxis::segmentCount() const
+{
+ return dptrc()->m_segmentCount;
+}
+
+void QValueAxis::setSubSegmentCount(int count)
+{
+ if (count <= 0) {
+ qWarning() << "Warning: Illegal subsegment count automatically adjusted to a legal one:"
+ << count << "-> 1";
+ count = 1;
+ }
+ if (dptr()->m_subSegmentCount != count) {
+ dptr()->m_subSegmentCount = count;
+ emit subSegmentCountChanged(count);
+ }
+}
+
+int QValueAxis::subSegmentCount() const
+{
+ return dptrc()->m_subSegmentCount;
+}
+
+void QValueAxis::setAutoAdjustRange(bool autoAdjust)
+{
+ if (dptr()->m_autoAdjust != autoAdjust) {
+ dptr()->m_autoAdjust = autoAdjust;
+ emit autoAdjustRangeChanged(autoAdjust);
+ }
+}
+
+bool QValueAxis::isAutoAdjustRange() const
+{
+ return dptrc()->m_autoAdjust;
+}
+
+void QValueAxis::setLabelFormat(const QString &format)
+{
+ if (dptr()->m_labelFormat != format) {
+ dptr()->m_labelFormat = format;
+ dptr()->recreateLabels();
+ emit labelFormatChanged(format);
+ }
+}
+
+QString QValueAxis::labelFormat() const
+{
+ return dptrc()->m_labelFormat;
+}
+
+QValueAxisPrivate *QValueAxis::dptr()
+{
+ return static_cast<QValueAxisPrivate *>(d_ptr.data());
+}
+
+const QValueAxisPrivate *QValueAxis::dptrc() const
+{
+ return static_cast<const QValueAxisPrivate *>(d_ptr.data());
+}
+
+QValueAxisPrivate::QValueAxisPrivate(QValueAxis *q)
+ : QAbstractAxisPrivate(q, QAbstractAxis::AxisTypeValue),
+ m_min(0.0),
+ m_max(10.0),
+ m_segmentCount(5),
+ m_subSegmentCount(1),
+ m_autoAdjust(true)
+{
+}
+
+QValueAxisPrivate::~QValueAxisPrivate()
+{
+}
+
+void QValueAxisPrivate::setRange(qreal min, qreal max)
+{
+ // If min >= max, we adjust ranges so that
+ // m_max becomes (min + 1.0)
+ // as axes need some kind of valid range.
+ // TODO: Make "reverse" axes work (i.e. min > max)
+ bool dirty = false;
+ if (m_min != min) {
+ m_min = min;
+ dirty = true;
+ }
+ if (m_max != max) {
+ if (min >= max) {
+ m_max = min + 1.0;
+ qWarning() << "Warning: Tried to set invalid range for value axis."
+ " Range automatically adjusted to a valid one:"
+ << min << "-" << max << "-->" << m_min << "-" << m_max;
+ } else {
+ m_max = max;
+ }
+ dirty = true;
+ }
+ if (dirty) {
+ recreateLabels();
+ emit qptr()->rangeChanged(min, max);
+ }
+}
+
+void QValueAxisPrivate::setMin(qreal min)
+{
+ if (m_min != min) {
+ if (min >= m_max) {
+ qreal oldMax = m_max;
+ m_max = min + 1.0;
+ qWarning() << "Warning: Tried to set minimum to equal or larger than maximum for"
+ " value axis. Maximum automatically adjusted to a valid one:"
+ << oldMax << "-->" << m_max;
+ }
+ m_min = min;
+ recreateLabels();
+ emit qptr()->rangeChanged(m_min, m_max);
+ }
+}
+
+void QValueAxisPrivate::setMax(qreal max)
+{
+ if (m_max != max) {
+ if (max <= m_min) {
+ qreal oldMin = m_min;
+ m_min = max - 1.0;
+ qWarning() << "Warning: Tried to set maximum to equal or smaller than minimum for"
+ " value axis. Minimum automatically adjusted to a valid one:"
+ << oldMin << "-->" << m_min;
+ }
+ m_max = max;
+ recreateLabels();
+ emit qptr()->rangeChanged(m_min, m_max);
+ }
+}
+
+void QValueAxisPrivate::recreateLabels()
+{
+ QStringList newLabels;
+ newLabels.reserve(m_segmentCount + 1);
+
+ // First label is at axis min, which is an extra segment
+ qreal segmentStep = (m_max - m_min) / m_segmentCount;
+
+ for (int i = 0; i < m_segmentCount; i++) {
+ // TODO Actually do proper formatting
+ newLabels.append(QString::number(m_min + (segmentStep * i)));
+ }
+ // Ensure max label doesn't suffer from any rounding errors
+ newLabels.append(QString::number(m_max));
+
+ if (m_labels != newLabels) {
+ m_labels = newLabels;
+ emit q_ptr->labelsChanged();
+ }
+}
+
+QValueAxis *QValueAxisPrivate::qptr()
+{
+ return static_cast<QValueAxis *>(q_ptr);
+}
+
+QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/axis/qvalueaxis.h b/src/datavis3d/axis/qvalueaxis.h
new file mode 100644
index 00000000..c9658f37
--- /dev/null
+++ b/src/datavis3d/axis/qvalueaxis.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#ifndef QVALUEAXIS_H
+#define QVALUEAXIS_H
+
+#include <QtDataVis3D/qabstractaxis.h>
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+class QValueAxisPrivate;
+
+class QT_DATAVIS3D_EXPORT QValueAxis : public QAbstractAxis
+{
+ Q_OBJECT
+ Q_PROPERTY(qreal min READ min WRITE setMin NOTIFY rangeChanged)
+ Q_PROPERTY(qreal max READ max WRITE setMax NOTIFY rangeChanged)
+ Q_PROPERTY(int segmentCount READ segmentCount WRITE setSegmentCount NOTIFY segmentCountChanged)
+ Q_PROPERTY(int subSegmentCount READ subSegmentCount WRITE setSubSegmentCount NOTIFY subSegmentCountChanged)
+ Q_PROPERTY(bool autoAdjustRange READ isAutoAdjustRange WRITE setAutoAdjustRange NOTIFY autoAdjustRangeChanged)
+ Q_PROPERTY(QString labelFormat READ labelFormat WRITE setLabelFormat NOTIFY labelFormatChanged)
+
+public:
+ explicit QValueAxis();
+ ~QValueAxis();
+
+ qreal min() const;
+ qreal max() const;
+ int segmentCount() const;
+ int subSegmentCount() const;
+ bool isAutoAdjustRange() const;
+ QString labelFormat() const;
+
+public slots:
+ void setRange(qreal min, qreal max);
+ void setMin(qreal min);
+ void setMax(qreal max);
+ void setSegmentCount(int count);
+ void setSubSegmentCount(int count);
+ void setAutoAdjustRange(bool autoAdjust);
+ void setLabelFormat(const QString &format);
+
+signals:
+ void rangeChanged(qreal min, qreal max);
+ void segmentCountChanged(int count);
+ void subSegmentCountChanged(int count);
+ void autoAdjustRangeChanged(bool autoAdjust);
+ void labelFormatChanged(QString format);
+
+protected:
+ QValueAxisPrivate *dptr();
+ const QValueAxisPrivate *dptrc() const;
+
+private:
+ Q_DISABLE_COPY(QValueAxis)
+ friend class Bars3dController;
+ friend class Scatter3DController;
+};
+
+QT_DATAVIS3D_END_NAMESPACE
+
+#endif // QVALUEAXIS_H
diff --git a/src/datavis3d/axis/qvalueaxis_p.h b/src/datavis3d/axis/qvalueaxis_p.h
new file mode 100644
index 00000000..f730d0c0
--- /dev/null
+++ b/src/datavis3d/axis/qvalueaxis_p.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVis3D module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the QtDataVis3D API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#include "qvalueaxis.h"
+#include "qabstractaxis_p.h"
+
+#ifndef QVALUEAXIS_P_H
+#define QVALUEAXIS_P_H
+
+QT_DATAVIS3D_BEGIN_NAMESPACE
+
+class QValueAxisPrivate : public QAbstractAxisPrivate
+{
+ Q_OBJECT
+
+public:
+ QValueAxisPrivate(QValueAxis *q);
+ virtual ~QValueAxisPrivate();
+
+ void setRange(qreal min, qreal max);
+ void setMin(qreal min);
+ void setMax (qreal max);
+
+protected:
+ void recreateLabels();
+
+ qreal m_min;
+ qreal m_max;
+ int m_segmentCount;
+ int m_subSegmentCount;
+ bool m_autoAdjust;
+ QString m_labelFormat;
+
+private:
+ QValueAxis *qptr();
+
+ friend class QValueAxis;
+};
+
+QT_DATAVIS3D_END_NAMESPACE
+
+#endif // QVALUEAXIS_P_H