Commit Graph

6341 Commits (3dd08cdd6066b956496fa99f0a0ba3dea2214b89)

Author SHA1 Message Date
Kim Kulling 2f7882cb8d
Update: Small code cleanup 2023-03-10 08:49:58 +01:00
Kim Kulling 63dae0a7f2
Fix: Add security asserts. 2023-03-10 08:48:11 +01:00
Kim Kulling c82a6d05b0
Code cleanup 2023-03-10 08:43:12 +01:00
Florian Born dfd70b5c10 GLTF Importer: Build a list of the actual vertices so it works well with shared attribute lists 2023-03-09 19:06:58 +01:00
Turo Lamminen f3767a4eb2 Use unordered_map for subdivision process edge map 2023-03-09 14:33:43 +02:00
Kim Kulling 05249353d4
Merge branch 'master' into UseNewMetaDataTypesInFBXConverter 2023-03-08 10:53:00 +01:00
Florian Born 069b3ecdf8 After Kim's addition to meta data types, use it in the FBX converter 2023-03-07 17:44:48 +01:00
Kim Kulling 44c2785663
Make debug message more professional. 2023-03-07 17:01:08 +01:00
Urs Hanselmann 2efd48dee2 disable another debug print message 2023-03-04 14:53:48 +01:00
Jackie9527 424f53b4d6 bugfix remove duplicated data.
Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>
2023-03-04 16:25:56 +08:00
Jackie9527 a0c29202be Add build options to fix issues with clang 15.
Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>
2023-03-02 21:12:35 +08:00
Jackie9527 f7f54036f2 bugfix the three vertices are collinear when converting a polygon to a triangle.
Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>
2023-03-01 14:26:04 +08:00
Jackie9527 437958ef91 bugfix fails to check if point in triangle.
Signed-off-by: Jackie9527 <80555200+Jackie9527@users.noreply.github.com>
2023-02-25 19:40:24 +08:00
Turo Lamminen e8f0eb930d Fix loading binary LWO files 2023-02-24 14:40:27 +02:00
Turo Lamminen 3bdc43a216 Add debug logging to LWO node graph generation 2023-02-24 14:40:27 +02:00
Turo Lamminen 657c1d8ad0 Use unique_ptr to store pivot nodes until moved to mapPivot 2023-02-24 14:40:23 +02:00
Turo Lamminen 3bdfecb0ed Destroy mapPivot nodes as we go 2023-02-24 13:26:34 +02:00
Turo Lamminen be28f0949b Whitespace 2023-02-24 13:20:40 +02:00
Turo Lamminen 53c6cc0966 Add a scope so mapPivot is destroyed when no longer used 2023-02-24 13:19:38 +02:00
Turo Lamminen 92f7c50c91 Remove dead code 2023-02-24 13:18:04 +02:00
Turo Lamminen 28d4e394c0 Use std::unique_ptr a bit 2023-02-24 13:17:32 +02:00
Kim Kulling eb73464055
Merge branch 'master' into fix-fbx-document-duplicate-id-leak 2023-02-23 10:39:52 +01:00
Kim Kulling 2c3d52a5a1
Merge branch 'master' into master 2023-02-23 10:15:07 +01:00
Kim Kulling c8d50dc83f
Merge branch 'master' into patch-2 2023-02-22 21:33:20 +01:00
Johan Mattsson fa4273ee1f
Fix index out of bounds 2023-02-20 19:56:57 +01:00
Johan Mattsson f8132bf17c
Fix index out of bounds 2023-02-20 19:50:06 +01:00
Aaron Jacobs 53e5f19b14 Use C++ style casts 2023-02-17 11:20:00 -08:00
Aaron Jacobs e4386d3013 Fix implicit conversion errors on macOS 2023-02-16 15:21:43 -08:00
Anton Vaneev 2cd3da4831
Fix a leak in FBXDocument when duplicate object IDs are found
When a duplicate ID is encountered, existing LazyObject is overwritten. Previously allocated instance leaks.

