assimp/code/Common
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
..
AssertHandler.cpp Refactoring: Move asserthandler header to include 2022-12-23 16:19:39 +01:00
Assimp.cpp Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
Base64.cpp Use string for constexpr 2022-08-27 15:11:54 +02:00
BaseImporter.cpp Strip aws gcs version string. 2023-07-14 09:37:48 +02:00
BaseProcess.cpp Add a handful of missing fixes 2022-09-01 11:37:53 -04:00
BaseProcess.h apply fixes to more headers 2022-09-01 12:28:45 -04:00
Bitmap.cpp Update copyrights 2022-01-10 21:13:43 +01:00
Compression.cpp Add missing flush modes supported by zlib 2022-02-14 20:51:06 +01:00
Compression.h Fix: Use ASCII treeview in assimp-cmd. 2022-09-16 21:55:14 +02:00
CreateAnimMesh.cpp Update copyrights 2022-01-10 21:13:43 +01:00
DefaultIOStream.cpp Merge branch 'master' into master 2022-06-24 09:56:09 +02:00
DefaultIOSystem.cpp Update copyrights 2022-01-10 21:13:43 +01:00
DefaultLogger.cpp IFC Reading: Fix opening reading. 2022-01-17 15:49:11 +00:00
DefaultProgressHandler.h Update copyrights 2022-01-10 21:13:43 +01:00
Exceptional.cpp Update copyrights 2022-01-10 21:13:43 +01:00
Exporter.cpp Fix PBRT exporter coordinate system 2023-05-03 16:52:33 +02:00
FileLogStream.h Update copyrights 2022-01-10 21:13:43 +01:00
FileSystemFilter.h Fix Heap-buffer-overflow READ in Assimp::FileSystemFilter::Cleanup 2023-06-14 07:40:28 +02:00
IFF.h Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
IOSystem.cpp INtroduce compression class to encapsulate compression via zlib 2022-02-06 20:42:58 +01:00
Importer.cpp Infrastructure for reporting progress 2023-08-01 14:06:12 +02:00
Importer.h Update copyrights 2022-01-10 21:13:43 +01:00
ImporterRegistry.cpp Remove dead code. 2023-04-04 12:54:26 +02:00
Maybe.h Perfect forward val to utMaybe 2022-09-09 10:55:45 -04:00
PolyTools.h bugfix fails to check if point in triangle. 2023-02-25 19:40:24 +08:00
PostStepRegistry.cpp Update copyrights 2022-01-10 21:13:43 +01:00
ProgressTracker.cpp Infrastructure for reporting progress 2023-08-01 14:06:12 +02:00
RemoveComments.cpp Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
SGSpatialSort.cpp Add a handful of missing fixes 2022-09-01 11:37:53 -04:00
SceneCombiner.cpp copy aiMetadata objects in scene combiner 2023-05-11 08:00:25 +02:00
ScenePreprocessor.cpp Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
ScenePreprocessor.h Update copyrights 2022-01-10 21:13:43 +01:00
ScenePrivate.h Update copyrights 2022-01-10 21:13:43 +01:00
SkeletonMeshBuilder.cpp fix warnings-as-errors for msvc x64 2022-12-03 20:27:00 +01:00
SpatialSort.cpp Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
StackAllocator.h Revert usage of unique_ptr - error. 2023-05-15 16:06:02 +02:00
StackAllocator.inl Update StackAllocator.inl 2023-05-15 15:09:54 +02:00
StandardShapes.cpp more fixes 2022-12-03 20:44:57 +01:00
StbCommon.h Fix warning related to unused-function. 2023-05-03 23:02:38 +08:00
StdOStreamLogStream.h Update copyrights 2022-01-10 21:13:43 +01:00
Subdivision.cpp Refactoring: Make GeoUtils reusable 2023-03-14 20:03:14 +01:00
TargetAnimation.cpp Update copyrights 2022-01-10 21:13:43 +01:00
TargetAnimation.h Update copyrights 2022-01-10 21:13:43 +01:00
Version.cpp Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
VertexTriangleAdjacency.cpp Update copyrights 2022-01-10 21:13:43 +01:00
VertexTriangleAdjacency.h Update copyrights 2022-01-10 21:13:43 +01:00
Win32DebugLogStream.h Update copyrights 2022-01-10 21:13:43 +01:00
ZipArchiveIOSystem.cpp Fix warning related to inconsistent-missing-destructor-override. 2023-04-01 21:49:38 +08:00
assbin_chunks.h Renamed WriteDumb.cpp to WriteDump.cpp 2020-01-30 16:40:34 -05:00
material.cpp Rename TextureTypeToString() to aiTextureTypeToString() 2022-05-01 13:27:42 +02:00
scene.cpp Update copyrights 2022-01-10 21:13:43 +01:00
simd.cpp INtroduce compression class to encapsulate compression via zlib 2022-02-06 20:42:58 +01:00
simd.h Add missing documentation. 2022-08-30 21:55:52 +02:00