Commit Graph

211 Commits (df33d33e8f9004adcaa6f3c1ad8e03800dca0c9a)

Author SHA1 Message Date
Aaron Gokaslan ccfb175460 Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
Aaron Gokaslan 97cb1c6b15 Fix perfect fowards 2022-11-07 11:01:16 -05:00
Aaron Gokaslan 02378b5e70 Add one more missing move 2022-11-03 12:36:58 -04:00
Aaron Gokaslan 8da3d277c7 add missing std moves 2022-11-03 12:35:10 -04:00
slinky55 e0fb1674d1 Merge branch 'clang-fix' of github.com:slinky55/assimp into clang-fix 2022-09-30 22:04:11 -04:00
slinky55 38ccb7e6c9 Used sizeof for buffer sizes instead of hardcoding values 2022-09-30 22:03:59 -04:00
slinky55 5f28370f7f
Merge branch 'master' into clang-fix 2022-09-30 21:57:32 -04:00
slinky55 e2e45f7a14 Fixed issue with clang complaining about sprintf being depreciated 2022-09-30 00:34:33 -04:00
Florian Born 7eb9edf0b9 Make FBX parser resilient to missing data streams 2022-09-21 11:45:54 +02:00
Kim Kulling b3c7bdbdd6 Add check for wall switch from cmake 2022-09-17 18:16:42 +02:00
Kim Kulling b2ea018fd5
Use user-define element destructor. 2022-09-11 17:04:58 +02:00
Kim Kulling 7b874983d0
Merge branch 'master' into SmallAllocationFixInFBXLoader 2022-09-08 20:15:52 +02:00
Aaron Gokaslan 411171fa45 Apply some more modernize-use-emplace 2022-09-02 11:20:02 -04:00
Aaron Gokaslan e93fa6699a Manually fix up 100 more instances where it should be defaulted 2022-08-25 12:20:13 -04:00
Aaron Gokaslan 6fa21dcc6e Explicitly default all empty dtors 2022-08-25 11:32:59 -04:00
Aaron Gokaslan 27edb43600 Apply modernize-use-emplace clang-tidy rule 2022-08-23 11:41:49 -04:00
Ville Voutilainen 253f8bfa62 Use unqualified uint32_t everywhere in FBXBinaryTokenizer
The use of qualified std::uint32_t requires including <cstdint> instead
of <stdint.h> on some implementations, and that breaks the build of Qt 6
on GCC 13. Just use the unqualified name everywhere.
2022-08-09 01:54:31 +03:00
Kim Kulling fff74a4ac0
Merge branch 'master' into patch-2 2022-06-21 13:39:23 +02:00
Kim Kulling 5adea2dbcf
Merge branch 'master' into kimkulling/create_skeleton_data_issue_4015 2022-06-11 21:40:44 +02:00
Kim Kulling aaa19903c6 Fix merge conflicts 2022-06-11 18:50:18 +02:00
Matthew Clendening aca02190a7
Merge branch 'master' into fix_FBXConverter_double_precision 2022-06-06 10:01:13 -04:00
Kim Kulling 39a4627519
Merge branch 'master' into kimkulling/create_skeleton_data_issue_4015 2022-06-02 21:47:29 +02:00
nsg 96d2052ed0
Merge branch 'master' into fix_fbx 2022-06-02 02:31:32 +09:00
nsg 681eb3e91e Fix Import a specific FBX model 2022-06-01 17:41:27 +09:00
Gargaj f612865f22 fix msvc warnings-as-errors 2022-05-29 01:35:48 +02:00
Matthew Clendening 26233f1b77 Fixed FBXConverter build error (warning as error) when ASSIMP_DOUBLE_PRECISION is defined 2022-05-26 15:06:23 -04:00
Kim Kulling ed3e218550 Bugfix: fix not initialized member attributes 2022-05-21 19:08:43 +02:00
tanolino 002d6dc016
Inifinite loop on bad import files
I had an import file that caused an infinite loop. I don't exactly know how this algorithm works here but maybe we should change it more.
Probably calculate the amount of steps and chop linear.
2022-05-18 15:22:11 +02:00
Kim Kulling 64a6968254 Add skeleton generation to aiScene 2022-04-28 21:43:02 +02:00
Kim Kulling 0afb594f40 Generate container for skeleton during FBX-Import 2022-04-28 21:19:10 +02:00
Kim Kulling 6cdd1d3cc6 Generate container for skeleton during FBX-Import 2022-04-28 21:12:26 +02:00
Florian Born a415f33fb5 merge failure, parts in this file were missing 2022-04-21 16:09:28 +02:00
Florian Born d3646c3118 Proper destruction of individual objects 2022-04-20 16:11:09 +02:00
Florian Born 2b3c49cb93 All allocation changes 2022-04-20 12:33:39 +02:00
Kim Kulling 37be87b0bd Some minor findings 2022-04-19 23:37:16 +02:00
Mykhailo418 8a1dc87b4c remove absolute_transform in FBXConverter 2022-04-18 18:10:59 +03:00
Mykhailo418 e3def37f42 assing absolute_transform to matrix 2022-04-18 17:26:37 +03:00
Mykhailo418 863e3e0ccb FbxConverter, bone mOffsetMatrix update 2022-04-18 16:02:17 +03:00
Kim Kulling e5747dad9b First concepts 2022-04-05 20:07:22 +02:00
Filip Lundgren 4175198d04
Detect Roughness factor exported by Blender
Matches the logic used by Blender's own FBX exporter / importer.
2022-03-26 22:33:10 +01:00
kimkulling 26598dc6bd Forget to save file. 2022-03-09 11:00:05 +01:00
kimkulling 76e10b96fc Fix missing members and do some small refactorings. 2022-03-09 10:51:37 +01:00
sola c73ff82fc4 FBXConvert::ConvertMeshMultiMaterial: allocate memory using variable count_vertices 2022-02-25 19:58:44 +08:00
Kim Kulling 76a7614c4b Adapt ai_epsilon to code 2022-02-16 20:07:27 +01:00
Kim Kulling 067c5d9ec4 Refactoring: add usage of ai_epsilon to fbx. 2022-02-16 00:17:26 +01:00
Kim Kulling c718500c55 Fix last review findings and finish windows bits 2022-02-14 20:25:18 +01:00
Kim Kulling 52b6c4f7c0 Fix broken importer and add some review findings2 2022-02-13 18:44:22 +01:00
Kim Kulling 3e09d462fa Fix compression for fbx 2022-02-12 09:25:45 +01:00
Kim Kulling 27bcddfb1a Migrate more importers to compression class 2022-02-08 20:43:47 +01:00
Kim Kulling 05746acb07 Merge branch 'new-file-detection' of https://github.com/krishty/assimp into krishty-new-file-detection 2022-01-16 20:41:24 +01:00
Kim Kulling 50c7301a38 Update copyrights 2022-01-10 21:13:43 +01:00
Vyacheslav.Vanin 1afe7e6255 fix fbx import metalness
Can't import metalness textures in fbx importer
2021-12-16 12:09:06 +03:00
Inho Lee c2297e9199 Revert "FBXConverter : Fix timescales of FBX animations"
The previous patch was made by misunderstanding about mTime.
It is not real time value, but time ticks.

