Commit Graph

347 Commits (ed742aba569c9a0164f8a975f40445bbed2737ab)

Author SHA1 Message Date
Malcolm Tyrrell add165c4a1 Check target sizes to avoid reading beyond allocation 2021-03-24 10:55:40 +00:00
Kim Kulling 5f652feb75
Merge branch 'master' into MalcolmTyrrell/gltfCrashes 2021-03-19 13:35:13 +01:00
Hill Ma 3e99385f44 Fix a memory leak in glTF2.
The destructor of LazyDict uses `delete` but `delete` was not used for objects removed by LazyDict::Remove.
2021-03-17 15:12:54 -07:00
Malcolm Tyrrell 3503252e12 Strict check for accessor "count" 2021-03-16 11:47:19 +00:00
Malcolm Tyrrell e4983aa16e Fix code issue 2021-03-15 16:46:41 +00:00
Malcolm Tyrrell 57652a9084 Version is strictly a string 2021-03-15 16:27:50 +00:00
Malcolm Tyrrell 053c0f5e0a Catch type errors in gltf and try to print out useful context. 2021-03-15 13:06:11 +00:00
Kim Kulling 806b12dc8b
Merge branch 'master' into issue_3678 2021-03-10 19:51:04 +01:00
Kim Kulling 6c89631581 closes https://github.com/assimp/assimp/issues/3678: ensure lowercase 2021-03-09 21:08:28 +01:00
Kim Kulling 75210576cf
Merge branch 'master' into sparse_minmax 2021-03-01 21:34:24 +01:00
Kim Kulling c669c8f1eb
Merge branch 'master' into update_copyrights 2021-02-28 12:18:41 +01:00
Kim Kulling 9e8dbd0ca5 Update copyrights to 2021. 2021-02-28 12:17:54 +01:00
Max Vollmer (Microsoft Havok) eef03c1f17 Improved warnings 2021-02-24 14:28:18 +00:00
Max Vollmer (Microsoft Havok) facb7da701 Check that normal count and tangent count matches vertex count. Ignore data and warn if counts don't match. 2021-02-24 14:19:29 +00:00
thomasbiang 5429475339
Merge branch 'master' into sparse_minmax 2021-02-23 12:30:53 -08:00
Kim Kulling 247fd0ce17
Merge branch 'master' into FixAnimName 2021-02-22 20:38:16 +01:00
Kim Kulling 6094da3493
Update glTF2Asset.inl 2021-02-18 09:32:37 +01:00
Minmin Gong d57b78bc98 Export the animation name to gltf2 2021-02-16 20:22:08 -08:00
Kim Kulling 888415246e
Merge branch 'master' into issue_2195_draco 2021-02-08 11:52:54 +01:00
ywang 9bab475302 export min max for sparse accessor 2021-02-03 15:05:58 -08:00
ywang 793bd44cee fix issue: 3482: invalid gltf2 properties 2021-02-02 13:19:57 -08:00
Kim Kulling 5fbbba2fac
Merge branch 'master' into issue_2195_draco 2021-01-31 16:02:57 +01:00
RichardTea 48bcbbefdd use nullptr and float constants 2021-01-27 10:56:57 +00:00
RichardTea 150514fc8b Move draco warning suppression
Should be around the include for portability, not template instantiation
Fix clang pragma typos
2021-01-27 10:42:28 +00:00
RichardTea 6ec32b6b78 Apply clangformat 2021-01-27 09:55:03 +00:00
RichardTea c6fd1ce996 glTF2 Minor cleanup 2021-01-27 09:42:49 +00:00
RichardTea 5b9d06c2fc Disable draco clang/gcc warnings via pragma
draco templated functions also throw warnings
2021-01-27 09:19:35 +00:00
RichardTea d79e0c0ba9 Avoid std::make_unique
Assimp is still C++11
2021-01-26 17:33:10 +00:00
RichardTea c917e6513f
Merge branch 'master' into issue_2195_draco 2021-01-26 16:43:46 +00:00
RichardTea f39ba8ddb2 Add compile error for bad error draco config
KHR_draco_mesh_compression requires
DRACO_MESH_COMPRESSION_SUPPORTED
2021-01-26 16:24:18 +00:00
RichardTea dde7605158 Implement draco decoding 2021-01-26 16:08:12 +00:00
thomasbiang 91dc904ed1
Merge branch 'master' into master 2021-01-22 13:25:31 -08:00
Kim Kulling 2bcf08370d
Merge branch 'master' into fix-gltf-vertex-colors 2021-01-21 11:54:02 +01:00
thomasbiang d7cf7847ba
Merge branch 'master' into master 2021-01-20 18:47:39 -08:00
ywang 01e61c8b9f customized node transformation format 2021-01-20 18:42:56 -08:00
Maki 6d13fd6aa2 Fix glTF vertex colors with types other than float 2021-01-15 02:56:45 +00:00
Max Vollmer d49aed4585 * Check that buffer view has buffer
* Handle integer overflow when calculating byte length
* Minor code cleanup for exception messages
2021-01-11 08:45:47 +00:00
Danny-Kint 07aace0fdd
Merge branch 'master' into dev/gltf-KHR_materials 2020-12-31 07:08:31 +01:00
Danny-Kint 07b59f539d
Merge branch 'master' into dev/gltf-KHR_materials 2020-12-28 08:48:54 +01:00
Maki ca653e0c6a Fix glTF from memory loading .bin with a custom IOHandler 2020-12-28 07:18:50 +00:00
Kim Kulling 3f5238d7c1
Merge branch 'master' into gltf2_fixes 2020-12-24 16:48:36 +01:00
Danny-Kint dbffe25c9d
Merge branch 'master' into dev/gltf-KHR_materials 2020-12-23 11:33:04 +01:00
Danny Kabrane 383c97e380 Add KHR_materials_transmission during export 2020-12-23 10:43:21 +01:00
Danny Kabrane 2b097c1e73 Add KHR_materials_transmission during import 2020-12-23 10:43:01 +01:00
Danny Kabrane 197bf1e617 Add KHR_materials_clearcoat during export 2020-12-23 09:56:15 +01:00
Danny Kabrane f8c63d874b support KHR_materials_clearcoat during import 2020-12-23 08:12:09 +01:00
Danny Kabrane aa9d6ce7b7 add support for khr_materials_sheen during export 2020-12-21 14:34:16 +01:00
Danny Kabrane 0fdda99ea1 add underscore (MATERIAL_SHEEN instead of MATERIALSHEEN) 2020-12-21 14:33:35 +01:00
Danny Kabrane 63b0a97369 import KHR_materials_sheen 2020-12-20 07:59:12 +01:00
Max Vollmer a15adc9fbc Fixed copypaste error 2020-12-14 17:01:42 +00:00
Max Vollmer 1db51503d8 Throw instead of assert on invalid file input 2020-12-14 16:44:56 +00:00
Max Vollmer 5436e16802 * Fix memory leak in GLTF2 Importer that occurs when an exception gets thrown while constructing a scene
* Fix crash in GLTF2 Importer when a scene with dangling/uninitialized pointers gets deleted after an exception was thrown
* Fix crash in GLTF2 Importer when channel sampler is not set (negative index)
2020-12-14 16:37:02 +00:00
Jean-Louis Boudrand d18fce3f06 Fix https://github.com/assimp/assimp/issues/3054
Corrected the animation of each bone of an animation were exported in different animations (+tabs fixes)
2020-12-13 17:02:50 +01:00
Jean-Louis Boudrand 8701a86c9d Fixed a crash of the Gltf 2 exporter in the case of an animation without a translation, rotation or scale animation key. 2020-12-10 23:47:54 +01:00
Kim Kulling 816bbc852c
Merge branch 'master' into master 2020-12-08 19:54:04 +01:00
FRICOTEAUX b47c5c8c27 glTF2Exporter: fix crash when exporting a scene with several meshes per node (regression coming from commit e8d2b84 on 08/03/2020 "clean all warnings for vs-2019") 2020-11-30 20:11:41 +01:00
Max Vollmer 7d72c78c8e Some improvements 2020-11-30 15:20:51 +00:00
Max Vollmer 6ed1488e6e * Improved error messages
* Throw instead of asserts on invalid file input
2020-11-30 15:04:06 +00:00
Kim Kulling 4590f06756
Merge branch 'master' into master 2020-11-25 16:57:49 +01:00
Evangel 98e42e22b8 Added check around setting pScene->mName from asset.scene. 2020-11-22 15:49:41 +10:00
Evangel 30584c1ec1 Replaced name with scene_name to avoid shadowing. 2020-11-22 15:36:08 +10:00
Evangel 67abcb10ba Added mName to aiScene. Primarily to provide access to the "name" member of glTF2 scenes. 2020-11-22 15:33:31 +10:00
Kim Kulling d10bf9a0d3
Merge branch 'master' into master 2020-11-18 21:30:58 +01:00
Inho Lee e3083c21f0 glTF2: import correct animation values for CUBICSPLINE
CUBICSPLINE interpolation has tangent values with the animation data.
Current import don't care this interpolation type but it will help not
to fetch tangent values instead of animation data.

