summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/assimp/config.h111
-rw-r--r--src/3rdparty/assimp/qt_attribution.json8
-rw-r--r--src/3rdparty/assimp/revision.h18
m---------src/3rdparty/assimp/src0
-rw-r--r--src/core/doc/snippets/code/src_core_qcircularbuffer.cpp2
-rw-r--r--src/input/frontend/qmousehandler.cpp20
-rw-r--r--src/input/frontend/qmousehandler_p.h3
-rw-r--r--src/quick3d/imports/input/CMakeLists.txt1
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"