summaryrefslogtreecommitdiffstats
path: root/examples/surfacechart
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-07-18 18:30:49 +0300
committerMika Salmela <mika.salmela@digia.com>2013-07-18 18:32:40 +0300
commit2ba572295f102ad06ae95ec676c064909775011f (patch)
treeca09e78d1043e173a0c50ca0ba959ebd5fb5a66c /examples/surfacechart
parent2d4688233fbd551bae8f327215247985cd843958 (diff)
Selectable surface grid and smoothnes.
Change-Id: Icc45643d9958733f8ff78824af9399806d8e1c0f Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'examples/surfacechart')
-rw-r--r--examples/surfacechart/chartmodifier.cpp67
-rw-r--r--examples/surfacechart/chartmodifier.h62
-rw-r--r--examples/surfacechart/main.cpp69
-rw-r--r--examples/surfacechart/surfacechart.pro6
4 files changed, 194 insertions, 10 deletions
diff --git a/examples/surfacechart/chartmodifier.cpp b/examples/surfacechart/chartmodifier.cpp
new file mode 100644
index 00000000..0c1980ab
--- /dev/null
+++ b/examples/surfacechart/chartmodifier.cpp
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of QtDataVis3D module.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "chartmodifier.h"
+
+#include <QDebug>
+
+QT_DATAVIS3D_USE_NAMESPACE
+
+ChartModifier::ChartModifier(Q3DSurface *chart)
+ : m_chart(chart)
+{
+}
+
+ChartModifier::~ChartModifier()
+{
+ delete m_chart;
+}
+
+void ChartModifier::toggleSmooth(bool enabled)
+{
+ qDebug() << "ChartModifier::toggleSmooth " << enabled;
+ m_chart->setSmoothSurface(enabled);
+}
+
+void ChartModifier::toggleSurfaceGrid(bool enable)
+{
+ qDebug() << "ChartModifier::toggleSurfaceGrid" << enable;
+ m_chart->setSurfaceGrid(enable);
+}
diff --git a/examples/surfacechart/chartmodifier.h b/examples/surfacechart/chartmodifier.h
new file mode 100644
index 00000000..e29699d8
--- /dev/null
+++ b/examples/surfacechart/chartmodifier.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of QtDataVis3D module.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CHARTMODIFIER_H
+#define CHARTMODIFIER_H
+
+#include <Q3DSurface>
+
+using namespace QtDataVis3D;
+
+class ChartModifier : public QObject
+{
+ Q_OBJECT
+public:
+ explicit ChartModifier(Q3DSurface *chart);
+ ~ChartModifier();
+
+ void toggleSmooth(bool enabled);
+ void toggleSurfaceGrid(bool enable);
+
+private:
+ Q3DSurface *m_chart;
+};
+
+#endif // CHARTMODIFIER_H
diff --git a/examples/surfacechart/main.cpp b/examples/surfacechart/main.cpp
index b984f7f1..fdfa99a6 100644
--- a/examples/surfacechart/main.cpp
+++ b/examples/surfacechart/main.cpp
@@ -39,17 +39,69 @@
****************************************************************************/
#include <Q3DSurface>
+#include "chartmodifier.h"
-#include <QGuiApplication>
+#include <QApplication>
+#include <QApplication>
+#include <QWidget>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QPushButton>
+#include <QCheckBox>
+#include <QSlider>
+#include <QLabel>
#include <QScreen>
using namespace QtDataVis3D;
int main(int argc, char *argv[])
{
- QGuiApplication a(argc, argv);
+ QApplication app(argc, argv);
- Q3DSurface surfaceChart;
+ QWidget *widget = new QWidget;
+ QHBoxLayout *hLayout = new QHBoxLayout(widget);
+ QVBoxLayout *vLayout = new QVBoxLayout();
+ vLayout->setAlignment(Qt::AlignTop);
+
+ Q3DSurface *surfaceChart = new Q3DSurface();
+ QSize screenSize = surfaceChart->screen()->size();
+
+ QWidget *container = QWidget::createWindowContainer(surfaceChart);
+ container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 2));
+ container->setMaximumSize(screenSize);
+ container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ container->setFocusPolicy(Qt::StrongFocus);
+
+ widget->setWindowTitle(QStringLiteral("Surface tester"));
+
+ hLayout->addWidget(container, 1);
+ hLayout->addLayout(vLayout);
+
+ QPushButton *someButton = new QPushButton(widget);
+ someButton->setText(QStringLiteral("Press me"));
+ someButton->setEnabled(true);
+
+ QCheckBox *smoothCB = new QCheckBox(widget);
+ smoothCB->setText(QStringLiteral("Smooth "));
+ smoothCB->setChecked(surfaceChart->smoothSurface());
+
+ QCheckBox *surfaceGridCB = new QCheckBox(widget);
+ surfaceGridCB->setText(QStringLiteral("Surface Grid"));
+ surfaceGridCB->setChecked(true);
+
+ // Add controls to the layout
+ vLayout->addWidget(smoothCB);
+ vLayout->addWidget(surfaceGridCB);
+ vLayout->addWidget(someButton);
+
+ widget->show();
+
+ ChartModifier *modifier = new ChartModifier(surfaceChart);
+
+ QObject::connect(smoothCB, &QCheckBox::stateChanged,
+ modifier, &ChartModifier::toggleSmooth);
+ QObject::connect(surfaceGridCB, &QCheckBox::stateChanged,
+ modifier, &ChartModifier::toggleSurfaceGrid);
QList<qreal> lowList;
lowList << 15.0 << 35.0 << 55.0 << 75.0 << 80.0 << 75.0 << 55.0 << 35.0 << 15.0;
@@ -68,16 +120,15 @@ int main(int argc, char *argv[])
// lowList << 35.0 << 105.0 << 170.0 << 105.0 << 35.0;
// lowList << 15.0 << 65.0 << 105.0 << 65.0 << 16.1;
- surfaceChart.appendSeries(lowList);
+ surfaceChart->appendSeries(lowList);
// QList<qreal> topList;
// topList << 2.1 << 2.2;
// surfaceChart.appendSeries(topList);
- QSize screenSize = surfaceChart.screen()->size();
- surfaceChart.resize(screenSize.width() / 1.5, screenSize.height() / 1.5);
- surfaceChart.setPosition(screenSize.width() / 6, screenSize.height() / 6);
- surfaceChart.show();
+// surfaceChart.resize(screenSize.width() / 1.5, screenSize.height() / 1.5);
+// surfaceChart.setPosition(screenSize.width() / 6, screenSize.height() / 6);
+// surfaceChart.show();
- return a.exec();
+ return app.exec();
}
diff --git a/examples/surfacechart/surfacechart.pro b/examples/surfacechart/surfacechart.pro
index 668b5195..79fd967d 100644
--- a/examples/surfacechart/surfacechart.pro
+++ b/examples/surfacechart/surfacechart.pro
@@ -2,6 +2,10 @@
error( "Couldn't find the examples.pri file!" )
}
-SOURCES += main.cpp
+SOURCES += main.cpp \
+ chartmodifier.cpp
INSTALLS += target
+
+HEADERS += \
+ chartmodifier.h