diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/assimp/config.h | 111 | ||||
-rw-r--r-- | src/3rdparty/assimp/qt_attribution.json | 8 | ||||
-rw-r--r-- | src/3rdparty/assimp/revision.h | 18 | ||||
m--------- | src/3rdparty/assimp/src | 0 | ||||
-rw-r--r-- | src/core/doc/snippets/code/src_core_qcircularbuffer.cpp | 2 | ||||
-rw-r--r-- | src/input/frontend/qmousehandler.cpp | 20 | ||||
-rw-r--r-- | src/input/frontend/qmousehandler_p.h | 3 | ||||
-rw-r--r-- | src/quick3d/imports/input/CMakeLists.txt | 1 |
8 files changed, 110 insertions, 53 deletions
diff --git a/src/3rdparty/assimp/config.h b/src/3rdparty/assimp/config.h index 0a02a8c08..ad82a75d2 100644 --- a/src/3rdparty/assimp/config.h +++ b/src/3rdparty/assimp/config.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2020, assimp team +Copyright (c) 2006-2024, assimp team All rights reserved. @@ -102,28 +102,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define AI_CONFIG_IMPORT_NO_SKELETON_MESHES \ "IMPORT_NO_SKELETON_MESHES" - - -# if 0 // not implemented yet -// --------------------------------------------------------------------------- -/** @brief Set Assimp's multithreading policy. - * - * This setting is ignored if Assimp was built without boost.thread - * support (ASSIMP_BUILD_NO_THREADING, which is implied by ASSIMP_BUILD_BOOST_WORKAROUND). - * Possible values are: -1 to let Assimp decide what to do, 0 to disable - * multithreading entirely and any number larger than 0 to force a specific - * number of threads. Assimp is always free to ignore this settings, which is - * merely a hint. Usually, the default value (-1) will be fine. However, if - * Assimp is used concurrently from multiple user threads, it might be useful - * to limit each Importer instance to a specific number of cores. - * - * For more information, see the @link threading Threading page@endlink. - * Property type: int, default value: -1. - */ -#define AI_CONFIG_GLOB_MULTITHREADING \ - "GLOB_MULTITHREADING" -#endif - // ########################################################################### // POST PROCESSING SETTINGS // Various stuff to fine-tune the behavior of a specific post processing step. @@ -266,6 +244,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. "PP_PTV_ROOT_TRANSFORMATION" // --------------------------------------------------------------------------- +/** @brief Set epsilon to check the identity of the matrix 4x4. + * + * This is used by aiMatrix4x4t<TReal>::IsIdentity(const TReal epsilon). + * @note The default value is 10e-3f for backward compatibility of legacy code. + * Property type: Float. + */ +#define AI_CONFIG_CHECK_IDENTITY_MATRIX_EPSILON \ + "CHECK_IDENTITY_MATRIX_EPSILON" +// default value for AI_CONFIG_CHECK_IDENTITY_MATRIX_EPSILON +#if (!defined AI_CONFIG_CHECK_IDENTITY_MATRIX_EPSILON_DEFAULT) +# define AI_CONFIG_CHECK_IDENTITY_MATRIX_EPSILON_DEFAULT 10e-3f +#endif + +// --------------------------------------------------------------------------- /** @brief Configures the #aiProcess_FindDegenerates step to * remove degenerated primitives from the import - immediately. * @@ -281,7 +273,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // --------------------------------------------------------------------------- /** * @brief Configures the #aiProcess_FindDegenerates to check the area of a - * trinagle to be greates than e-6. If this is not the case the triangle will + * triangle to be greater than e-6. If this is not the case the triangle will * be removed if #AI_CONFIG_PP_FD_REMOVE is set to true. */ #define AI_CONFIG_PP_FD_CHECKAREA \ @@ -689,7 +681,7 @@ enum aiComponent // --------------------------------------------------------------------------- /** @brief Set wether the importer shall not remove empty bones. - * + * * Empty bone are often used to define connections for other models. */ #define AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES \ @@ -884,6 +876,15 @@ enum aiComponent "IMPORT_MD3_SKIN_NAME" // --------------------------------------------------------------------------- +/** @brief Specify if to try load Quake 3 shader files. This also controls + * original surface name handling: when disabled it will be used unchanged. + * + * Property type: bool. Default value: true. + */ +#define AI_CONFIG_IMPORT_MD3_LOAD_SHADERS \ + "IMPORT_MD3_LOAD_SHADERS" + +// --------------------------------------------------------------------------- /** @brief Specify the Quake 3 shader file to be used for a particular * MD3 file. This can also be a search path. * @@ -1096,16 +1097,70 @@ enum aiComponent #define AI_CONFIG_EXPORT_XFILE_64BIT "EXPORT_XFILE_64BIT" /** @brief Specifies whether the assimp export shall be able to export point clouds - * + * * When this flag is not defined the render data has to contain valid faces. * Point clouds are only a collection of vertices which have nor spatial organization * by a face and the validation process will remove them. Enabling this feature will * switch off the flag and enable the functionality to export pure point clouds. + * + * Property type: Bool. Default value: false. */ #define AI_CONFIG_EXPORT_POINT_CLOUDS "EXPORT_POINT_CLOUDS" +/** @brief Specifies whether to use the deprecated KHR_materials_pbrSpecularGlossiness extension + * + * When this flag is undefined any material with specularity will use the new KHR_materials_specular + * extension. Enabling this flag will revert to the deprecated extension. Note that exporting + * KHR_materials_pbrSpecularGlossiness with extensions other than KHR_materials_unlit is unsupported, + * including the basic pbrMetallicRoughness spec. + * + * Property type: Bool. Default value: false. + */ +#define AI_CONFIG_USE_GLTF_PBR_SPECULAR_GLOSSINESS "USE_GLTF_PBR_SPECULAR_GLOSSINESS" + +/** @brief Specifies whether to apply a limit on the number of four bones per vertex in skinning + * + * When this flag is not defined, all bone weights and indices are limited to a + * maximum of four bones for each vertex (attributes JOINT_0 and WEIGHT_0 only). + * By enabling this flag, the number of bones per vertex is unlimited. + * In both cases, indices and bone weights are sorted by weight in descending order. + * In the case of the limit of up to four bones, a maximum of the four largest values are exported. + * Weights are not normalized. + * Property type: Bool. Default value: false. + */ +#define AI_CONFIG_EXPORT_GLTF_UNLIMITED_SKINNING_BONES_PER_VERTEX \ + "USE_UNLIMITED_BONES_PER VERTEX" + +/** @brief Specifies whether to write the value referenced to opacity in TransparencyFactor of each material. + * + * When this flag is not defined, the TransparencyFactor value of each meterial is 1.0. + * By enabling this flag, the value is 1.0 - opacity; + + * Property type: Bool. Default value: false. + */ +#define AI_CONFIG_EXPORT_FBX_TRANSPARENCY_FACTOR_REFER_TO_OPACITY \ + "EXPORT_FBX_TRANSPARENCY_FACTOR_REFER_TO_OPACITY" + /** - * @brief Specifies a gobal key factor for scale, float value + * @brief Specifies the blob name, assimp uses for exporting. + * + * Some formats require auxiliary files to be written, that need to be linked back into + * the original file. For example, OBJ files export materials to a separate MTL file and + * use the `mtllib` keyword to reference this file. + * + * When exporting blobs using #ExportToBlob, assimp does not know the name of the blob + * file and thus outputs `mtllib $blobfile.mtl`, which might not be desired, since the + * MTL file might be called differently. + * + * This property can be used to give the exporter a hint on how to use the magic + * `$blobfile` keyword. If the exporter detects the keyword and is provided with a name + * for the blob, it instead uses this name. + */ +#define AI_CONFIG_EXPORT_BLOB_NAME "EXPORT_BLOB_NAME" + +/** + * + * @brief Specifies a global key factor for scale, float value */ #define AI_CONFIG_GLOBAL_SCALE_FACTOR_KEY "GLOBAL_SCALE_FACTOR" @@ -1127,6 +1182,6 @@ enum aiComponent * Property type: Bool. Default value: undefined. */ -/* #undef ASSIMP_DOUBLE_PRECISION */ + #endif // !! AI_CONFIG_H_INC diff --git a/src/3rdparty/assimp/qt_attribution.json b/src/3rdparty/assimp/qt_attribution.json index 658e18077..544ea4f48 100644 --- a/src/3rdparty/assimp/qt_attribution.json +++ b/src/3rdparty/assimp/qt_attribution.json @@ -4,13 +4,11 @@ "QDocModule": "qtquick3d", "Description": "assimp (Open Asset Import Library) is a portable open source library to import various well-known 3D model formats in a uniform manner.", "QtUsage": "Used for importing assets for use with Qt Quick 3D", - "Homepage": "http://www.assimp.org/", - "Version": "5.3.1", - "DownloadLocation": "https://github.com/assimp/assimp/releases/tag/v5.3.1", - + "Version": "5.4.0", + "DownloadLocation": "https://github.com/assimp/assimp/releases/tag/v5.4.0", "License": "BSD 3-clause \"New\" or \"Revised\" Licensee", "LicenseId": "BSD-3-Clause", "LicenseFile": "LICENSE", "Copyright": "Copyright (c) 2006-2018, assimp team" -} +}
\ No newline at end of file diff --git a/src/3rdparty/assimp/revision.h b/src/3rdparty/assimp/revision.h index 2d7b89937..47b3794ba 100644 --- a/src/3rdparty/assimp/revision.h +++ b/src/3rdparty/assimp/revision.h @@ -1,28 +1,28 @@ #ifndef ASSIMP_REVISION_H_INC #define ASSIMP_REVISION_H_INC -#define GitVersion 0xc60a259f +#define GitVersion 0x8b9ed34e #define GitBranch "HEAD" #define VER_MAJOR 5 -#define VER_MINOR 3 -#define VER_PATCH 1 +#define VER_MINOR 4 +#define VER_PATCH 0 #define VER_BUILD 0 #define STR_HELP(x) #x #define STR(x) STR_HELP(x) -#define VER_FILEVERSION VER_MAJOR,VER_MINOR,VER_PATCH,VER_BUILD +#define VER_FILEVERSION VER_MAJOR, VER_MINOR, VER_PATCH, VER_BUILD #if (GitVersion == 0) -#define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) +#define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) #else -#define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) " (Commit 5a38cd0a)" +#define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD) " (Commit 5a38cd0a)" #endif -#ifdef NDEBUG -#define VER_ORIGINAL_FILENAME_STR "assimp.dll" +#ifdef NDEBUG +#define VER_ORIGINAL_FILENAME_STR "assimp.dll" #else -#define VER_ORIGINAL_FILENAME_STR "assimp.dll" +#define VER_ORIGINAL_FILENAME_STR "assimp.dll" #endif // NDEBUG #endif // ASSIMP_REVISION_H_INC diff --git a/src/3rdparty/assimp/src b/src/3rdparty/assimp/src -Subproject c60a259fd35f09b8896b2920d48c436145914aa +Subproject 5967dee48b0b8ed32a41579559570e380462a1d diff --git a/src/core/doc/snippets/code/src_core_qcircularbuffer.cpp b/src/core/doc/snippets/code/src_core_qcircularbuffer.cpp index 03547e342..18b63c97c 100644 --- a/src/core/doc/snippets/code/src_core_qcircularbuffer.cpp +++ b/src/core/doc/snippets/code/src_core_qcircularbuffer.cpp @@ -1,5 +1,5 @@ // Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause //! [0] QCircularBuffer<int> integerBuffer; diff --git a/src/input/frontend/qmousehandler.cpp b/src/input/frontend/qmousehandler.cpp index c2554dc4b..175b6cc45 100644 --- a/src/input/frontend/qmousehandler.cpp +++ b/src/input/frontend/qmousehandler.cpp @@ -13,29 +13,31 @@ QT_BEGIN_NAMESPACE namespace Qt3DInput { using namespace Qt3DCore; +using namespace std::chrono_literals; /*! \internal */ QMouseHandlerPrivate::QMouseHandlerPrivate() : QComponentPrivate() , m_mouseDevice(nullptr) , m_containsMouse(false) - , m_pressAndHoldTimer(new QTimer) { m_shareable = false; - m_pressAndHoldTimer->setSingleShot(true); - m_pressAndHoldTimer->setInterval(800); - QObject::connect(m_pressAndHoldTimer, &QTimer::timeout, q_func(), [this] { - emit q_func()->pressAndHold(m_lastPressedEvent.data()); - }); } QMouseHandlerPrivate::~QMouseHandlerPrivate() { } -void QMouseHandlerPrivate::init(QObject *parent) +void QMouseHandlerPrivate::init() { - m_pressAndHoldTimer->setParent(parent); + Q_Q(QMouseHandler); + + m_pressAndHoldTimer = new QTimer(q); + m_pressAndHoldTimer->setSingleShot(true); + m_pressAndHoldTimer->setInterval(800ms); + QObject::connect(m_pressAndHoldTimer, &QTimer::timeout, q, [this, q] { + emit q->pressAndHold(m_lastPressedEvent.data()); + }); } void QMouseHandlerPrivate::mouseEvent(const QMouseEventPtr &event) @@ -230,7 +232,7 @@ QMouseHandler::QMouseHandler(QNode *parent) : QComponent(*new QMouseHandlerPrivate, parent) { Q_D(QMouseHandler); - d->init(this); + d->init(); } QMouseHandler::~QMouseHandler() diff --git a/src/input/frontend/qmousehandler_p.h b/src/input/frontend/qmousehandler_p.h index 2dc444492..03ff6f4d1 100644 --- a/src/input/frontend/qmousehandler_p.h +++ b/src/input/frontend/qmousehandler_p.h @@ -16,6 +16,7 @@ // #include <Qt3DInput/qmouseevent.h> +#include <Qt3DInput/qmousehandler.h> #include <Qt3DCore/private/qcomponent_p.h> @@ -34,7 +35,7 @@ public: QMouseHandlerPrivate(); ~QMouseHandlerPrivate(); - void init(QObject *parent); + void init(); QMouseDevice *m_mouseDevice; bool m_containsMouse; diff --git a/src/quick3d/imports/input/CMakeLists.txt b/src/quick3d/imports/input/CMakeLists.txt index f219b7d54..52ce25c8f 100644 --- a/src/quick3d/imports/input/CMakeLists.txt +++ b/src/quick3d/imports/input/CMakeLists.txt @@ -27,6 +27,7 @@ qt_internal_add_qml_module(quick3dinputplugin Qt::Gui Qt::Qml ) +target_include_directories(quick3dinputplugin PRIVATE ../../quick3dinput/items) #### Keys ignored in scope 1:.:.:importsinput.pro:<TRUE>: # CXX_MODULE = "qml" |