This change deletes the previously allocated instance before overwriting the pointer.
2023-02-16 11:21:29 +01:00
Kim Kulling 3585dd577d
Fix: Add default parameter to constructor/destructor. 2023-02-16 11:19:23 +01:00
Kim Kulling 7877dab43a
Fix: Fix typo 2023-02-16 10:59:36 +01:00
Kim Kulling bc8a122d88
Review finding: Use constexpr instead of macro 2023-02-16 09:28:35 +01:00
Kim Kulling b170370e5c Fix: Fix memleak when exiting method by exception 2023-02-08 21:29:54 +01:00
sunjc fb146b7d39 fix typo, use a macro to avoid magic numbers. 2023-02-08 10:13:48 +08:00
sunjc 647f1e47fa fix regression in join vertices post process. 2023-02-07 20:05:39 +08:00
Kim Kulling 839cd35a54
Merge branch 'master' into master 2023-02-04 19:08:39 +01:00
Matthias Möller db72c6ee38 When "getNextBlock" was called after "getNextLine", the pointer could still on the newline.
The pointer to a newline could not advance enough, when the line ended with \r\n. The resulting buffer was correct, as the buffer range went from <start> until \r, but that the pointer increased by just 1 could lead to the problem that the next pointer points at \n, which is still part of the newline and therefore, "getNextBlock" got 1 byte too much.

Refs Issue #4871
2023-02-04 15:16:22 +01:00
Robert Reif 88ef9eecc1 ACLoader: add support for reading more than one texture per object 2023-02-03 20:29:56 -05:00
Turo Lamminen 8d405d60d9 Fix Terragen loader
Fixes e8d2b84017
2023-02-03 11:44:27 +02:00
PencilAmazing feb3e9ff7a
Merge branch 'master' into PLYcomments#4866 2023-02-01 13:05:55 -05:00
Kim Kulling 5caae1a86d
Merge branch 'master' into JoinVerticesProcessUsedVerticesMask 2023-01-31 21:03:32 +01:00
Kim Kulling d6b8d61066
Merge branch 'master' into JoinVerticesProcessUsedVerticesMask 2023-01-30 20:58:21 +01:00
krishty df28e7830f
Merge branch 'master' into fix-build-without-armaturepopulate-post-process 2023-01-29 01:14:33 +01:00
PencilAmazing 6dc12f57a2
Merge branch 'master' into PLYcomments#4866 2023-01-23 21:50:26 -05:00
Kim Kulling 57054415cf
Merge branch 'master' into fixLHNormals 2023-01-24 00:04:49 +01:00
PencilAmazing 4d733d80f1
Merge branch 'master' into PLYcomments#4866 2023-01-23 15:56:04 -05:00
Kim Kulling b31c04e37c
Merge branch 'master' into fix-msvc-emplace-warnings 2023-01-23 21:37:41 +01:00
Kim Kulling f830d7998e
Merge branch 'master' into clean-up-ctors-dtors 2023-01-23 21:21:34 +01:00
PencilAmazing cb8320945d Fix issue #4866 by continuing to resetting read loop after hitting a comment 2023-01-23 14:18:50 -05:00
Kim Kulling 036f2b3771
Merge branch 'master' into remove-stray-semicolon 2023-01-23 20:06:43 +01:00
Kim Kulling 3e20502e0f
Merge branch 'master' into fix_gltf2_camera_fov 2023-01-23 19:14:42 +01:00
Kim Kulling 3bd2f788f6
Merge branch 'master' into replace-variables-with-literals 2023-01-23 18:55:20 +01:00
AdamCichocki 5ed09b7ab6 usedVertexIndicesMask is now based on vector<boo> instead of vector<uint> 2023-01-23 16:39:06 +01:00
AdamCichocki 72b178b9fc Optimized usedVertexIndices by using bitmask instead of unordered_set 2023-01-23 14:51:02 +01:00
Kim Kulling f2f967b8ba
Merge branch 'master' into remove-useless-virtual 2023-01-22 20:25:45 +01:00
Kim Kulling f8bc8293ce
Update FBXMeshGeometry.h 2023-01-22 16:48:45 +01:00
Kim Kulling 303c30668f
Merge branch 'master' into trim-whitespace 2023-01-22 16:37:43 +01:00
Kim Kulling 5ed01bcfa3
Ensure initializer exists
- Fixing a Codaxy finding.
2023-01-20 20:00:36 +01:00
Kim Kulling 81cf1369db
Set correct number of bones in mesh instance 2023-01-20 19:20:06 +01:00
Kim Kulling ab0a119626
Update LimitBoneWeightsProcess.cpp
- Removing empty bones only if AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES is enabled.
- closes https://github.com/assimp/assimp/issues/4840
2023-01-20 19:14:04 +01:00
lsnoel 8d1256f472 Comments about winding order fix for gen normals 2023-01-20 14:55:06 +00:00
Kim Kulling d331a7e5d4
Merge branch 'master' into fix-build-without-armaturepopulate-post-process 2023-01-20 13:52:13 +01:00
lsnoel eb5d3c51e8 Correctly consider aiProcess_FlipWindingOrder AND aiProcess_MakeLeftHanded when generating normals 2023-01-19 16:46:29 +00:00
Krishty 72f360710a Fix MSVC Warnings With “emplace_back()”
Several places in the code call `std::vector<aiVector3D>.emplace_back(0, 0, 0)`. The constructor of `aiVector3D` actually expects arguments of the type `ai_real`, (alias of `float` if compiling without `ASSIMP_DOUBLE_PRECISION`) but the literal `0` is of type `int`.

