Commit Graph

127 Commits (07e22fd3fc1a9939e4ed05cf0ba1a0ef32197dbb)

Author SHA1 Message Date
Joe Schutte 640698ba57 Fix compile error that clang caught. 2018-09-03 13:22:46 -07:00
Joe Schutte 78fe5e7f04 Fix expensive memory allocation and memory copying occurring in obj files with a large number of meshes. 2018-09-03 11:33:56 -07:00
Jeka Vlasov 102486005d Fix memory leak on throw 2018-08-15 03:40:39 +03:00
Jeka Vlasov 2b15586e6b Replace memcpy_s with memcpy to fix build with gcc 4.8 2018-08-15 01:22:28 +03:00
Jeka Vlasov d25083dba9 Add point cloud support for OBJ importer 2018-08-13 00:18:12 +03:00
Max Vollmer 52c017b595 Added check to BaseImporter::SearchFileHeaderForToken making sure that a detected token is not in fact just a fraction of a longer token. Microsoft exported binary gltf files were detected as OBJ, because the "gltf " in the string "Microsoft GLTF Exporter 2.4.1.7" was detected as the token "f ". I added a new bool parameter to the method enabling this check. It's default false, and only ObjFileImporter sets it to true, so no other code should be affected. 2018-06-25 12:05:37 +02:00
Kim Kulling ce11aa51f5 add win32-based make script. 2018-05-07 00:07:41 +02:00
kimkulling 30c20eb5fc INtroduce new log macros. 2018-04-26 14:10:18 +02:00
Kim Kulling af3bba1572 fix review findings. 2018-03-20 23:38:08 +01:00
Kim Kulling b049933d2f update license dates. 2018-01-28 19:42:05 +01:00
BuildTools 66171de915 Successful lib build, unit testing still WIP 2018-01-05 16:18:33 -08:00
Alexandre Avenel 20ef807982 Remove assertion in ObjFileImporter
This assertion is already handled by an exception, and could lead to a
crash when parsing an ill-formed OBJ file.
2017-12-29 17:56:30 +01:00
Faule Socke 4a65e76ca7 Fix buffer overflow in obj loader
The overflow-checking code in ObjFileImporter::createVertexArray is at
the wrong position, allowing buffer overflows in preceding code.

This fix moves the code to the right spot.

An actual overflow can be caused by usign some more bugs and weird
behaviours and injecting a malformed line statement into the object
file, containing only one index. Such a malformed file could for
example look like:

o 1

v 0 0 0
v 1 1 1
v 2 2 2

l 1
f 1 2 3

Because the code in ObjFileImporter::createTopology incorrectly handles
line-type faces containing only one index (in line 364), it
underestimates the number of required indices and therefore causes the
buffer allocated in line 421 to be too small.

I believe, the correct fix for this would be in the parser and
rejecting such faces early. However the overflow check was misplaced
anyway.