Note: Assimp cannot support interpolation types yet.
2020-11-17 17:21:07 +01:00
Kim Kulling c4ba5eeeea
Merge branch 'master' into issue_3500 2020-11-16 21:52:14 +01:00
Jean-François Verdon 09ca11d063 Fixing issue 3500, invalid outer cone angle readed from gltf2 file on machines which defines M_PI as a double value 2020-11-16 09:19:13 +01:00
Inho Lee 8845d7eed3 Prevent to generate redundant morph targets for glTF2 2020-11-11 20:49:22 +01:00
Malcolm Tyrrell 0f246edb97 Prevent GetValue from corrupting memory 2020-11-06 13:43:16 +00:00
Malcolm Tyrrell 34e3e6293a Style 2020-11-06 09:57:48 +00:00
Malcolm Tyrrell 0af05e7a60 Better message 2020-11-05 15:10:52 +00:00
Malcolm Tyrrell 01b2088dd3 A missing bufferview was causing a crash. 2020-11-05 15:02:41 +00:00
Max Vollmer 4006bb71f4 Fixes for crashes in GLTF2 Importer 2020-10-23 12:01:43 +01:00
Inho Lee ad7f8910e9 Rollback the method to handle empty bones for GLTF2
A patch made the assimp to ignore empty bones.
However, some assets can have bones which don't have weights
but are connected to other bones.
2020-10-16 17:09:17 +02:00
Kim Kulling c0e58c1895
Merge branch 'master' into gltfBufferViewSizeFix 2020-09-22 20:02:16 +02:00
Max Vollmer (Microsoft Havok) 9c1edaee96
Merge branch 'master' into gltfBufferViewSizeFix 2020-09-16 10:08:47 +01:00
Kim Kulling 9e2c4e0cf4
Merge branch 'master' into rbsheth_hunter_rapidjson 2020-09-14 09:00:11 +02:00
Max Vollmer 615ffdf93f What: Throw instead of assert when input file is invalid.
Why: Assimp shouldn't crash on invalid files. Asserts are disabled on Release builds.
2020-09-10 10:47:58 +01:00
Rahul Sheth 59c8b4ed84 Move RapidJSON definitions to CMake 2020-08-27 16:51:06 -04:00
Malcolm Tyrrell 0f6127e90e No need to build strings. 2020-08-18 18:21:20 +01:00
Malcolm Tyrrell b7c789da67 Stop concatenating std::strings. Use formatter. 2020-08-18 17:35:08 +01:00
Rahul Sheth ad18e365e5 Fixing more warnings 2020-07-24 16:33:36 -04:00
Kim Kulling c7a9ef30cc
Merge branch 'master' into fix-mingw-priumax 2020-07-24 11:14:15 +02:00
Kim Kulling 0f442b1ff2
Merge branch 'master' into gltfIndexOutOfRangeFix 2020-07-23 11:27:34 +02:00
Kim Kulling b2e53783de
Merge branch 'master' into fix-mingw-priumax 2020-07-17 12:07:46 +02:00
Kim Kulling df8792d24b
Merge branch 'master' into gltf1_gltf2_split 2020-07-16 10:45:55 +02:00
Malcolm Tyrrell 04df5f8b1e Don't use make_unique 2020-07-15 15:47:25 +01:00
Malcolm Tyrrell e1bab44e19 Exception safety 2020-07-15 15:02:27 +01:00
Malcolm Tyrrell 37e1fb9cd7 Fix message 2020-07-15 14:19:13 +01:00
Malcolm Tyrrell f3170a96ba Ensure data does not depend on faces we may not have created. 2020-07-15 12:36:48 +01:00
Malcolm Tyrrell fff6396e3c Rename to avoid overloading problems. 2020-07-15 12:22:28 +01:00
Malcolm Tyrrell 212903e935 Unit test for all indices out of range, and fix. 2020-07-15 12:19:00 +01:00
Malcolm Tyrrell c0d978786e Fix warning 2020-07-15 09:12:52 +01:00
Malcolm Tyrrell a56134ba33 Drop faces when indices are out of range. 2020-07-15 09:05:09 +01:00
awr1 3bf6963d20 Use a better divider for import error 2020-07-14 21:34:30 -05:00
awr1 93d567e3b1 Fix sprintf format string 2020-07-14 21:32:22 -05:00
awr1 700d8e6614 Fix MinGW builds (issues related to pragmas and format strings) 2020-07-14 21:19:07 -05:00
Kim Kulling eaac92830a Merge branch 'master' of https://github.com/LoicFr/assimp into LoicFr-master 2020-07-12 12:05:34 +02:00
Kim Kulling b1dd77fbbc
Merge branch 'master' into gltf2_sparseAccessor_export 2020-07-11 22:57:31 +02:00
Max Vollmer abf43eaf74 * Added ASSIMP_BUILD_NO_GLTF1_IMPORTER, ASSIMP_BUILD_NO_GLTF2_IMPORTER, ASSIMP_BUILD_NO_GLTF1_EXPORTER, and ASSIMP_BUILD_NO_GLTF2_EXPORTER to allow disabling GLTF1 and GLTF2 independently.
* ASSIMP_BUILD_NO_GLTF_IMPORTER and ASSIMP_BUILD_NO_GLTF_EXPORTER remain with same behavior as before
2020-07-05 19:22:31 +01:00
Yingying Wang 97085c1c05 update sync 2020-06-30 11:48:37 -07:00
Yingying Wang 3f2e5518eb update sync 2020-06-30 11:29:08 -07:00
Evangel 6d85280c8d Added bool, removed unused debug parameter 2020-06-27 12:53:26 +10:00
Evangel f6b4370f6a Added arbitrary recursive metadata to allow for glTF2's extensions to be properly represented.
Primary changes are to include/assimp/metadata.h, adding in the aiMetadata GetAiType function,
adding the operator= to allow an aiMetadata type to be assigned, adding a check for the
AI_AIMETADATA type flag as it can't be trivially memcpy'd.