`emplace_back()` does support promotion, but `int` to `float` is a potentially lossy conversion. tl;dr: On warning level 4, MSVC spits out a very deeply nested `warning C4244: 'argument': conversion from '_Ty' to 'TReal', possible loss of data with _Ty=int and TReal=ai_real`.
2023-01-18 00:08:38 +01:00
shimaowo 20acfeaf97
Merge branch 'master' into fix_gltf2_camera_fov 2023-01-17 14:39:54 -08:00
shimaowo b298b79a46 add missing parens 2023-01-17 10:53:41 -08:00
Martin Mory 7f6e96747b
Merge branch 'master' into f-FixWhitespaceBetweenTagAndNum 2023-01-17 13:32:39 +01:00
Martin Mory a89d5c7cea
Merge branch 'master' into f-FixWhitespaceBetweenTagAndNum 2023-01-17 12:10:46 +01:00
Kim Kulling e9f95e5ab6
Merge branch 'master' into fix-build-with-m3d-import-only 2023-01-17 11:22:00 +01:00
Kim Kulling 19dec716d3
Merge branch 'master' into fixJoinVerticesProcess 2023-01-17 09:11:43 +01:00
Krishty 36305cf987 Tidy Up Constructors and Destructors
This commit does not add or remove c’tors or d’tors, so it is *not* ABI-breaking.

If a c’tor/d’tor does nothing else than the default behavior, this commit replaces it with “= default”.

If an initializer list entry does nothing else than the default behavior, this commit removes it. First and foremost, remove default c’tor calls of base classes (always called by the compiler if no other base c’tor is explicitly called) and c’tor calls of members with complex types (e.g. “std::vector”).

In a few instances, user-defined copy c’tors / move c’tors / assignment operators / move assignment operators were replaced with “= default”, too. I only did this if I had a clear understanding of what’s going on.
2023-01-16 21:47:11 +01:00
Krishty 43a062a5d7 Remove Stray Semicolon 2023-01-16 20:45:00 +01:00
shimaowo 39cbef1e21 Fix: fix incorrect math for calculating the horizontal FOV of a perspective camera in GLTF2 import #4435 2023-01-16 11:39:13 -08:00
Krishty 3d3e856925 Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
Krishty 793284a766 Fix Build Without ArmaturePopulate Post Process Step
This post process step introduced new attributes into `aiSkeletonBone`. Said attributes are only defined with the process enabled, i.e. when the `ASSIMP_BUILD_NO_ARMATUREPOPULATE_PROCESS` macro has not been defined.

Some code, however, accessed the variables unconditionally, leading to build failures if `ASSIMP_BUILD_NO_ARMATUREPOPULATE_PROCESS` was defined.

