Commit Graph

29 Commits (39c662269783fd5934404f1dcc5e51552ecaa981)

Author SHA1 Message Date
Alexander Gessler 75fd29ac19 SceneCombiner: implement proper copying of meta data. This entire module will need to be revamped in future as it is highly likely to cause further regressions as assimp data structures are modified. 2014-06-17 15:18:10 +02:00
Léo Terziman 9b25749536 Fixed bug in merging of materials 2014-02-10 15:11:13 +01:00
Léo Terziman ec3ef0c9d6 Assimp: fixed 3 memory leaks 2014-01-17 11:55:59 +01:00
Léo Terziman bb9288fa26 Improved Q3BSPZipArchive + added material merging 2014-01-17 11:38:01 +01:00
aramis_acg 4dbf539b44 - update license header. Update copyright year and unify naming: our name is 'assimp', not 'ASSIMP'.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1147 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-02-03 03:38:30 +00:00
kimmi 67e8e52a00 Fix a compiler warning.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1102 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-12-27 17:22:47 +00:00
aramis_acg 9d85c8834d - extract MaterialHelper and move all of its members to aiMaterial in /include.
- pull in IOhannes' patch to set the gcc default visibility for all symbols to NO and to mark ASSIMP_API with __attribute__ ((visibility("default"))).
- drop unneeded ASSIMP_API from most internal classes in /code, we just need to keep some exports on Windows to keep AssimpView alive.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1066 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-08-22 20:22:51 +00:00
aramis_acg 36b3695a31 - improve symmetry between Assimp::Importer and Assimp::Exporter.
+ aiCopyScene -- a bit dysfunctional because we will also need getters and setters for all other scene components to avoid running into ownership & heap issues when users modify scenes.
# fix handling of postprocessing during exporting

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1061 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-08-04 08:53:59 +00:00
aramis_acg 665f73861e - move importer and postprocessing step construction chain to separate files to make them available to the exporter part.
+ introduce aiScene::mPrivate. This is a potentially breaking API change. The new member is added at the end of the structure though, so serious regressions are not to be expected.
+ add a mPreprocessing parameter to all Export API calls. Allow exporters to specify further PP steps to be executed prior to handing control to them. The entire export API now operates on a copy of the scene that the user passed in.
- mass refactoring: all constructors of BaseProcess/BaseImporter inherited classes are public now and Importer will perhaps feel a bit sad after having loft all of its friends.
# fix const correctness in SceneCombiner


