summaryrefslogtreecommitdiffstats
path: root/src/datavis3d
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-04-15 12:11:55 +0300
committerMika Salmela <mika.salmela@digia.com>2013-04-15 12:25:26 +0300
commiteb92ad69dbe1568a3055d01066d975cce9fdcc39 (patch)
treeeed51e9676b121618a1cb2c5f316de77d693582b /src/datavis3d
parente73afe39d81fd6fba070aa475d9c7490a6a7d8d1 (diff)
Preset camera function moved to camerahelper
Change-Id: I6b96abd8a951622496abab0495f44fcd4ec1764b Change-Id: I6b96abd8a951622496abab0495f44fcd4ec1764b Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavis3d')
-rw-r--r--src/datavis3d/engine/q3dbars.cpp114
-rw-r--r--src/datavis3d/engine/qdataset.cpp11
-rw-r--r--src/datavis3d/utils/camerahelper.cpp103
-rw-r--r--src/datavis3d/utils/camerahelper_p.h2
4 files changed, 121 insertions, 109 deletions
diff --git a/src/datavis3d/engine/q3dbars.cpp b/src/datavis3d/engine/q3dbars.cpp
index d7a7c16b..a9d18c73 100644
--- a/src/datavis3d/engine/q3dbars.cpp
+++ b/src/datavis3d/engine/q3dbars.cpp
@@ -126,14 +126,13 @@ void Q3DBars::initialize()
, QVector3D(0.0f, 0.0f, zComp)
, QVector3D(0.0f, 1.0f, 0.0f));
- CameraHelper::setCameraRotation(QPointF(d_ptr->m_horizontalRotation
- , d_ptr->m_verticalRotation));
-
// Set view port
glViewport(0, 0, width(), height());
// Set initialized -flag
d_ptr->m_isInitialized = true;
+
+ //qDebug("Initialized");
}
void Q3DBars::render()
@@ -1195,6 +1194,7 @@ void Q3DBars::setupSampleSpace(QPoint sampleCount, const QString &labelRow
, const QString &labelColumn, const QString &labelHeight)
{
d_ptr->m_sampleCount = sampleCount;
+ d_ptr->m_dataSet->setLabels(labelRow, labelColumn, labelHeight);
// TODO: Invent "idiotproof" max scene size formula..
// This seems to work ok if spacing is not negative
d_ptr->m_maxSceneSize = 2 * qSqrt(sampleCount.x() * sampleCount.y());
@@ -1208,107 +1208,7 @@ void Q3DBars::setupSampleSpace(QPoint sampleCount, const QString &labelRow
void Q3DBars::setCameraPreset(CameraPreset preset)
{
- // TODO: This should be moved to CameraHelper to be directly usable by other vis types - just call directly a function there?
- // TODO: Move these enums to namespace level?
- switch (preset) {
- case PresetFrontLow: {
- qDebug("PresetFrontLow");
- setCameraPosition(0.0f, 0.0f);
- break;
- }
- case PresetFront: {
- qDebug("PresetFront");
- setCameraPosition(0.0f, 22.5f);
- break;
- }
- case PresetFrontHigh: {
- qDebug("PresetFrontHigh");
- setCameraPosition(0.0f, 45.0f);
- break;
- }
- case PresetLeftLow: {
- qDebug("PresetLeftLow");
- setCameraPosition(90.0f, 0.0f);
- break;
- }
- case PresetLeft: {
- qDebug("PresetLeft");
- setCameraPosition(90.0f, 22.5f);
- break;
- }
- case PresetLeftHigh: {
- qDebug("PresetLeftHigh");
- setCameraPosition(90.0f, 45.0f);
- break;
- }
- case PresetRightLow: {
- qDebug("PresetRightLow");
- setCameraPosition(-90.0f, 0.0f);
- break;
- }
- case PresetRight: {
- qDebug("PresetRight");
- setCameraPosition(-90.0f, 22.5f);
- break;
- }
- case PresetRightHigh: {
- qDebug("PresetRightHigh");
- setCameraPosition(-90.0f, 45.0f);
- break;
- }
- case PresetBehindLow: {
- qDebug("PresetBehindLow");
- setCameraPosition(180.0f, 0.0f);
- break;
- }
- case PresetBehind: {
- qDebug("PresetBehind");
- setCameraPosition(180.0f, 22.5f);
- break;
- }
- case PresetBehindHigh: {
- qDebug("PresetBehindHigh");
- setCameraPosition(180.0f, 45.0f);
- break;
- }
- case PresetIsometricLeft: {
- qDebug("PresetIsometricLeft");
- setCameraPosition(45.0f, 22.5f);
- break;
- }
- case PresetIsometricLeftHigh: {
- qDebug("PresetIsometricLeftHigh");
- setCameraPosition(45.0f, 45.0f);
- break;
- }
- case PresetIsometricRight: {
- qDebug("PresetIsometricRight");
- setCameraPosition(-45.0f, 22.5f);
- break;
- }
- case PresetIsometricRightHigh: {
- qDebug("PresetIsometricRightHigh");
- setCameraPosition(-45.0f, 45.0f);
- break;
- }
- case PresetDirectlyAbove: {
- qDebug("PresetDirectlyAbove");
- setCameraPosition(0.0f, 90.0f);
- break;
- }
- case PresetDirectlyAboveCW45: {
- qDebug("PresetDirectlyAboveCW45");
- setCameraPosition(-45.0f, 90.0f);
- break;
- }
- case PresetDirectlyAboveCCW45: {
- qDebug("PresetDirectlyAboveCCW45");
- setCameraPosition(45.0f, 90.0f);
- break;
- }
- default:
- break;
- }
+ CameraHelper::setCameraPreset(preset);
}
void Q3DBars::setCameraPosition(float horizontal, float vertical, int distance)
@@ -1443,7 +1343,8 @@ void Q3DBars::addDataSet(const QVector< QVector<float> > &data, const QVector<QS
row++;
}
d_ptr->m_heightNormalizer = d_ptr->m_dataSet->d_ptr->highestValue();
- d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn); // TODO: Copy axis names from sample space data
+ // Empty QStrings won't override already set axis labels
+ d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn);
d_ptr->m_dataSet->d_ptr->verifySize(d_ptr->m_sampleCount.y());
}
@@ -1467,7 +1368,8 @@ void Q3DBars::addDataSet(const QVector< QVector<QDataItem*> > &data
row++;
}
d_ptr->m_heightNormalizer = d_ptr->m_dataSet->d_ptr->highestValue();
- d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn); // TODO: Copy axis names from sample space data
+ // Empty QStrings won't override already set axis labels
+ d_ptr->m_dataSet->setLabels(QString(), QString(), QString(), labelsRow, labelsColumn);
d_ptr->m_dataSet->d_ptr->verifySize(d_ptr->m_sampleCount.y());
}
diff --git a/src/datavis3d/engine/qdataset.cpp b/src/datavis3d/engine/qdataset.cpp
index 8dd2eb88..ddfd907c 100644
--- a/src/datavis3d/engine/qdataset.cpp
+++ b/src/datavis3d/engine/qdataset.cpp
@@ -66,9 +66,14 @@ void QDataSet::setLabels(const QString &xAxis
, const QVector<QString> &labelsRow
, const QVector<QString> &labelsColumn)
{
- d_ptr->m_xAxis = xAxis;
- d_ptr->m_zAxis = zAxis;
- d_ptr->m_yAxis = yAxis;
+ QString empty;
+ // skip empty labels, keep the previous ones
+ if (xAxis != empty)
+ d_ptr->m_xAxis = xAxis;
+ if (zAxis != empty)
+ d_ptr->m_zAxis = zAxis;
+ if (yAxis != empty)
+ d_ptr->m_yAxis = yAxis;
d_ptr->m_labelsRow = labelsRow;
d_ptr->m_labelsColumn = labelsColumn;
}
diff --git a/src/datavis3d/utils/camerahelper.cpp b/src/datavis3d/utils/camerahelper.cpp
index ac93abaa..4b8830a1 100644
--- a/src/datavis3d/utils/camerahelper.cpp
+++ b/src/datavis3d/utils/camerahelper.cpp
@@ -177,4 +177,107 @@ QPointF CameraHelper::getCameraRotations()
return rotations;
}
+void CameraHelper::setCameraPreset(Q3DBars::CameraPreset preset)
+{
+ switch (preset) {
+ case Q3DBars::PresetFrontLow: {
+ qDebug("PresetFrontLow");
+ CameraHelper::setCameraRotation(QPointF(0.0f, 0.0f));
+ break;
+ }
+ case Q3DBars::PresetFront: {
+ qDebug("PresetFront");
+ CameraHelper::setCameraRotation(QPointF(0.0f, 22.5f));
+ break;
+ }
+ case Q3DBars::PresetFrontHigh: {
+ qDebug("PresetFrontHigh");
+ CameraHelper::setCameraRotation(QPointF(0.0f, 45.0f));
+ break;
+ }
+ case Q3DBars::PresetLeftLow: {
+ qDebug("PresetLeftLow");
+ CameraHelper::setCameraRotation(QPointF(90.0f, 0.0f));
+ break;
+ }
+ case Q3DBars::PresetLeft: {
+ qDebug("PresetLeft");
+ CameraHelper::setCameraRotation(QPointF(90.0f, 22.5f));
+ break;
+ }
+ case Q3DBars::PresetLeftHigh: {
+ qDebug("PresetLeftHigh");
+ CameraHelper::setCameraRotation(QPointF(90.0f, 45.0f));
+ break;
+ }
+ case Q3DBars::PresetRightLow: {
+ qDebug("PresetRightLow");
+ CameraHelper::setCameraRotation(QPointF(-90.0f, 0.0f));
+ break;
+ }
+ case Q3DBars::PresetRight: {
+ qDebug("PresetRight");
+ CameraHelper::setCameraRotation(QPointF(-90.0f, 22.5f));
+ break;
+ }
+ case Q3DBars::PresetRightHigh: {
+ qDebug("PresetRightHigh");
+ CameraHelper::setCameraRotation(QPointF(-90.0f, 45.0f));
+ break;
+ }
+ case Q3DBars::PresetBehindLow: {
+ qDebug("PresetBehindLow");
+ CameraHelper::setCameraRotation(QPointF(180.0f, 0.0f));
+ break;
+ }
+ case Q3DBars::PresetBehind: {
+ qDebug("PresetBehind");
+ CameraHelper::setCameraRotation(QPointF(180.0f, 22.5f));
+ break;
+ }
+ case Q3DBars::PresetBehindHigh: {
+ qDebug("PresetBehindHigh");
+ CameraHelper::setCameraRotation(QPointF(180.0f, 45.0f));
+ break;
+ }
+ case Q3DBars::PresetIsometricLeft: {
+ qDebug("PresetIsometricLeft");
+ CameraHelper::setCameraRotation(QPointF(45.0f, 22.5f));
+ break;
+ }
+ case Q3DBars::PresetIsometricLeftHigh: {
+ qDebug("PresetIsometricLeftHigh");
+ CameraHelper::setCameraRotation(QPointF(45.0f, 45.0f));
+ break;
+ }
+ case Q3DBars::PresetIsometricRight: {
+ qDebug("PresetIsometricRight");
+ CameraHelper::setCameraRotation(QPointF(-45.0f, 22.5f));
+ break;
+ }
+ case Q3DBars::PresetIsometricRightHigh: {
+ qDebug("PresetIsometricRightHigh");
+ CameraHelper::setCameraRotation(QPointF(-45.0f, 45.0f));
+ break;
+ }
+ case Q3DBars::PresetDirectlyAbove: {
+ qDebug("PresetDirectlyAbove");
+ CameraHelper::setCameraRotation(QPointF(0.0f, 90.0f));
+ break;
+ }
+ case Q3DBars::PresetDirectlyAboveCW45: {
+ qDebug("PresetDirectlyAboveCW45");
+ CameraHelper::setCameraRotation(QPointF(-45.0f, 90.0f));
+ break;
+ }
+ case Q3DBars::PresetDirectlyAboveCCW45: {
+ qDebug("PresetDirectlyAboveCCW45");
+ CameraHelper::setCameraRotation(QPointF(45.0f, 90.0f));
+ break;
+ }
+ default:
+ break;
+ }
+}
+
QTCOMMERCIALDATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/utils/camerahelper_p.h b/src/datavis3d/utils/camerahelper_p.h
index 1f8cb074..a27bbc3b 100644
--- a/src/datavis3d/utils/camerahelper_p.h
+++ b/src/datavis3d/utils/camerahelper_p.h
@@ -53,6 +53,7 @@
#define CAMERAPOSITIONER_P_H
#include "qdatavis3dglobal.h"
+#include "q3dbars.h"
class QMatrix4x4;
class QVector3D;
@@ -82,6 +83,7 @@ public:
static QVector3D calculateLightPosition(const QVector3D &lightPosition
, float fixedRotation = 0.0f);
static void updateMousePos(const QPoint &mousePos);
+ static void setCameraPreset(Q3DBars::CameraPreset preset);
};
QTCOMMERCIALDATAVIS3D_END_NAMESPACE