This commit adds the missing checks.
2023-01-16 08:42:50 +01:00
Krishty 5cbc00a595 Fix Build With M3D Import Only
`M3DWrapper.h` is designed to omit the definition of `class M3DWrapper` if neither M3D import nor M3D export are compiled.
608bccd9cf touched the corresponding preprocessor checks and introduced a bug:
```
#ifndef ASSIMP_BUILD_NO_M3D_IMPORTER
#if !(ASSIMP_BUILD_NO_EXPORT || ASSIMP_BUILD_NO_M3D_EXPORTER)
class M3DWrapper {
```
When compiling
- with M3D import enabled,
- but with either export generally disabled or M3D export disabled specifically,
These checks evaluate to the wrong result and skip the definition, leading to a build failure in dependent code.
```
#if 1 // import enabled
#if !(1 || 1) // export disabled and M3D export disabled
```
This commit fixes the check to compile the definition if neither import is disabled.
2023-01-16 08:29:49 +01:00
Krishty bad76fd0f1 Replace Variables With Literals 2023-01-16 08:18:36 +01:00
Krishty e5c02e8d45 Remove Useless “virtual”
These functions are already marked “override”, and their neighbors had “virtual” removed as well.
2023-01-16 08:12:24 +01:00
Martin Mory 43c0f8bb3d Remove whitespace between a <v> tag and the first number, otherwise first call to strtoul10() returns 0 and the indices are broken, leading to possible out-of-bound access and memory corruption/crash 2023-01-15 23:03:41 +01:00
Kim Kulling 2d37f49f51
Remove deprecated comment
- closes https://github.com/assimp/assimp/issues/4869
2023-01-15 19:12:24 +01:00
Daniel Rösner 74af523b3e Generalize JoinVerticesProcess for multiple UV and color channels 2023-01-12 13:13:46 +01:00
Kim Kulling b393132b58
Merge branch 'master' into spelling 2023-01-08 17:43:55 +01:00
Kim Kulling 96b071bdb1
Fix: Fix possible division by zero
- closes https://github.com/assimp/assimp/issues/4860
2023-01-04 09:19:37 +01:00
Andy Maloney e893248e7c Fix several spelling mistakes & a comment 2023-01-01 13:31:48 -05:00
Kim Kulling a8e50be781 Refactoring: Move asserthandler header to include 2022-12-23 16:19:39 +01:00
Kim Kulling 376f66a06d
Merge branch 'master' into master 2022-12-16 10:11:56 +01:00
Kim Kulling c3d15a3f51
Fix minor review findings. 2022-12-16 09:03:40 +01:00
Kim Kulling c92b84e38d
Merge branch 'master' into patch-10 2022-12-16 09:00:41 +01:00
Kim Kulling db8ff41679
Update MD5Parser.cpp 2022-12-15 14:06:57 +01:00
Kim Kulling 2612950b7b
Merge branch 'master' into patch-9 2022-12-15 14:05:35 +01:00
sashashura 917352dd8b
Fixes Heap-buffer-overflow READ 1 in Assimp::ObjFileParser::getFace
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49274
2022-12-11 01:54:57 +01:00
Alex 90769ef3e6
Fixes Heap-buffer-overflow READ 1 in Assimp::MD5::MD5Parser::ParseHeader
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49422
When it reaches the `SkipSpacesAndLineEnd`, `in` already points past `bufferEnd` and it leads to out of bounds memory read.
2022-12-11 00:02:09 +00:00
Alex d5294be00b
Fixes Heap-buffer-overflow READ 4 in Assimp::ScenePreprocessor::ProcessMesh
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49797
2022-12-10 01:22:00 +00:00
Umesh Rajesh Ramchandani 2d372b302f Fixed bug when exporting binary FBX
Fixed vector subscript out of range bug when NULL_RECORD is passed to PutString and is actually null
2022-12-08 14:59:25 +01:00
Kim Kulling fec39154ed
Merge branch 'master' into floatwarnings 2022-12-08 14:18:35 +01:00
Kim Kulling 769b47ed0e
Ensure face pointer is not nullptr
- closes https://github.com/assimp/assimp/issues/4831
2022-12-08 09:35:11 +01:00
Kim Kulling 9d57ac9cc5 Fix:Add missing semicolon. 2022-12-05 13:15:42 +01:00
Kim Kulling 81f85a6f93 Avoid undefined-shift in Assimp::ASE::Parser::ParseLV4MeshFace. 2022-12-05 13:07:52 +01:00
Gargaj 9c839f2d9a more fixes 2022-12-03 20:44:57 +01:00
Gargaj 07d4e83f43 fix warnings-as-errors for msvc x64 2022-12-03 20:27:00 +01:00