This reverts commit b8bf1eac04.
2021-12-09 10:57:39 +01:00
Inho Lee 4a37aa2ef8 Interpolate euler rotations for quaternion animations
FBX uses euler rotation but assimp library's base type is
quaternion. When assimp convert FBX some animation information
can be lost.
This patch interpolates euler-angle rotations and insert
additional keyframes for the FBX format.
2021-11-30 12:49:59 +01:00
RichardTea 86a25b62e4 Better aiMesh ABI compatibility with 5.0.1, make smaller
Move new mTextureCoordsNames member to end of struct
Convert to pointer-to-array, saving ~8KB per aiMesh in almost all cases
Add C++ accessor functions for simpler usage
2021-11-09 13:03:06 +00:00
IOhannes m zmölnig 3b8126d26a Fix spelling mistake 2021-10-08 08:48:01 +02:00
krishty 8c84afaff0
Merge branch 'master' into const-tokens 2021-09-15 23:31:00 +02:00
Kim Kulling 18531e3677 Next iteration for c++11 features. 2021-09-13 22:38:20 +02:00
Krishty 5895c0c22c more const in format detection
BaseImporter::SearchFileHeaderForToken() expected a pointer to a non-const token list. This was probably an oversight, as nobody would realistically expect the function to change the list. Furthermore, it prevented token lists from being compiled to read-only memory, in some cases even causing the compiler to generate thread-safe initialization.

