// Copyright (C) 2022 The Qt Company Ltd.
// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \page qt3d-index.html
    \title Qt 3D

    Qt 3D provides functionality for near-realtime simulation systems
    with support for 2D and 3D rendering in both Qt C++ and Qt Quick
    applications.

    The functionality in Qt 3D is divided into the following C++ modules:

    \annotatedlist qt3d-modules

    The following C++ modules are in still development but are available
    as technology previews:

    \annotatedlist qt3d-modules-preliminary

    For Qt Quick applications, Qt 3D provides the following QML modules:

    \annotatedlist qt3d-qmlmodules

    The following QML modules are in still development but are available
    as technology previews:

    \annotatedlist qt3d-qmlmodules-preliminary

    \section1 Using the Module

    For a C++ application that performs 2D or 3D rendering, collision detection,
    and handles user input, include the following directives of the modules'
    classes:

    \code
    #include <Qt3DCore>
    #include <Qt3DRender>
    #include <Qt3DInput>
    #include <Qt3DLogic>
    #include <Qt3DExtras>
    #include <Qt3DAnimation>
    \endcode

    To import the QML types into your application, use the following import
    statement in your .qml file:

    \qml
    import Qt3D.Core
    import Qt3D.Render
    import Qt3D.Input
    import Qt3D.Logic
    import Qt3D.Extras
    import Qt3D.Animation
    import QtQuick.Scene2D
    import QtQuick.Scene3D
    \endqml

    \include {module-use.qdocinc} {using the c++ api}

    \section2 Building with CMake

    \include qt3d-module-use.qdocinc cmakebuild

    \section2 Building with qmake

    \include qt3d-module-use.qdocinc qmakebuild

    \section1 Overview

    The high level design and motivation for Qt 3D is described in the \l {Qt 3D
    Overview}. The Qt 3D Render offers support for data-driven configuration as
    described in \l {Qt 3D Render Framegraph}.

    \section1 Reference
    \list
        \li \l {Qt 3D Overview}
        \li \l {Qt 3D C++ Classes}
        \li \l {Qt 3D QML Types}
        \li \l {Qt 3D Examples}
    \endlist

    \section1 Qt 3D Platform Support

    Qt 3D has the following support for platforms:

    \list
        \li Microsoft Windows (win32) - Supported
        \li Linux X11 - Supported
        \li \macos - Supported although there may be some retina scaling issues
        \li Android - Supported
        \li Embedded Linux - Supported
        \li iOS - Supported since (Qt 5.7)
        \li WinRT - Not supported yet
    \endlist

    \section1 Module Evolution
    \l{Changes to Qt3D} lists important changes in the module API
    and functionality that were done for the Qt 6 series of Qt.

    \section1 Licenses and Attributions

    Qt 3D is available under commercial licenses from \l{The Qt Company}.
    In addition, it is available under the
    \l{GNU Lesser General Public License, version 3}, or
    the \l{GNU General Public License, version 2}.
    See \l{Qt Licensing} for further details.

    Furthermore Qt 3D contains third party
    modules under following permissive licenses:

    \annotatedlist attributions-qt3d
*/
