Commit Graph

6526 Commits (1e93280f471452fe567ca3403bdac8e604135376)

Author SHA1 Message Date
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
sfjohnston dd40b0ccee Changed #define FBX_FOV_UNKNOWN to const float kFovUnknown 2023-07-23 12:05:01 -07:00
sfjohnston 3ec8a36764
Merge branch 'assimp:master' into sfjohnston_mods 2023-07-23 08:37:47 -07:00
Marco Feuerstein 37a1366fb7 Add missing rapidjson headers. 2023-07-21 11:33:06 +02:00
Kim Kulling 64e0ba2625
Merge branch 'master' into sfjohnston_mods 2023-07-20 09:21:13 +00:00
Kim Kulling 16021ef9ac
Merge branch 'master' into cloud_storage_version 2023-07-14 11:47:24 +02:00
Marco Feuerstein 0e7cd18c8b Strip aws gcs version string. 2023-07-14 09:37:48 +02:00
Marco Feuerstein bf38d67935 Fix detection of KHR_materials_specular. 2023-07-13 11:51:56 +02:00
sfjohnston c7afea3cd7
Merge branch 'assimp:master' into sfjohnston_mods 2023-07-10 07:58:21 -07:00
Kim Kulling e2b19ef776
Merge branch 'master' into file_extension 2023-07-10 11:19:27 +02:00
Marco Feuerstein 87cac888e4 More simplifications. 2023-07-08 12:58:11 +02:00
Marco Feuerstein bdde968677 Address reviewer comment. 2023-07-08 12:58:11 +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
Kim Kulling 90ff723b6c
Merge branch 'master' into gltf_binary 2023-07-03 21:31:28 +02:00
Kim Kulling ed903543a7
Merge branch 'master' into 4879958521806848 2023-07-03 19:50:38 +02:00
Alex 093e35dd54 Fix eternal loop 2023-07-03 09:12:00 +00:00
Alex edb8375702 Fix integer overflow 2023-07-03 09:11:38 +00:00
PencilAmazing f1561f03ce
Merge branch 'master' into irrfix 2023-07-02 15:10:04 -04:00
PencilAmazing 0bacc7134d Remove debugging code, clean up some notes 2023-07-02 14:32:17 -04:00
PencilAmazing 19da9cc84d Port mesh loading to pugixml. Untested. 2023-07-02 14:32:12 -04:00
dog 3e1fd74940 Fix up scene loading. pugixml is a breadth-first parser while irrxml is
a depth first. This only parses scene structure, no mesh loading yet.
2023-07-02 14:30:54 -04:00
PencilAmazing 537b445a59 Apply clang-format to files 2023-07-02 14:17:52 -04:00
Alex 6f3bfb5b60 Fix memory leak 2023-07-02 14:12:49 -04:00
Alex 3838a8aaf8 Fix unknown write in Assimp::ObjFileMtlImporter::getFloatValue 2023-07-02 14:12:49 -04:00
Marco Feuerstein 82d3f47432 Unify way to check readable blender files. 2023-06-29 15:10:28 +02:00
Marco Feuerstein 2875de132f Fix compilation on windows. 2023-06-29 08:20:51 +02:00
Marco Feuerstein 17fac97b04 Fix magic token usage. 2023-06-29 08:20:51 +02:00
Marco Feuerstein 1c0f3c5f87 Fix string length calculation. 2023-06-29 08:20:50 +02:00
Marco Feuerstein a2bdfdd05a Improve binary check for gltf and gltf2.
By checking the magic token we don't depend on the extension any more
and follow the official way to detect a gltf file as binary, see also
https://github.com/KhronosGroup/glTF/blob/main/extensions/1.0/Khronos/KHR_binary_glTF/README.md#header
and https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#binary-header.
2023-06-29 08:20:50 +02:00
Kim Kulling 1ec3dbd11a
Merge branch 'master' into 5093294573486080 2023-06-27 17:04:58 +02:00
Kim Kulling f24224fdc5
Merge branch 'master' into SupportOBJSpecifiedOnlyAPartOfVertexColors 2023-06-27 13:44:31 +02:00
Kim Kulling db6c1a8b1c
Merge branch 'master' into 5921493454815232 2023-06-27 11:03:50 +02:00
Kim Kulling ef6bf03acd
Merge branch 'master' into 5143879191494656 2023-06-27 10:23:36 +02:00
Kim Kulling 141e278e1f
Merge branch 'master' into 5407417422970880 2023-06-27 10:07:21 +02:00
Kim Kulling ff36ea7e23
Merge branch 'master' into 6521292621217792 2023-06-26 09:17:40 +02:00
Kim Kulling b1181b1086
Merge branch 'master' into 4508318827937792 2023-06-25 21:20:02 +02:00
Kim Kulling 7005a9caa2
Merge branch 'master' into 6520123362508800 2023-06-25 21:07:34 +02:00
Kim Kulling 6b1a2e91d5
Merge branch 'master' into 6091762766839808 2023-06-25 20:08:45 +02:00
Kim Kulling 438f9fe568
Merge branch 'master' into 6020769077657600 2023-06-25 18:11:54 +02:00
Kim Kulling 3545aab937
Merge branch 'master' into 5781186265350144 2023-06-25 17:51:01 +02:00
Kim Kulling bd65af0d44
Merge branch 'master' into SupportOBJSpecifiedOnlyAPartOfVertexColors 2023-06-20 09:38:53 +02:00
Kim Kulling 6502b97d3e Fix: Put unused var into comments to later use. 2023-06-19 23:38:57 +02:00
Kim Kulling 7f0c388ad8 Fix: Put unused var into comments to later use. 2023-06-19 23:27:32 +02:00
Kim Kulling 10059e6431 Add handling for negative indices. 2023-06-19 23:21:35 +02:00
emaame 22c8d97b54 Support OBJ specified only a part of vertex colors
The omitted vertex colors are treated as (0, 0, 0, 1).

e.g

v  0.0  0.0  0.0
v  0.0  0.0  1.0  0.0  0.0  0.0
v  0.0  1.0  0.0
v  1.0  0.0  0.0  1.0  0.6  0.3
v  1.0  1.0  0.0
2023-06-17 16:31:04 +09:00
Scott Johnston aab3c8010c Correct from full FOV to assimp half-fov in camera. Compute from filmWidth and focalLength if FOV not specified. 2023-06-15 12:16:06 -07:00
Alex 36dfa3bed3 Fix UNKNOWN WRITE in Assimp::SortByPTypeProcess::Execute 2023-06-14 15:50:50 +00:00
Alex b158b716d1 Fix Memcpy-param-overlap in unzReadCurrentFile: bump zlib to 1.2.13 2023-06-14 07:41:41 +02:00
Alex 9ef71fe231
Merge branch 'master' into 5781186265350144 2023-06-14 07:40:47 +02:00