The list is now const and all callers declare their token lists static const, thus compiling them to read-only memory.
2021-09-11 23:23:05 +02:00
Kim Kulling bc0a2762df
Merge branch 'master' into master 2021-09-09 09:16:50 +02:00
Max Vollmer (Microsoft Havok) 51f294c587 Fixes issues our internal compliance and code quality tool found:
* Adds nullptr checks and asserts to protect certain code paths
* Fixes wrong integer type in a printf call
* Adds const to const values
* Prevents integer overflow with explicit casts
2021-08-30 14:59:17 +01:00
kirillsurkov 5ca2cbb7ae Fix MinGW build 2021-08-28 20:04:37 +03:00
Kim Kulling eabfc05bbb
Handle empty keys 2021-08-27 10:41:25 +02:00
Kim Kulling f3903e34a4
Merge branch 'master' into master 2021-08-18 07:32:16 +02:00
Max Vollmer (Microsoft Havok) de2f5cf021 Crash fixes 2021-08-13 16:26:42 +01:00
Mykhailo Smoliakov c3fcbfd2c1 Fix issue of incorrect reading of PBR properties such as base and emissive color in FBX 2021-08-11 08:54:34 +03:00
Krishty 758116b083 removed trailing spaces and tabs from source and text
This commit ignores the “contrib” folder in order to prevent merge conflicts in dependencies, should these be updated via git.
2021-07-29 13:28:51 +02:00
Hill Ma aa883eda19 FBX: fix double precision build. 2021-07-15 11:54:55 -07:00
Kim Kulling 01930101c7
Merge branch 'master' into master 2021-06-29 20:45:09 +02:00
Aaron Gokaslan 8e3a159141
Merge branch 'master' into clang-tidy-perf-fixes 2021-06-23 10:10:28 -04:00
Pankaj Tyagi 6170c49155 Fixed:
1. FBX import is unable to read the texture UV rotation angle.
2. FBX export is unable to write the texture UV rotation angle.
2021-06-23 16:49:09 +05:30
Kim Kulling 36815b014b
Update FBXExporter.h 2021-06-22 20:05:16 +02:00
Aaron Gokaslan 94c3abd841 Apply various performance fixes from clang-tidy 2021-06-22 12:27:15 -04:00
Kim Kulling 391d3195df
Merge branch 'master' into fbx-lights-export 2021-06-10 12:27:14 +02:00
Kim Kulling c8510a1a82
Merge branch 'master' into fix-fbx-exporter2 2021-06-03 11:05:07 +02:00
Kim Kulling b59db55b8c
Merge branch 'master' into less-string-bloat 2021-05-26 12:14:08 +02:00
Jean-François Verdon f13515a391 Adding basic support for lights in FBX exporter 2021-05-23 19:12:21 +02:00
Kim Kulling aeaa22cbbd
Merge branch 'master' into UVStreamNames 2021-05-23 14:37:28 +02:00
Kim Kulling ac54fe41e2
Merge branch 'master' into PBRsupport 2021-05-23 13:23:06 +02:00
Jagoon f96e3cde2d Fix transform chain is applied twice 2021-05-23 00:06:05 +09:00
Jagoon 28e34878cb Fix fbx exporter bug if root node contains meshes. 2021-05-22 23:20:34 +09:00
Malcolm Tyrrell 4ec01cfdcd Improve use of logging 2021-05-13 12:05:31 +01:00
Malcolm Tyrrell ad6f300b1d Other LogAux functions 2021-05-13 10:43:28 +01:00
Malcolm Tyrrell 7abfd134b6 LogAux warn 2021-05-13 10:33:16 +01:00
Malcolm Tyrrell 5cd3bdd5c2 No need to distinguish formatting log functions. 2021-05-13 10:25:27 +01:00
Krishty b79b84d34e Merge branch 'master' into new-file-detection 2021-05-05 00:09:42 +02:00
Krishty 0f3e6e2941 replaced std::size() with AI_COUNT_OF for pre-C++20 compilers 2021-05-05 00:08:54 +02:00
Jason C 2925592c64 [assimp] Make sure ctype calls use unsigned char.
Cast to unsigned char as required by C++ (see C++ **[cctype.cyn]** -> ISO C99 section 7.4, [see also](https://en.cppreference.com/w/cpp/string/byte/isspace)).

Addresses https://github.com/assimp/assimp/issues/3867 and then some.
2021-05-04 17:31:13 -04:00
Krishty b57ce004f8 reduced FBX string bloat
The FBX importer used two std::strings where string literals would have been sufficient.
2021-05-04 22:01:01 +02:00
Tom spot Callaway f91b439f79 preserve UV Stream names in FBX files 2021-05-03 13:40:31 -04:00
Tom spot Callaway e7211790fb PBR material support 2021-05-03 13:27:52 -04:00
vfxgordon 9ae3e88f6c
Merge branch 'master' into fbxBlendshapes 2021-05-03 07:40:25 -07:00
Gordon Chapman 64da2a4315 Merge remote-tracking branch 'upstream/master' into fbxBlendshapes 2021-04-26 13:51:22 -07:00
Gordon Chapman a5d0e99548 Fixed error in blendShapeChannel Weighting 2021-04-26 12:19:20 -07:00
Krishty b00de10eb3 Simplified importer search and fixed a few bugs
The search for a matching importer had a few issues, see #3791. There were two different mechanisms to determine whether an importer accepts a specific file extension:
1. `aiImporterDesc::mFileExtensions`, which was forwarded to the UI via `BaseImporter::GetExtensionList()`.
2. `BaseImporter::CanRead()` when called with `checkSig == false`, which determines whether to actually use that importer.
Both were redundant and got out of sync repeatedly. I removed 2. completely and replaced it with 1., thereby syncing UI/import and shortening all `BaseImporter::CanRead()` implementations.

Further bugfixes:
- fixed glTF2 importer throwing exceptions when checking whether it can load a file
- removed `BaseImporter::SimpleExtensionCheck()` because it is no longer used and had a bug with case sensitivity

Since the `checkSig` parameter in `BaseImporter::CanRead()` is now useless, it can be removed completely. I’m not sure if this would break ABI compatiblity, so I’ll submit it with a later pull request.
2021-04-24 00:17:50 +02:00
Krishty f761dc72f4 style fix - initializing and assigning empty std::string properly
std::string s(""); s = ""; calls the copy constructor, which in turn calls strlen(), … assigning a default-constructed string generates fewer instructions and is therefore preferred.

With C++11 uniform initialization, you’d simply write s = { } instead.
2021-04-16 23:43:56 +02:00
Hill Ma 4aa52b3af8 Flip the check on _MSC_VER for using TR1 containers. 2021-04-13 11:15:52 -07:00
Kim Kulling cf4ef04a80
Merge branch 'master' into master 2021-04-07 20:58:40 +02:00
Gordon Chapman 3fd865b4bf Added Blendshape Support to FBX Export 2021-03-24 18:10:03 -07:00
Urs Hanselmann c0c7e6a0de trim uvIndices to fix import of Cheetah3D generated fbx files 2021-03-12 14:48:38 +01:00