/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \example qmlsurfacelayers
    \title Qt Quick 2 Surface Multiseries Example
    \ingroup qtdatavisualization_examples
    \brief Using multiple series with Surface3D in a QML application.

    The Qt Quick 2 surface example shows how to make a 3D surface plot displaying 3 layers using
    Surface3D with Qt Quick 2.

    \image qmlsurfacelayers-example.png

    The focus in this example is on generating a multiseries surface plot from 3 different height
    map images, so in this section we skip explaining the application creation. For a more detailed
    QML example documentation, see \l{Qt Quick 2 Scatter Example}.

    \include examples-run.qdocinc

    \section1 Adding Data to the Graph

    This example shows how to add several surface series to one graph using using
    HeightMapSurfaceDataProxies and how to control their visibilities individually.

    Let's start by creating a specific gradient for each layer:

    \snippet qmlsurfacelayers/qml/qmlsurfacelayers/main.qml 0

    Then we'll create the series themselves. It happens simply by adding 3 separate Surface3DSeries
    to the Surface3D graph as children:

    \dots 0
    \snippet qmlsurfacelayers/qml/qmlsurfacelayers/main.qml 1
    \dots 0

    You'll notice we added the created gradients to the \c baseGradient properties of the series.
    We could have added them to the \c baseGradients property of the Theme3D in Surface3D instead,
    but doing it this way ensures each gradient is applied to a correct series:

    \snippet qmlsurfacelayers/qml/qmlsurfacelayers/main.qml 2
    \dots

    \section1 Controlling the Graph

    Let's add some checkboxes to control the visibility of layers:

    \snippet qmlsurfacelayers/qml/qmlsurfacelayers/main.qml 3

    We don't need to do anything on the \c onCheckedChanged as we bound the \c checked state to
    the \c visible property of the series directly:

    \dots 0
    \snippet qmlsurfacelayers/qml/qmlsurfacelayers/main.qml 4
    \dots 0

    Let's add some more checkboxes to control how the layers are displayed, when visible:

    \snippet qmlsurfacelayers/qml/qmlsurfacelayers/main.qml 5

    In addition to these we have three buttons, one of which is of special interest to us. It is
    used to control whether we want to slice into only one layer, or all of them:

    \snippet qmlsurfacelayers/qml/qmlsurfacelayers/main.qml 6

    \section1 Example Contents
*/
