/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Data Visualization module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL$
** 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 General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
  \qmltype Surface3D
  \inherits AbstractGraph3D
  \inqmlmodule QtDataVisualization
  \since QtDataVisualization 1.0
  \ingroup datavisualization_qml
  \brief Describes the usage of the 3D surface graph.

  This type enables developers to render surface plots in 3D with Qt Quick 2.

  You will need to import the data visualization module to use this type:

  \snippet doc_src_qmldatavisualization.cpp 0

  After that you can use Surface3D in your qml files:

  \snippet doc_src_qmldatavisualization.cpp 3

  See \l{Qt Quick 2 Surface Example} for more thorough usage example.

  \sa Surface3DSeries, ItemModelSurfaceDataProxy, Bars3D, Scatter3D, {Qt Data Visualization C++ Classes}
 */

/*!
  \qmlproperty ValueAxis3D Surface3D::axisX
  The active X axis.

  If an axis is not given, a temporary default axis with no labels and automatically adjusting
  range is created.
  This temporary axis is destroyed if another axis is explicitly set to the same orientation.
 */

/*!
  \qmlproperty ValueAxis3D Surface3D::axisY
  The active Y axis.

  If an axis is not given, a temporary default axis with no labels and automatically adjusting
  range is created.
  This temporary axis is destroyed if another axis is explicitly set to the same orientation.
 */

/*!
  \qmlproperty ValueAxis3D Surface3D::axisZ
  The active Z axis.

  If an axis is not given, a temporary default axis with no labels and automatically adjusting
  range is created.
  This temporary axis is destroyed if another axis is explicitly set to the same orientation.
 */

/*!
 * \qmlproperty Surface3DSeries Surface3D::selectedSeries
 * The selected series or \c null. If \l {QAbstract3DGraph::selectionMode}{selectionMode} has
 * \c SelectionMultiSeries flag set, this property holds the series which owns the selected point.
 */

/*!
 * \qmlproperty list<Surface3DSeries> Surface3D::seriesList
 * \default
 * This property holds the series of the graph.
 * By default, this property contains an empty list.
 * To set the series, either use the addSeries() function or define them as children of the graph.
 */

/*!
 * \qmlproperty bool Surface3D::flipHorizontalGrid
 * \since QtDataVisualization 1.2
 *
 * In some use cases the horizontal axis grid is mostly covered by the surface, so it can be more
 * useful to display the horizontal axis grid on top of the graph rather than on the bottom.
 * A typical use case for this is showing 2D spectrograms using orthoGraphic projection with
 * a top-down viewpoint.
 *
 * If \c{false}, the horizontal axis grid and labels are drawn on the horizontal background
 * of the graph.
 * If \c{true}, the horizontal axis grid and labels are drawn on the opposite side of the graph
 * from the horizontal background.
 * Defaults to \c{false}.
 */

/*!
 * \qmlmethod void Surface3D::addSeries(Surface3DSeries series)
 * Adds the \a series to the graph.
 */

/*!
 * \qmlmethod void Surface3D::removeSeries(Surface3DSeries series)
 * Remove the \a series from the graph.
 */
