Commit Graph

1170 Commits (a45bb31618031eb74393f9cba7b26f2ffe5b2f40)

Author SHA1 Message Date
Jan Krassnigg a45bb31618 Build fix 2023-08-01 14:16:41 +02:00
Jan Krassnigg 1e93280f47 Infrastructure for reporting progress
This commit adds two classes:
* ProgressTracker
* ProgressScope

The first is for users to implement, and to instantiate when they desire
to get informed about the overall progress.

The second is to be added to all functions that may take a considerable
amount of time, such that they can report back how far along they are.

These are much more convenient to use than the existing ProgressHandler.
ProgressScope is designed such that it only requires "local knowledge"
about upcoming and finished work. Scopes are nested and combined to
form the final global progress.

The active ProgressTracker is stored in a thread_local pointer.
This is a consicius decision since in assimp there is often no 'context'
passed through. The ProgressTracker may be needed anywhere, and it would
be tedious and a huge change to pass it through to every function.
Therefore, using a thread_local variable makes it accessible everywhere,
without a major interface change. Since assimmp is single-threaded,
but may be run in parallel on multiple threads, a thread_local is a
good trade-off, in my opinion.

This change only adds few uses of ProgressScope, to generally show how
it would be used. Also for our use cases these where the most pressing
places to add progress reporting, so this already covers loading from FBX
files pretty well.
2023-08-01 14:06:12 +02:00
Kim Kulling e2b19ef776
Merge branch 'master' into file_extension 2023-07-10 11:19:27 +02:00
Marco Feuerstein 506baa21e6 Unify extension check for importers.
This enables proper checking for all kinds of extensions (including the
ones with multiple dots) for all importers and internal usage.
2023-07-08 12:58:11 +02:00
Marco Feuerstein 0256047168 Extend token search flag from alpha to graph.
This way we can fix Blender exported files being wrongly detected as
obj files.
2023-07-08 12:57:45 +02:00
Marco Feuerstein 8b005eaa83 Add missing header. 2023-07-07 14:28:05 +02:00
Kim Kulling e947471549
Merge branch 'master' into refactor/KHR_material_specular 2023-05-22 09:49:01 +02:00
Kim Kulling 1243325f10
Merge branch 'master' into kimkulling/refactoring_geoutils 2023-05-04 21:10:00 +02:00
Kim Kulling 75d024c91b Reafctoring: Add GeoUtils usage 2023-05-04 20:57:20 +02:00
Kim Kulling d58201a579 Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
Kim Kulling 71366fff8e
Merge branch 'master' into msvc-clang-inconsistent-missing-destructor-override 2023-04-26 09:31:55 +02:00
Kim Kulling 1ecb8e9196
Merge branch 'master' into msvc-clang-missing-noreturn 2023-04-25 23:56:39 +02:00
Kim Kulling fd59a2209b
Update fast_atof.h 2023-04-17 22:07:49 +02:00
Kim Kulling d51f033e20
Fix: Avoid integer overflow in inversion op
- closes https://github.com/assimp/assimp/issues/3424
2023-04-17 21:30:47 +02:00
Kim Kulling 5d841ec9a5 Refactoring: Cleanup post-processing steps. 2023-04-16 18:20:14 +02:00
Adam Beili e193220ad8
Merge branch 'master' into refactor/KHR_material_specular 2023-04-06 02:42:18 +02:00
Jackie9527 7df4efea44 Fix warning related to inconsistent-missing-destructor-override.
Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>
2023-04-01 21:49:38 +08:00
Jackie9527 87c309566f Fix warning related to missing-noreturn.
Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>
2023-04-01 18:46:12 +08:00
Jackie9527 94067994cc Fix warning related to format-non-iso.
Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>
2023-04-01 12:29:42 +08:00
Adam Beili 83053f3d56
Made usePbrSpecGloss a exportproperty, fixed mat_specular to spec 2023-03-26 16:55:38 +02:00
Adam Beili c9177b7811
Merge branch 'master' into refactor/KHR_material_specular 2023-03-24 21:47:19 +01:00
Urs Hanselmann 8fb83af079
Merge branch 'master' into master 2023-03-07 19:45:45 +01:00
Kim Kulling 4f48348af8 Fix: Move c++ include to c++ section 2023-03-07 18:55:18 +01:00
Kim Kulling c089f11768 Update utf82utf16. 2023-03-06 19:56:11 +01:00
Urs Hanselmann 011382424b remove debug message from MemoryIOStream (used by public Importer::ReadFileFromMemory method) 2023-03-03 19:31:50 +01:00
Kim Kulling 1092f0d94e Fix:Use correct encoding 2023-03-01 21:40:45 +01:00
Kim Kulling 65b0553b8d
Merge branch 'master' into kimkulling/skeleton_update_doc 2023-02-21 09:50:27 +01:00
Kim Kulling 3ad67771fe Add missing pod types. 2023-02-18 17:09:14 +01:00
Kim Kulling 9898138516
Update mesh.h 2023-02-15 21:02:03 +01:00
Kim Kulling 779912e84e
Merge branch 'master' into kimkulling/skeleton-doc 2023-02-13 21:29:32 +01:00
Kim Kulling 156a393b84
Fix a typo 2023-02-10 08:07:09 +01:00
Kim Kulling bde9a6a3c3
Update mesh.h 2023-02-09 22:36:06 +01:00
Kim Kulling 7b3f70a08b
Add skeleton doc 2023-02-09 21:12:21 +01:00
jiannanya 2390822baf Fix: the member function 'Flush()' of class 'MemoryIOStream' need to be marked as override for msvc clang compiling 2023-02-09 21:30:48 +08:00
Kim Kulling b7d08fc8f2
Fix review findings. 2023-02-08 21:48:55 +01:00
Kim Kulling b170370e5c Fix: Fix memleak when exiting method by exception 2023-02-08 21:29:54 +01:00
Kim Kulling e9c95d484e
Update IOStreamBuffer.h 2023-02-04 18:36:36 +01:00
Matthias Möller db72c6ee38 When "getNextBlock" was called after "getNextLine", the pointer could still on the newline.
The pointer to a newline could not advance enough, when the line ended with \r\n. The resulting buffer was correct, as the buffer range went from <start> until \r, but that the pointer increased by just 1 could lead to the problem that the next pointer points at \n, which is still part of the newline and therefore, "getNextBlock" got 1 byte too much.

