assimp/code/PostProcessing
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
..
ArmaturePopulate.cpp Remove dead code 2023-05-04 21:10:51 +02:00
ArmaturePopulate.h Reafctoring: Add GeoUtils usage 2023-05-04 20:57:20 +02:00
CalcTangentsProcess.cpp Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
CalcTangentsProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:39:36 +01:00
ComputeUVMappingProcess.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
ComputeUVMappingProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
ConvertToLHProcess.cpp Merge branch 'master' into kimkulling/refactoring_geoutils 2023-05-04 21:10:00 +02:00
ConvertToLHProcess.h ConvertToLHProcess noew inverts viewing direction 2023-04-04 19:39:32 +02:00
DeboneProcess.cpp Refactoring: Cleanup post-processing steps. 2023-04-16 18:20:14 +02:00
DeboneProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:34:31 +01:00
DropFaceNormalsProcess.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
DropFaceNormalsProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
EmbedTexturesProcess.cpp Refactoring: Code cleanup post-processing. 2023-03-14 21:04:43 +01:00
EmbedTexturesProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
FindDegenerates.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
FindDegenerates.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
FindInstancesProcess.cpp Refactoring: Make GeoUtils reusable 2023-03-14 20:03:14 +01:00
FindInstancesProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
FindInvalidDataProcess.cpp Fix UNKNOWN READ crash in UpdateMeshReferences 2023-06-14 07:40:36 +02:00
FindInvalidDataProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
FixNormalsStep.cpp Refactoring: Make GeoUtils reusable 2023-03-14 20:03:14 +01:00
FixNormalsStep.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
GenBoundingBoxesProcess.cpp Refactoring: Make GeoUtils reusable 2023-03-14 20:03:14 +01:00
GenBoundingBoxesProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 21:04:43 +01:00
GenFaceNormalsProcess.cpp Refactoring: Make GeoUtils reusable 2023-03-14 20:03:14 +01:00
GenFaceNormalsProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
GenVertexNormalsProcess.cpp Refactoring: Make GeoUtils reusable 2023-03-14 20:03:14 +01:00
GenVertexNormalsProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
ImproveCacheLocality.cpp Refactoring: Code cleanup post-processing. 2023-03-14 21:04:43 +01:00
ImproveCacheLocality.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
JoinVerticesProcess.cpp Infrastructure for reporting progress 2023-08-01 14:06:12 +02:00
JoinVerticesProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
LimitBoneWeightsProcess.cpp Fixed missing config property lookup for removal of empty bones. 2023-06-06 14:30:35 +02:00
LimitBoneWeightsProcess.h Fixed missing config property lookup for removal of empty bones. 2023-06-06 14:30:35 +02:00
MakeVerboseFormat.cpp Refactoring: Code cleanup post-processing. 2023-03-14 21:04:43 +01:00
MakeVerboseFormat.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
OptimizeGraph.cpp Refactoring: Code cleanup post-processing. 2023-03-14 21:04:43 +01:00
OptimizeGraph.h Refactoring: Code cleanup post-processing. 2023-03-14 21:04:43 +01:00
OptimizeMeshes.cpp Refactoring: Code cleanup post-processing. 2023-03-14 21:04:43 +01:00
OptimizeMeshes.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
PretransformVertices.cpp Merge branch 'master' into kimkulling/refactoring_geoutils 2023-05-04 21:10:00 +02:00
PretransformVertices.h Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
ProcessHelper.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
ProcessHelper.h Update copyrights 2022-01-10 21:13:43 +01:00
RemoveRedundantMaterials.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
RemoveRedundantMaterials.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
RemoveVCProcess.cpp Refactoring: Cleanup post-processing steps. 2023-04-16 18:20:14 +02:00
RemoveVCProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
ScaleProcess.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
ScaleProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
SortByPTypeProcess.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
SortByPTypeProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
SplitByBoneCountProcess.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
SplitByBoneCountProcess.h Refactoring: Cleanup post-processing steps. 2023-04-16 18:20:14 +02:00
SplitLargeMeshes.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
SplitLargeMeshes.h Refactoring: Code cleanup post-processing. 2023-03-14 23:37:10 +01:00
TextureTransform.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
TextureTransform.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
TriangulateProcess.cpp Refactoring: Reuse code from GeometryUtils 2023-05-04 00:00:52 +02:00
TriangulateProcess.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00
ValidateDataStructure.cpp Merge branch 'master' into kimkulling/refactoring_geoutils 2023-05-04 21:10:00 +02:00
ValidateDataStructure.h Refactoring: Code cleanup post-processing. 2023-03-14 23:32:03 +01:00