If you can't reproduce a crash, just insert some more "l 1" lines
before the "f 1 2 3" line until it crashes. The behaviour of heap buffer
overflows strongly depends on memory layout and allocation history.
2017-12-23 17:57:48 +01:00
Turo Lamminen c44522d4db ObjImporter: Fix possible memory leak 2017-12-19 19:38:38 +02:00
Turo Lamminen 65ffeaa81e ObjImporter: Use unique_ptr 2017-12-19 18:24:03 +02:00
Kim Kulling a2b8d66a86 Update license info. 2017-05-09 19:57:36 +02:00
Tyson Grant Nottingham 8445db2cd9 Set UVW index material properties for OBJ files. 2017-04-21 01:09:26 -07:00
Kim Kulling bb7f387bcf Merge branch 'master' of https://github.com/assimp/assimp 2017-03-11 22:13:48 +01:00
Antoine Bolvy 5dd1bb9d6c Export DefaultIOSystem and move it with DefaultIOStream to include/ instead of code/ 2017-02-28 11:44:04 +09:00
Kim Kulling ef540f46a3 Remove unused headers. 2017-02-22 17:20:26 +01:00
Henryk Blasinski 17cae8ac5a Added support for parameters Ni and Tf in OBJ/MTL file format. 2017-01-12 17:11:17 -08:00
Giuseppe Barbieri b1d5390413 Update ObjFileImporter.cpp 2016-12-09 19:31:07 +01:00
Jared Mulconry 98e7eb476d Merge branch 'master' of https://github.com/assimp/assimp into implementation_warning_fix
# Conflicts:
#	code/ObjFileImporter.cpp
2016-11-27 13:00:33 +11:00
John Senneker 1541db01cc Remove scaling of specular exponent in OBJFileImporter.cpp 2016-11-25 10:56:11 -05:00
Albin Bernhardsson 3b49dfe93e Comment out unused variables 2016-11-24 14:10:24 +01:00
Jared Mulconry 0c13322089 Fixed build warnings on MSVC14 x64 in the Obj format sources. 2016-11-20 12:29:26 +11:00
Kim Kulling ae956044aa ObjImporter: remove unnecessary allocations of std::vector in obj-specific
face.
2016-11-09 20:09:45 +01:00
Kim Kulling 33e370a8b7 Obj-Stream-Handling: fix readin of linewise import. 2016-10-21 21:14:35 +02:00
Kim Kulling 905e48a35c Buffered stream API for big files: add next try of a prototype.^ 2016-10-11 12:29:40 +02:00
Kim Kulling ad4d1f717f Obj-Import: finish first prototype of IOStreamBuffer. 2016-10-10 10:18:14 +02:00
Kim Kulling 0bae2bbfa7 Obj-Importer: start new streaming handling. 2016-10-07 09:19:10 +02:00
Kim Kulling 0f2cea7ba6 Blender: revert fix for suspicious crash in blender on windows. 2016-09-06 10:42:02 +02:00
Kim Kulling 243df452a4 GeometryBuilder: fix update of vertices. 2016-08-25 18:20:52 +02:00
Roy Shilkrot 7d98643bcf adding support for per-vertex colors. 2016-06-27 20:08:22 -04:00
mensinda 5dacda0a08 replaced boost smart pointers with c++11 smart pointers 2016-04-05 23:23:53 +02:00
Robert Liebo abb3e6b854 [VCS-1030] fallback for non-found .mtl file: try file name of original obj with just the file extension replaced by "mtl" 2016-03-22 18:38:28 +01:00
Thiago Goulart 3c9e57fd73 Fix memory leak in OBJ loader when a mesh has no faces. 2016-03-04 03:40:47 -08:00
Kim Kulling 1550191256 Closes https://github.com/assimp/assimp/issues/777: fix invalid skipping
of line during face defintion parsing.
2016-02-08 18:07:00 +01:00
Kim Kulling 37a3976b30 Revert "Fix issue: OBJ import takes forever (#759) (attempt 2)" 2016-02-07 20:03:24 +01:00
Andrew Parlane 109f6feb6e ObjFileParser: Moved the parsing of line continuations (backslashes) to the parsing code.
Rather than removing all backslashes followed by newlines from the buffer,
and then parsing it. Handle removing the backslashes as we go. This means
we don't need to erase the backslashes from the buffer (which is O(n))
instead we just skip those characters as we parse the buffer line by line.

This time I've fixed the order of evaluation bug in the call to getFace().
2016-01-25 20:44:31 -04:00
Andrew Parlane 1632f1fbb9 ObjImporter: Added better progress reporting during file import.
There are two stages to this:
1) Processing '\'s - this accounts for 1/3rd of the file import progress.
2) Parsing the file data - this accounts for the other 2/3rds.
2016-01-11 12:21:24 -04:00
Kim Kulling 1191d03405 Update license info. 2016-01-01 21:07:24 +01:00
Łukasz Twarduś 3274bcf8d6 Properly build path to the mtl file when loading loading obj 2015-10-25 20:04:50 +01:00
Francesco Guastella 2750f8da24 Added support for reflection maps for OBJ files 2015-10-15 15:46:35 +02:00
Kim Kulling e4510c26ba Obj-Importer: fix https://github.com/assimp/assimp/issues/641 2015-08-30 15:21:53 +02:00
Turo Lamminen 0b0ba2ec4d Refactor logic which checks for too large allocations
It's now easier to change the limit
2015-08-14 11:53:16 +03:00
Turo Lamminen 5575a54466 Add various checks to avoid either too large or zero-sized memory allocations 2015-08-14 11:53:16 +03:00
Kim Kulling 5a207dbb19 Merge branch 'master' of https://github.com/assimp/assimp 2015-07-10 01:21:57 +02:00
Kim Kulling 14a849b398 Obj-loader: change include brackets. 2015-07-10 01:21:10 +02:00
Kim Kulling e138a02dd5 Obj: fix issue 121 - set group names as the mesh names. 2015-07-09 20:15:44 +02:00