Refs Issue #4871
2023-02-04 15:16:22 +01:00
krishty df28e7830f
Merge branch 'master' into fix-build-without-armaturepopulate-post-process 2023-01-29 01:14:33 +01:00
Steve M eff13f6a40 Update morph mesh documentation now that gltf known to work 2023-01-25 20:52:25 -08:00
Kim Kulling f830d7998e
Merge branch 'master' into clean-up-ctors-dtors 2023-01-23 21:21:34 +01:00
Krishty 36305cf987 Tidy Up Constructors and Destructors
This commit does not add or remove c’tors or d’tors, so it is *not* ABI-breaking.

If a c’tor/d’tor does nothing else than the default behavior, this commit replaces it with “= default”.

If an initializer list entry does nothing else than the default behavior, this commit removes it. First and foremost, remove default c’tor calls of base classes (always called by the compiler if no other base c’tor is explicitly called) and c’tor calls of members with complex types (e.g. “std::vector”).

In a few instances, user-defined copy c’tors / move c’tors / assignment operators / move assignment operators were replaced with “= default”, too. I only did this if I had a clear understanding of what’s going on.
2023-01-16 21:47:11 +01:00
Krishty 3d3e856925 Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
Krishty 793284a766 Fix Build Without ArmaturePopulate Post Process Step
This post process step introduced new attributes into `aiSkeletonBone`. Said attributes are only defined with the process enabled, i.e. when the `ASSIMP_BUILD_NO_ARMATUREPOPULATE_PROCESS` macro has not been defined.

Some code, however, accessed the variables unconditionally, leading to build failures if `ASSIMP_BUILD_NO_ARMATUREPOPULATE_PROCESS` was defined.

This commit adds the missing checks.
2023-01-16 08:42:50 +01:00
Steve M b2672c082d Change mMethod type to enum aiMorphingMethod
Address sanitizer warning
2023-01-12 12:35:28 -08:00
Kim Kulling b393132b58
Merge branch 'master' into spelling 2023-01-08 17:43:55 +01:00
Kim Kulling df8a9bb2b8
Fix: Fix signed unsigned mismatch
- closes https://github.com/assimp/assimp/issues/4854
2023-01-03 21:11:09 +01:00
Andy Maloney e893248e7c Fix several spelling mistakes & a comment 2023-01-01 13:31:48 -05:00
Kim Kulling a8e50be781 Refactoring: Move asserthandler header to include 2022-12-23 16:19:39 +01:00
Kim Kulling 76de8ba1f4
Update material.inl 2022-12-19 08:58:45 +01:00