git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1060 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-08-01 20:58:31 +00:00
aramis_acg 9edc0a9b8e merge with git://github.com/tonttu/assimp.git
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1029 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-06-09 14:29:32 +00:00
aramis_acg 6f30639d7f - refraing from using magic numbers like 0xffffffff all over the repository, rather use UINT_MAX/SIZE_MAX ..
- minor re-formatting and refactoring at some old code spots.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@970 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-04-22 21:29:18 +00:00
aramis_acg 0fc965da91 Rename strtolxxx family of functions, all functions returning unsigned integers now carry an 'u' in their name (this is for compatibility with Irrlicht's fast_atof see http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=243079#243079).
strtol10 -> strtoul10
strtol16 -> strtoul16

strtol8  -> strtoul8
strtol10_64 -> strtoul10_64
strtol_cppstyle -> strtoul_cppstyle
strtol10_s -> strtol10


git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@923 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-03-23 14:26:19 +00:00
aramis_acg 685d2b83c5 Fix error in aiString documentation. MAXLEN includes the terminal NULL. This is unusual, but true.
Fix overflow vulnerability in SceneCombiner. Thanks to Krishty to point it out.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@683 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2010-04-14 21:45:00 +00:00
aramis_acg 7cea2eb497 Change date in license header to 2006-2010. This involves updating quite a few files, sorry.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@661 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2010-04-10 15:30:22 +00:00
aramis_acg df13041f42 Remove randomness from SceneCombiner.
This offers two advantages: firstly, boost::random isn't used by Assimp at all with these changes. Secondly, the results of the IRR/LWS loaders are guaranteed to be identical on each run now. That's crucial of course, I just failed to recognize it in the past.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@559 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2010-02-28 01:28:00 +00:00
aramis_acg 17326515d4 Get rid of warnings on GCC4.4 with -wall
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@541 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2010-02-06 23:52:41 +00:00
aramis_acg 9abcba4bc2 Integrating aiProcess_OptimizeGraph and aiProcess_OptimizeMeshes back into the Assimp core. They're stable enough now.
Moving private members of Assimp::Importer to a pimpl, hopefully solving strange crashes with vc9 debug builds.
Updating assimp_cmd to reflect these changes.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@403 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2009-04-24 20:53:24 +00:00
aramis_acg 84e2c82877 [ 2666245 ] Remove unused vars
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@357 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2009-03-06 12:37:08 +00:00
aramis_acg 4bbc03332b General
- Added format auto-detection to most loaders
  - Simplified BaseImporter::CanRead() with some utility methods
  - improved fast_atof -> no overruns anymore. Fuck you, irrlicht.
  - added assimp_cmd tool to allow command line model processing. Mainly adebugging tool for internal purposes, but others might find it useful, too.
  - vc8/vc9: revision number is now written to DLL version header
  - mkutil: some batch scripts to simplify tagging & building of release versions
  - some API cleanup
  - fixing some doxygen markup (+now explicit use of @file <filename>)
  - Icon for assimp_view and assimp_cmd

3DS
  - Normal vectors are not anymore inverted in some cases
  - Improved pivot handling
  - Improved handling of x-flipped meshes

Collada
  - fixed a minor bug (visual_scene element)

LWS 
  - WIP implementation. No animations yet, some bugs and crashes.
  - Animation system remains disabled, WIP code
  - many test files for LWS, but most of them test the anim support, which is, read above, currently disabled.

STL
  - fixing a log warning which appears for every model
  - added binary&ascii test spider, exported from truespace

MD3 
  - Cleaning up output tags for automatically joined player models.


IRR
  - Fixing coordinate system issues. 
  - Instance handling improved.
  - Some of the reported crashes not yet fixed.

PretransformVertices
  - Numerous performance improvements.
  - Added config option to preserve the hierarchy during the step.

RemoveRedundantMaterials
  - Added config option to specify a list of materials which are kept in every case.

UNREAL
  - Added support for the old unreal data format (*.a,*.d,*.uc)
  - tested only with exports from Milkshape
  - more Unreal stuff to come soon



git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@356 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2009-03-05 22:32:13 +00:00
aramis_acg d70c092b71 MD3
- rough support for multi-part player models.

SceneCombiner
 - added support for cross-attachments of nodes in the whole graph

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@345 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2009-02-12 22:14:35 +00:00
aramis_acg 58eb786d62 Major API cleanup. Unified formatting & doxygen tags in the public API.
Added factory provider for default log streams.
Added default log streams to std::out and std::cerr.
Updated VC8 project config, boost workarounds is now working for the viewer.
Updated unit test suite.
Fixed some minor issues in the postprocessing-framework.

BROKEN: DebugDLL build.




git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@292 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2009-01-12 22:06:54 +00:00
aramis_acg 321334fd12 [ 2373610 ] Patch for Linux and SCons. Added patch provided by John Connors, closed the corresponding tracker item.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@262 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-12-07 20:00:58 +00:00
ulfjorensen 917db45b3c - further Collada work: materials are now loaded from profile_COMMON, meshes are properly split up at material borders
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@260 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-12-04 17:06:26 +00:00
aramis_acg 94d289d1a3 Updated boost workaround. Added -noboost build config to VC8.
Added aiGetVersionMinor, aiGetVersionMajor, aiGetRevision and aiGetLegalInformation(). They allow to query the library version at runtime.
Added reference images for cylindric and spherical mapping.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@255 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-11-29 15:30:50 +00:00
aramis_acg fd9e6edc19 Further work on the IRR, AC, LWS loaders. Further work on the - still unfinished - OptimizeGraph step. SceneCombiner works now properly in all cases I tested yet.
Added missing 'typename' in Colladaparser.h
First implementation of spherical and cylindrical mapping, already in use for IRR and LWO models. For the latter the coordinate system is not yet correct.
Moved vec2d to a separate header and added operators similar to vec3.
Added plane and ray helper classes. Just the data is wrapped, no operators required for the moment.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@249 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-11-26 13:17:39 +00:00
aramis_acg ac200212a9 Added ScenePreProcessor helper class to add missing dummy animation channels.
Modified FindInvalidData's behaviour regarding animation channels
Futher work on the IRR scene and IRRMESH loaders. Q3D fix. 
Updated aiNodeAnim documentation.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@218 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-11-02 16:58:31 +00:00
aramis_acg ce6ce098e9 Removed aiProcess_FindDegenerates from the viewer. The step seems to cause some problems that have not yet been solved.
Added irrmesh (Irrlicht Mesh Format) loader to Assimp. Works quite stable, but no lightmapping support yet.
Removed tinyxml, replaced it with irrxml instead. Added an IOStreamToIrrXML wrapper.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@194 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-10-24 20:37:54 +00:00
aramis_acg 383a614931 Fixed some minor issues in the AC loader. However, it still crashes with large and complicated models. Line handling is complete.
Moved the code to find degenerated primitives to a separate step that is not anymore active by default. 
The FindInvalidData-Step isn't active by default now. It hast a flag and must be explicitly requested.
Added line and point handling code to the CalcTangentsStep - not yet tested.
Added support for the Sense 8 (WorldToolKit) NFF file format. The format uses the same file extension as the "Neutral File Format" (and is implemented in the same loader). Seems to work well, added test files for it.
Added itoa10 function - so we have itoa on all platforms.
Small optimizations in the SortByPType step.
Fixed the material validation: textured meshes without uv coords cause a warning now.
Fixed a minor isses with the OFF loader.
Added empty unit tests for the new steps - to be filled in the next days. 
Added SceneCombiner.cpp. It contains utilities to join meshes and scenes. The latter will be needed by the LWS loader (LWS files contain references to external LWO files and the LWO loader is already to complicated that it would make sense to add an additional code path to it). Mesh joining is needed by some pp steps, but the code has not yet been moved to its new location.
Added WIP light & camera support to the ASE loader. Works for the moment, but there's much missing. ASE parser refactored, the code is still quite long but at least cleaner. Fixed a bug that caused ASE to import invalid texture coordinates.
Makefiles and VC8 solution are up-to-date. The rest isn't.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@192 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-10-22 20:06:16 +00:00
aramis_acg 2da2835b29 Fixed bug in the AC loader causing lines to load incorrectly. Seems to work now.
Added some more essential includes to AssimpPCH.hAdded support for line and point meshes to most steps - I did nto yet adapt all unit tests, so meshes with mixed primitive types are not absolutely safe at the moment.
Added camera and light support to the PretransformVert step. Fixed some small inaccuracies and fixed a bug reported by Mark Sibly causing all transformations to be invalid. However the step is nto yet completely correct, there are still some small artifacts.
Updated light and camera data structures, added temporary validation code for the
Renamed AI_SCENE_FLAGS_ANIM_SKELETON_ONLY to a more generic AI_SCENE_FLAGS_INCOMPLETE flag.
Fixed bug in the OFF loader causing meshes with polygons to crash
Added line support to the DXF loader - seems to fail for the moment cause of SortByPType.
Added support for lights and cameras to NFF, implemented another NFF format subtype (file starts with 'nff'). Implemented NFF 'tpp' chunk and a corresponding texture extension.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@185 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2008-10-19 11:32:33 +00:00