A Postprocessing step, SortByPTypeProcess, can rebuild Mesh data,
but it does not handle AnimMesh.
This patch helps to rebuild appropriate AnimMeshes for the Mesh.
Tested:
$ cmake -DASSIMP_DOUBLE_PRECISION=1 -DASSIMP_BUILD_MDL_IMPORTER=0 ..; make
The MDL importer is disabled due to the fact that there is some float-only code
in MDL. This also means bin/assimp and bin/unit would not link successfully with
the above build flags.
There's a code path where an input scene only has a single mesh.
In this case, if ProcessMesh returns 2, we delete the mesh and move on
with the postprocessing. UpdateMeshReferences is not called and so the
deleted mesh is left dangling in nodes.
In a later step (SplitMesh in my testing), it then tries to deference a
null pointer and we explode.
With `out = true`, we can now hit the DeadlyImportError instead of a
segfault.
In debug builds, there's no issues, but in release, an invalid mesh that
is deleted in FindInvalidDataProcess will be double free'd when the
parent scene is destroyed.
- Moved TextureTypeToString to it's own file.
- Added new file to CMakeLists.txt.
- Added 6 missing values in TextureTypeToString.
- Added 6 missing aiTextureType enum values in assimp_cmd/Info.cpp.
Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, assimp team".
Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, ASSIMP Development Team".
Changed copyright end year to 2020 in LICENCE.rtf.
Changed copyright end year in CMakeFiles.txt files and any other places referencing Assimp with a copyright start and end year.
PretransformVertices postprocessing now reverses face order when transform is mirroring.
Fixes flip to backfacing in models that mirrored some nodes.
(Odd count of negative scale components, negative determinant)
OptimizeGraph postprocessing now reverses face order when
node scale is mirroring.
Fixes flip to backfacing in models that mirrored some nodes.
(Odd count of negative scale components, negative determinant)