diff options
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r-- | src/datavisualization/engine/abstract3dcontroller.cpp | 36 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3dcontroller.cpp | 138 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3dcontroller_p.h | 16 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3drenderer.cpp | 99 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3drenderer_p.h | 1 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dbars.cpp | 22 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dbars.h | 4 |
7 files changed, 147 insertions, 169 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp index bcccf833..e9ba1739 100644 --- a/src/datavisualization/engine/abstract3dcontroller.cpp +++ b/src/datavisualization/engine/abstract3dcontroller.cpp @@ -194,30 +194,21 @@ void Abstract3DController::synchDataToRenderer() } if (m_changeTracker.axisXRangeChanged) { + m_renderer->updateAxisRange(Q3DAbstractAxis::AxisOrientationX, m_axisX->min(), + m_axisX->max()); m_changeTracker.axisXRangeChanged = false; - if (m_axisX->type() & Q3DAbstractAxis::AxisTypeValue) { - Q3DValueAxis *valueAxisX = static_cast<Q3DValueAxis *>(m_axisX); - m_renderer->updateAxisRange(Q3DAbstractAxis::AxisOrientationX, - valueAxisX->min(), valueAxisX->max()); - } } if (m_changeTracker.axisYRangeChanged) { + m_renderer->updateAxisRange(Q3DAbstractAxis::AxisOrientationY, m_axisY->min(), + m_axisY->max()); m_changeTracker.axisYRangeChanged = false; - if (m_axisY->type() & Q3DAbstractAxis::AxisTypeValue) { - Q3DValueAxis *valueAxisY = static_cast<Q3DValueAxis *>(m_axisY); - m_renderer->updateAxisRange(Q3DAbstractAxis::AxisOrientationY, - valueAxisY->min(), valueAxisY->max()); - } } if (m_changeTracker.axisZRangeChanged) { + m_renderer->updateAxisRange(Q3DAbstractAxis::AxisOrientationZ, m_axisZ->min(), + m_axisZ->max()); m_changeTracker.axisZRangeChanged = false; - if (m_axisZ->type() & Q3DAbstractAxis::AxisTypeValue) { - Q3DValueAxis *valueAxisZ = static_cast<Q3DValueAxis *>(m_axisZ); - m_renderer->updateAxisRange(Q3DAbstractAxis::AxisOrientationZ, - valueAxisZ->min(), valueAxisZ->max()); - } } if (m_changeTracker.axisXSegmentCountChanged) { @@ -989,6 +980,10 @@ void Abstract3DController::setAxisHelper(Q3DAbstractAxis::AxisOrientation orient this, &Abstract3DController::handleAxisTitleChanged); QObject::connect(axis, &Q3DAbstractAxis::labelsChanged, this, &Abstract3DController::handleAxisLabelsChanged); + QObject::connect(axis, &Q3DAbstractAxis::rangeChanged, + this, &Abstract3DController::handleAxisRangeChanged); + QObject::connect(axis, &Q3DAbstractAxis::autoAdjustRangeChanged, + this, &Abstract3DController::handleAxisAutoAdjustRangeChanged); if (orientation == Q3DAbstractAxis::AxisOrientationX) m_changeTracker.axisXTypeChanged = true; @@ -999,25 +994,21 @@ void Abstract3DController::setAxisHelper(Q3DAbstractAxis::AxisOrientation orient handleAxisTitleChangedBySender(axis); handleAxisLabelsChangedBySender(axis); + handleAxisRangeChangedBySender(axis); + handleAxisAutoAdjustRangeChangedInOrientation(axis->orientation(), + axis->isAutoAdjustRange()); if (axis->type() & Q3DAbstractAxis::AxisTypeValue) { Q3DValueAxis *valueAxis = static_cast<Q3DValueAxis *>(axis); - QObject::connect(valueAxis, &Q3DValueAxis::rangeChanged, - this, &Abstract3DController::handleAxisRangeChanged); QObject::connect(valueAxis, &Q3DValueAxis::segmentCountChanged, this, &Abstract3DController::handleAxisSegmentCountChanged); QObject::connect(valueAxis, &Q3DValueAxis::subSegmentCountChanged, this, &Abstract3DController::handleAxisSubSegmentCountChanged); - QObject::connect(valueAxis, &Q3DValueAxis::autoAdjustRangeChanged, - this, &Abstract3DController::handleAxisAutoAdjustRangeChanged); QObject::connect(valueAxis, &Q3DValueAxis::labelFormatChanged, this, &Abstract3DController::handleAxisLabelFormatChanged); - handleAxisRangeChangedBySender(valueAxis); handleAxisSegmentCountChangedBySender(valueAxis); handleAxisSubSegmentCountChangedBySender(valueAxis); - handleAxisAutoAdjustRangeChangedInOrientation(valueAxis->orientation(), - valueAxis->isAutoAdjustRange()); handleAxisLabelFormatChangedBySender(valueAxis); } } @@ -1051,6 +1042,7 @@ Q3DCategoryAxis *Abstract3DController::createDefaultCategoryAxis() // Default category axis has no labels // TODO: Grid should be also hidden, but that is not currently controlled by axis. Q3DCategoryAxis *defaultAxis = new Q3DCategoryAxis; + defaultAxis->setAutoAdjustRange(true); defaultAxis->d_ptr->setDefaultAxis(true); return defaultAxis; } diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index 1f4d44c0..5ec6f01f 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -32,8 +32,6 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE Bars3DController::Bars3DController(QRect boundRect) : Abstract3DController(boundRect), - m_rowCount(10), - m_columnCount(10), m_selectedBarPos(noSelectionPoint()), m_isBarSpecRelative(true), m_barThicknessRatio(1.0f), @@ -81,11 +79,6 @@ void Bars3DController::synchDataToRenderer() return; // Notify changes to renderer - if (m_changeTracker.sampleSpaceChanged) { - m_renderer->updateSampleSpace(m_rowCount, m_columnCount); - m_changeTracker.sampleSpaceChanged = false; - } - if (m_changeTracker.barSpecsChanged) { m_renderer->updateBarSpecs(m_barThicknessRatio, m_barSpacing, m_isBarSpecRelative); m_changeTracker.barSpecsChanged = false; @@ -133,7 +126,7 @@ void Bars3DController::setActiveDataProxy(QAbstractDataProxy *proxy) QObject::connect(barDataProxy, &QBarDataProxy::columnLabelsChanged, this, &Bars3DController::handleDataColumnLabelsChanged); - adjustValueAxisRange(); + adjustAxisRanges(); // Always clear selection on proxy change setSelectedBarPos(noSelectionPoint()); @@ -145,7 +138,7 @@ void Bars3DController::setActiveDataProxy(QAbstractDataProxy *proxy) void Bars3DController::handleArrayReset() { scene()->setSlicingActivated(false); - adjustValueAxisRange(); + adjustAxisRanges(); m_isDataDirty = true; // Clear selection unless still valid setSelectedBarPos(m_selectedBarPos); @@ -156,10 +149,9 @@ void Bars3DController::handleRowsAdded(int startIndex, int count) { Q_UNUSED(startIndex) Q_UNUSED(count) - // TODO check if affects data window // TODO should update slice instead of deactivating? scene()->setSlicingActivated(false); - adjustValueAxisRange(); + adjustAxisRanges(); m_isDataDirty = true; emitNeedRender(); } @@ -168,10 +160,9 @@ void Bars3DController::handleRowsChanged(int startIndex, int count) { Q_UNUSED(startIndex) Q_UNUSED(count) - // TODO check if affects data window // TODO should update slice instead of deactivating? scene()->setSlicingActivated(false); - adjustValueAxisRange(); + adjustAxisRanges(); m_isDataDirty = true; emitNeedRender(); } @@ -180,10 +171,9 @@ void Bars3DController::handleRowsRemoved(int startIndex, int count) { Q_UNUSED(startIndex) Q_UNUSED(count) - // TODO check if affects data window // TODO should update slice instead of deactivating? scene()->setSlicingActivated(false); - adjustValueAxisRange(); + adjustAxisRanges(); m_isDataDirty = true; // Clear selection unless still valid @@ -196,10 +186,9 @@ void Bars3DController::handleRowsInserted(int startIndex, int count) { Q_UNUSED(startIndex) Q_UNUSED(count) - // TODO check if affects data window // TODO should update slice instead of deactivating? scene()->setSlicingActivated(false); - adjustValueAxisRange(); + adjustAxisRanges(); m_isDataDirty = true; emitNeedRender(); } @@ -208,10 +197,9 @@ void Bars3DController::handleItemChanged(int rowIndex, int columnIndex) { Q_UNUSED(rowIndex) Q_UNUSED(columnIndex) - // TODO check if affects data window // TODO should update slice instead of deactivating? scene()->setSlicingActivated(false); - adjustValueAxisRange(); + adjustAxisRanges(); m_isDataDirty = true; emitNeedRender(); } @@ -220,8 +208,9 @@ void Bars3DController::handleDataRowLabelsChanged() { if (m_axisX && m_data) { // Grab a sublist equal to data window (no need to have more labels in axis) - // TODO once axis controls data window, this needs to change - QStringList subList = static_cast<QBarDataProxy *>(m_data)->rowLabels().mid(0, m_rowCount); + int min = int(m_axisX->min()); + int count = int(m_axisX->max()) - min + 1; + QStringList subList = static_cast<QBarDataProxy *>(m_data)->rowLabels().mid(min, count); static_cast<Q3DCategoryAxis *>(m_axisX)->dptr()->setDataLabels(subList); } } @@ -230,8 +219,9 @@ void Bars3DController::handleDataColumnLabelsChanged() { if (m_axisZ && m_data) { // Grab a sublist equal to data window (no need to have more labels in axis) - // TODO once axis controls data window, this needs to change - QStringList subList = static_cast<QBarDataProxy *>(m_data)->columnLabels().mid(0, m_columnCount); + int min = int(m_axisZ->min()); + int count = int(m_axisZ->max()) - min + 1; + QStringList subList = static_cast<QBarDataProxy *>(m_data)->columnLabels().mid(min, count); static_cast<Q3DCategoryAxis *>(m_axisZ)->dptr()->setDataLabels(subList); } } @@ -253,7 +243,7 @@ void Bars3DController::handleAxisAutoAdjustRangeChangedInOrientation( { Q_UNUSED(orientation) Q_UNUSED(autoAdjust) - adjustValueAxisRange(); + adjustAxisRanges(); } QPoint Bars3DController::noSelectionPoint() @@ -274,6 +264,25 @@ void Bars3DController::setAxisZ(Q3DAbstractAxis *axis) handleDataColumnLabelsChanged(); } +void Bars3DController::handleAxisRangeChangedBySender(QObject *sender) +{ + // Data window changed + if (sender == m_axisX || sender == m_axisZ) { + // Disable zoom mode if we're in it (causes crash if not, as zoom selection is deleted) + scene()->setSlicingActivated(false); + + // Clear selection unless still valid + setSelectedBarPos(m_selectedBarPos); + + if (sender == m_axisX) + handleDataRowLabelsChanged(); + if (sender == m_axisZ) + handleDataColumnLabelsChanged(); + } + + Abstract3DController::handleAxisRangeChangedBySender(sender); +} + void Bars3DController::setBarSpecs(GLfloat thicknessRatio, const QSizeF &spacing, bool relative) { m_barThicknessRatio = thicknessRatio; @@ -319,29 +328,6 @@ void Bars3DController::setBarType(QDataVis::MeshStyle style, bool smooth) Abstract3DController::setMeshFileName(objFile); } -// TODO: This sets data window. Needs more parameters, now assumes window always starts at 0,0. -void Bars3DController::setDataWindow(int rowCount, int columnCount) -{ - // Disable zoom mode if we're in it (causes crash if not, as zoom selection is deleted) - scene()->setSlicingActivated(false); - - m_rowCount = rowCount; - m_columnCount = columnCount; - - adjustValueAxisRange(); - - // Clear selection unless still valid - setSelectedBarPos(m_selectedBarPos); - - m_changeTracker.sampleSpaceChanged = true; - m_isDataDirty = true; // Render item array is recreated in renderer - - handleDataRowLabelsChanged(); - handleDataColumnLabelsChanged(); - - emitNeedRender(); -} - void Bars3DController::setSelectionMode(QDataVis::SelectionMode mode) { // Disable zoom if selection mode changes @@ -353,13 +339,19 @@ void Bars3DController::setSelectedBarPos(const QPoint &position) { // If the selection is outside data window or targets non-existent // bar, clear selection instead. - // TODO this will break once data window offset is implemented QPoint pos = position; - if (pos.x() < 0 || pos.y() < 0 - || pos.x() >= static_cast<QBarDataProxy *>(m_data)->rowCount() - || pos.y() >= static_cast<QBarDataProxy *>(m_data)->rowAt(pos.x())->size() - || pos.x() >= m_rowCount || pos.y() >= m_columnCount) { - pos = noSelectionPoint(); + + if (pos != noSelectionPoint()) { + int minRow = int(m_axisX->min()); + int maxRow = int(m_axisX->max()); + int minCol = int(m_axisZ->min()); + int maxCol = int(m_axisZ->max()); + + if (pos.x() < minRow || pos.x() > maxRow || pos.y() < minCol || pos.y() > maxCol + || pos.x() + minRow >= static_cast<QBarDataProxy *>(m_data)->rowCount() + || pos.y() + minCol >= static_cast<QBarDataProxy *>(m_data)->rowAt(pos.x())->size()) { + pos = noSelectionPoint(); + } } if (pos != m_selectedBarPos) { @@ -375,23 +367,37 @@ QPoint Bars3DController::selectedBarPos() const return m_selectedBarPos; } -int Bars3DController::columnCount() +void Bars3DController::adjustAxisRanges() { - return m_columnCount; -} + const QBarDataProxy *proxy = static_cast<QBarDataProxy *>(m_data); + const QBarDataArray *array = proxy->array(); + + Q3DCategoryAxis *categoryAxisX = static_cast<Q3DCategoryAxis *>(m_axisX); + if (categoryAxisX && categoryAxisX->isAutoAdjustRange() && proxy) { + int rowCount = proxy->rowCount(); + if (rowCount) + rowCount--; + categoryAxisX->dptr()->setRange(0.0, qreal(rowCount)); + } -int Bars3DController::rowCount() -{ - return m_rowCount; -} + Q3DCategoryAxis *categoryAxisZ = static_cast<Q3DCategoryAxis *>(m_axisZ); + if (categoryAxisZ && categoryAxisZ->isAutoAdjustRange() && proxy) { + int columnCount = 0; + for (int i = 0; i < array->size(); i++) { + if (columnCount < array->at(i)->size()) + columnCount = array->at(i)->size(); + } + if (columnCount) + columnCount--; + categoryAxisZ->dptr()->setRange(0.0, qreal(columnCount)); + } -void Bars3DController::adjustValueAxisRange() -{ Q3DValueAxis *valueAxis = static_cast<Q3DValueAxis *>(m_axisY); - if (valueAxis && valueAxis->isAutoAdjustRange() && m_data) { - QPair<GLfloat, GLfloat> limits = - static_cast<QBarDataProxy *>(m_data)->dptr()->limitValues(0, m_rowCount, - 0, m_columnCount); + if (valueAxis && categoryAxisX && categoryAxisZ && valueAxis->isAutoAdjustRange() && proxy) { + QPair<GLfloat, GLfloat> limits = proxy->dptrc()->limitValues(categoryAxisX->min(), + categoryAxisX->max(), + categoryAxisZ->min(), + categoryAxisZ->max()); if (limits.first < 0) { // TODO: Currently we only support symmetric y-axis for bar chart if there are negative values qreal maxAbs = qMax(qFabs(limits.first), qFabs(limits.second)); diff --git a/src/datavisualization/engine/bars3dcontroller_p.h b/src/datavisualization/engine/bars3dcontroller_p.h index 6dbaf742..8398dd81 100644 --- a/src/datavisualization/engine/bars3dcontroller_p.h +++ b/src/datavisualization/engine/bars3dcontroller_p.h @@ -41,13 +41,11 @@ class QBarDataProxy; struct Bars3DChangeBitField { bool slicingActiveChanged : 1; - bool sampleSpaceChanged : 1; bool barSpecsChanged : 1; bool selectedBarPosChanged : 1; Bars3DChangeBitField() : slicingActiveChanged(true), - sampleSpaceChanged(true), barSpecsChanged(true), selectedBarPosChanged(true) { @@ -61,10 +59,6 @@ class QT_DATAVISUALIZATION_EXPORT Bars3DController : public Abstract3DController private: Bars3DChangeBitField m_changeTracker; - // Data - int m_rowCount; - int m_columnCount; - // Interaction QPoint m_selectedBarPos; // Points to row & column in data window. @@ -83,9 +77,6 @@ public: void initializeOpenGL(); virtual void synchDataToRenderer(); - int columnCount(); - int rowCount(); - // bar thickness, spacing between bars, and is spacing relative to thickness or absolute // y -component sets the thickness/spacing of z -direction // With relative 0.0f means side-to-side, 1.0f = one thickness in between @@ -99,9 +90,6 @@ public: // bar type; bars (=cubes), pyramids, cones, cylinders, etc. void setBarType(QDataVis::MeshStyle style, bool smooth = false); - // how many samples per row and column, and names for axes - void setDataWindow(int samplesRow, int samplesColumn); - // Change selection mode; single bar, bar and row, bar and column, or all void setSelectionMode(QDataVis::SelectionMode mode); @@ -117,6 +105,8 @@ public: virtual void setAxisX(Q3DAbstractAxis *axis); virtual void setAxisZ(Q3DAbstractAxis *axis); + virtual void handleAxisRangeChangedBySender(QObject *sender); + public slots: void handleArrayReset(); void handleRowsAdded(int startIndex, int count); @@ -136,7 +126,7 @@ protected: virtual Q3DAbstractAxis *createDefaultAxis(Q3DAbstractAxis::AxisOrientation orientation); private: - void adjustValueAxisRange(); + void adjustAxisRanges(); Q_DISABLE_COPY(Bars3DController) diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index 5d7abb16..adc3c257 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -150,18 +150,49 @@ void Bars3DRenderer::initializeOpenGL() void Bars3DRenderer::updateDataModel(QBarDataProxy *dataProxy) { + int minRow = m_axisCacheX.min(); + int maxRow = m_axisCacheX.max(); + int minCol = m_axisCacheZ.min(); + int maxCol = m_axisCacheZ.max(); + int newRows = maxRow - minRow + 1; + int newColumns = maxCol - minCol + 1; + if (newRows != m_renderItemArray.size() || newColumns != m_renderItemArray.at(0).size()) { + // Destroy old render items and reallocate new array + m_renderItemArray.clear(); + m_renderItemArray.resize(newRows); + for (int i = 0; i < newRows; i++) + m_renderItemArray[i].resize(newColumns); + + // Force update for selection related items + m_sliceCache = 0; + m_sliceTitleItem = 0; + if (m_sliceSelection) + m_sliceSelection->clear(); + + m_cachedColumnCount = newColumns; + m_cachedRowCount = newRows; + // TODO: Invent foolproof max scene size formula + // This seems to work ok if spacing is not negative (and row/column or column/row ratio is not too high) + m_maxSceneSize = 2 * qSqrt(newColumns * newRows); + // Calculate here and at setting bar specs + calculateSceneScalingFactors(); + } + // Update cached data window int dataRowCount = dataProxy->rowCount(); - for (int i = 0; i < m_renderItemArray.size(); i++) { + int dataRowIndex = minRow; + for (int i = 0; i < newRows; i++) { int j = 0; - if (i < dataRowCount) { - const QBarDataRow *dataRow = dataProxy->rowAt(i); - int updateSize = qMin(dataRow->size(), m_renderItemArray[i].size()); + if (dataRowIndex < dataRowCount) { + const QBarDataRow *dataRow = dataProxy->rowAt(dataRowIndex); + int updateSize = qMin((dataRow->size() - minCol), m_renderItemArray[i].size()); if (dataRow) { + int dataColIndex = minCol; for (; j < updateSize ; j++) { - qreal value = dataRow->at(j).value(); + qreal value = dataRow->at(dataColIndex).value(); m_renderItemArray[i][j].setValue(value); m_renderItemArray[i][j].setHeight(value / m_heightNormalizer); + dataColIndex++; } } } @@ -169,6 +200,7 @@ void Bars3DRenderer::updateDataModel(QBarDataProxy *dataProxy) m_renderItemArray[i][j].setValue(0.0); m_renderItemArray[i][j].setHeight(0.0f); } + dataRowIndex++; } Abstract3DRenderer::updateDataModel(dataProxy); @@ -1489,47 +1521,26 @@ void Bars3DRenderer::updateBarSpecs(GLfloat thicknessRatio, const QSizeF &spacin void Bars3DRenderer::updateAxisRange(Q3DAbstractAxis::AxisOrientation orientation, qreal min, qreal max) { Abstract3DRenderer::updateAxisRange(orientation, min, max); - calculateHeightAdjustment(); - // Check if we have negative values - if (min < 0 && !m_hasNegativeValues) { - m_hasNegativeValues = true; - // Reload background - loadBackgroundMesh(); - - } else if (min >= 0 && m_hasNegativeValues) { - m_hasNegativeValues = false; - // Reload background - loadBackgroundMesh(); - } - // TODO Currently barchart only supports zero centered or zero minimum ranges - if (min > 0.0 || (min != 0.0 && (qFabs(min) != qFabs(max)))) - qWarning() << __FUNCTION__ << "Bar chart currently properly supports only zero-centered and zero minimum ranges for Y-axis."; -} + if (orientation == Q3DAbstractAxis::AxisOrientationY) { + calculateHeightAdjustment(); + // Check if we have negative values + if (min < 0 && !m_hasNegativeValues) { + m_hasNegativeValues = true; + // Reload background + loadBackgroundMesh(); + emit needRender(); + } else if (min >= 0 && m_hasNegativeValues) { + m_hasNegativeValues = false; + // Reload background + loadBackgroundMesh(); + emit needRender(); + } -void Bars3DRenderer::updateSampleSpace(int rowCount, int columnCount) -{ - // Destroy old render items and reallocate new array - // TODO is there a way to allocate the whole array with one allocation? - m_renderItemArray.clear(); - m_renderItemArray.resize(rowCount); - for (int i = 0; i < rowCount; i++) - m_renderItemArray[i].resize(columnCount); - - // Force update for selection related items - m_sliceCache = 0; - m_sliceTitleItem = 0; - if (m_sliceSelection) - m_sliceSelection->clear(); - - m_cachedColumnCount = columnCount; - m_cachedRowCount = rowCount; - // TODO: Invent "idiotproof" max scene size formula.. - // This seems to work ok if spacing is not negative (and row/column or column/row ratio is not too high) - m_maxSceneSize = 2 * qSqrt(columnCount * rowCount); - //qDebug() << "maxSceneSize" << m_maxSceneSize; - // Calculate here and at setting bar specs - calculateSceneScalingFactors(); + // TODO Currently barchart only supports zero centered or zero minimum ranges + if (min > 0.0 || (min != 0.0 && (qFabs(min) != qFabs(max)))) + qWarning() << __FUNCTION__ << "Bar chart currently properly supports only zero-centered and zero minimum ranges for Y-axis."; + } } void Bars3DRenderer::updateSelectionMode(QDataVis::SelectionMode mode) diff --git a/src/datavisualization/engine/bars3drenderer_p.h b/src/datavisualization/engine/bars3drenderer_p.h index 3be0ebf9..9b612474 100644 --- a/src/datavisualization/engine/bars3drenderer_p.h +++ b/src/datavisualization/engine/bars3drenderer_p.h @@ -126,7 +126,6 @@ public slots: bool relative = true); void updateSelectionMode(QDataVis::SelectionMode newMode); void updateSlicingActive(bool isSlicing); - void updateSampleSpace(int rowCount, int columnCount); void updateBackgroundEnabled(bool enable); void updateSelectedBarPos(const QPoint &position); diff --git a/src/datavisualization/engine/q3dbars.cpp b/src/datavisualization/engine/q3dbars.cpp index be8b3a88..e892367e 100644 --- a/src/datavisualization/engine/q3dbars.cpp +++ b/src/datavisualization/engine/q3dbars.cpp @@ -231,7 +231,7 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE /*! * \qmlproperty point Bars3D::selectedBarPos - * Position of the selected bar, if any. Only one bar can be selected at a time. + * Position of the selected bar in data window. Only one bar can be selected at a time. * To clear selection, specify an illegal position, e.g. Qt.point(-1.0, -1.0). */ @@ -405,23 +405,6 @@ void Q3DBars::setBarType(QDataVis::MeshStyle style, bool smooth) } /*! - * Set up data window to \a samplesRow rows and \a samplesColumn columns. Both are preset to \c 10 - * by default. - */ -void Q3DBars::setDataWindow(int samplesRow, int samplesColumn) -{ - d_ptr->m_shared->setDataWindow(samplesRow, samplesColumn); -} - -/*! - * \return size of the sample space in QSize. - */ -QSize Q3DBars::dataWindow() const -{ - return QSize(d_ptr->m_shared->rowCount(), d_ptr->m_shared->columnCount()); -} - -/*! * \property Q3DBars::cameraPreset * * The \a preset position of the camera. The position can be one of \c QDataVis::CameraPreset. @@ -584,7 +567,8 @@ bool Q3DBars::isBackgroundVisible() const /*! * \property Q3DBars::selectedBarPos * - * Selects a bar in a \a position. Only one bar can be selected at a time. + * Selects a bar in a \a position. The position is the position in data window. + * Only one bar can be selected at a time. * To clear selection, specify an illegal \a position, e.g. (-1, -1). */ void Q3DBars::setSelectedBarPos(const QPoint &position) diff --git a/src/datavisualization/engine/q3dbars.h b/src/datavisualization/engine/q3dbars.h index 1404ea05..9a8e97bb 100644 --- a/src/datavisualization/engine/q3dbars.h +++ b/src/datavisualization/engine/q3dbars.h @@ -57,10 +57,6 @@ public: void setBarType(QDataVis::MeshStyle style, bool smooth = false); - // TODO: This defines the data window, needs additional parameters startRow, startColumn - void setDataWindow(int samplesRow, int samplesColumn); - QSize dataWindow() const; // TODO: Return QRect once data window properly implemented? - void setCameraPreset(QDataVis::CameraPreset preset); QDataVis::CameraPreset cameraPreset() const; |