operator= is implemented with a by-value argument as then the copy is made by the copy
constructor and we can just swap everything out and let the destructor handle the mess.

Implemented parsing of the "extensions" flag on all glTF2 Nodes. Doesn't use the ReadValue
helper function on numbers as it did not seem to fill out the Nullable structure properly.
2020-06-26 14:28:41 +10:00
Kim Kulling 31b8d4710f
Merge branch 'master' into issue_3165 2020-06-15 20:32:00 +02:00
Kim Kulling 15f11aec93
Merge branch 'master' into gltf2_targetNames_export 2020-06-14 09:43:09 +02:00
kimkulling f938a6b744 fix leak: just ignore broken texture coordinates. 2020-06-12 14:52:02 +02:00
kimkulling ad62e6e863 fix unittest check - cannot work, just crash shall not occurr any more. 2020-06-12 12:29:51 +02:00
ywang e65434bf82 extra callback 2020-06-11 17:37:06 -07:00
ywang f57e7221c0 temp 2020-06-10 13:23:29 -07:00
Kim Kulling ffaa634c48
Merge branch 'master' into issue_3165 2020-06-09 10:48:27 +02:00
Kim Kulling 620bebb999
diable warning only for gcc 8.0 or greater 2020-06-09 10:14:57 +02:00
Paul Arden 9e46f9751f Check for invalid texture coordinate accessor. Fixes #3269. 2020-06-09 15:49:38 +10:00
Yingying Wang 8fed101432 avoid all zero 2020-06-08 16:18:11 -07:00
Yingying Wang f18f1a35f6 accommodate linux build 2020-06-08 14:49:50 -07:00
Yingying Wang 2065512470 remove comments 2020-06-08 14:41:53 -07:00
Yingying Wang 12dc736d94 Merge branch 'master' of https://github.com/thomasbiang/assimp into gltf2_sparseAccessor_export 2020-06-08 14:32:23 -07:00
Alec 2c0df39ef3 Added rapidjson define to avoid warnings in c++17 2020-06-06 14:33:41 +02:00
Yingying Wang 4e34853ac7 gltf2 export target names for blendshapes 2020-06-05 12:17:27 -07:00
Kim Kulling 6d04e16c7e
Merge branch 'master' into issue_3165 2020-05-28 21:51:58 +02:00
kimkulling d40a3026db closes https://github.com/assimp/assimp/issues/3165: fix gcc build. 2020-05-28 21:02:13 +02:00
Yingying Wang 98767cbb08 pull master 2020-05-27 10:23:28 -07:00
Kim Kulling 78c9ac2889
Merge branch 'master' into gltf2_sparseAccessor_import 2020-05-25 16:11:01 +02:00
Kim Kulling ecfca1d5c5
Merge branch 'master' into verboseLogging 2020-05-21 18:30:52 +02:00
Yingying Wang 50f0a86798 conditional export 2020-05-19 16:10:41 -07:00
Yingying Wang c10e409a5d merge 2020-05-18 12:16:45 -07:00
Yingying Wang 193deb3441 cleanup 2020-05-18 12:01:09 -07:00
Yingying Wang e39c632809 cleanup 2020-05-18 11:50:51 -07:00
Yingying Wang 0897c4c7be merge 2020-05-18 11:31:44 -07:00
Yingying Wang 02cbd36271 pull master 2020-05-18 11:15:18 -07:00
Kim Kulling 2438e1b52e
Merge branch 'master' into gltf2_fix_skin_recursion 2020-05-18 09:05:28 +02:00
Kim Kulling 4b0a3305b1
Merge branch 'master' into master 2020-05-17 13:54:10 +02:00
Yingying Wang b8e39b58d1 clean up 2020-05-15 12:32:58 -07:00
Yingying Wang f6720271cb sparce accessor exporter 2020-05-15 12:20:31 -07:00
Malcolm Tyrrell 90cdbd9d9a Fix ups 2020-05-15 17:46:50 +01:00
Malcolm Tyrrell 2ffd1cb8db nits 2020-05-15 17:22:15 +01:00
Malcolm Tyrrell bcca3a0d79 No need for bespoke macros 2020-05-15 17:22:02 +01:00
Malcolm Tyrrell 6be0ce1ec9 Initial pass at adding logging 2020-05-15 17:21:45 +01:00
Matias Kangasjärvelä 7a16a7a7e4 Fix infinite recursion in gltf2 skin parsing
Previously parsing a node caused the skin that was attached to it
to be parsed, which caused the skins node joints to be parsed,
which could cause the skin to be re-parsed leading to infinite or
at the very least exponential recursion.

The fix is to just get a reference to a temporarily uninitialized
skin as they were being parsed after the scene graph just to be safe
anyway. This way we avoid the recursion problem and all the references
will be valid in the end.
2020-05-15 16:48:41 +03:00
kimkulling 246ec2b0dc Merge branch 'migenius-fix-ortho' of https://github.com/migenius/assimp into migenius-migenius-fix-ortho 2020-05-15 13:37:03 +02:00
kimkulling a6b5abd698 Merge branch 'master' of https://github.com/zyndor/assimp into zyndor-master 2020-05-15 08:51:46 +02:00
Yingying Wang e9b67cdb89 gltf2 import sparse accessor 2020-05-11 14:34:35 -07:00
Jeremy Cytryn c3a21666da Make gltf2 export normal normalization safe
This avoids introducing NaNs e.g. when the input mesh has 0-length normals
2020-05-11 12:02:38 -07:00
Jeremy Cytryn c5a9fbd47f Gracefully handle NaNs and Infs in gltf2 accessor bound computation 2020-05-11 12:02:38 -07:00
Jeremy Cytryn aef4ecada5 Fail gltf/gltf2 export whenever invalid / incomplete JSON is generated
This can happen currently for example if NaNs are introduced in accessor bounds as rapidjson cannot write NaN/inf floats (see subsequent commit for fix there) and will halt writing to buffer at this point.  Fix here ensures that whenever anything like this happens we throw an exception so this ends up as a registered export failure case, rather than silently exporting the incomplete JSON
2020-05-11 12:02:38 -07:00
Yingying Wang 60e8146b9f fix wrong target idx when importing 2020-05-05 12:51:40 -07:00
kkulling 4e16716924 Merge branch 'file-formatting' of https://github.com/aaronfranke/assimp into aaronfranke-file-formatting 2020-05-05 10:17:52 +02:00
Kim Kulling f8e6512a63 Move format importer and exporter into its won folder. 2020-05-02 15:14:38 +02:00