- add global namespace statement to sqrt.
refactoring:
- include cmath instead of math.h in c++ API.
Signed-off-by: Kim Kulling <kim.kulling@googlemail.com>
. Lots of importers use explicit template syntax for AddProperty(), changing to overloads now called the fallback template version. This caused material properties to be often registered as BINARY (instead of FLOAT, INT).
aiMaterial::AddProperty template specializations are used by import methods in B3DImporter and SceneProcessor; they should be defined accordingly even when ASSIMP_BUILD_NO_EXPORT is defined.
While principally backwards-compatible, this is still a breaking change since I also changed some method signatures (i.e. aiVector3t<TReal>(TReal) is now explicit). Normal users should not be affected, though.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1129 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- Make C-API threadsafe even without boost (no longer a global importer <-> scene map).
- Cleanup headers.
- Change the way how Importer::pimpl is accessed - all users are no longer friends of Importer to avoid spoiling the public interface. Rather, pimpl is exposed via a public member function and anyone having the definition of ImporterPimpl can access it.
THIS IS A BREAKING API CHANGE for anyone using properties with the C API. It is, however, a huge step forward and finally makes our C API functionally equivalent to the C++ interface.
I hope we can adapt all ports as soon as possible. I'd be grateful if the respective maintainers could do this.
Documentation is not yet up to date.
All this is in anticipation to the upcoming 3.0 release, which I'm actively working on.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1111 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- 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
+ 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
+ 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
- implement ExportToBlob/aiExportToBlob via a custom IOSystem implementation.
- split exporter C and C++ interfaces.
+ test cases for the exporter interface
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@913 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Fix various issues with the vc9 solution and assimp_cmd.
Declare some more Importer methods const. This marks them as safe to use from within a progress callback.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@806 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Start new documentation page for Performance/Profiling questions.
Migrate existing notes on multithreading to a new doc page, add more details.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@772 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
It is intended to make the length of the arrays in aiAnimMesh accessible even if the associated aiMesh is not known, e.g. in language bindings. Once the data structure is actually used inside Assimp, it could be set for all aiAnimMeshes from aiMesh::NumVertices in the Assimp::Importer after everything else has been completed.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@768 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
JoinVerticesProcess and SortByPType copy the mesh name to all clone or sub meshes they create.
JoinVerticesProcess' verbose output now prints mesh name, no longer using sprintf (TinyFormatter's age has come).
WARN: This is a public API change (not a breaking one, however).
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@719 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- don't leak LogStreamInfo when detaching streams from DefaultLogger.
- detach the stream before deleting it in aiDetachAllLogStreams.
Thanks to Bart Botta for the patch.
- DefaultLogger does not properly delete log streams if they're still attached to it when the logger is destroyed. This is the behaviour specified in the documentation.
- Adapt AssimpView's logger usage, which didn't follow the spec as well.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@659 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Add some fast_atof overloads to simplify calling it.
Add another convenience c'tor to aiColorMM.
Add COB test models.
Remove unreferenced member in B3D importer.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@633 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Fix problem related to floating-point inaccuracy in ValidateDS.
aiMatrix4x4::FromEulerAngleXYZ returns itself now, so chaining is possible.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@613 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- Change doc revision to 590.
- Rebuild CHM doc (online docs updated as well).
- Add TBD entry to LWO loader to remind me if I find enough time to fix that.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@591 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Please be quick to suspect this commit if the build should break on Windows/MSVC.
(Again, sorry for the large commit, but I didnt want to flood the commit log with my git-style tiny commits.)
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@577 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- FIX build error on vc8/release-noboost x64, ConvertUTF.c had wrong PCH settings.
- ADD knowext and listext verbs to assimp_cmd, add some raw docs.
- Update unit tests to reflect these changes. Currently I keep getting failures in some tests, this needs to be resolved *urgently*.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@567 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Refactor JoinVerticesProcess to utilize the new utility.
ADD basic operators for aiColor4D, move to dedicated header and implementation file.
ADD some utility functions to SpatialSort.
ADD my existing Catmull-Clark implementation to Assimp for all model formats with support for subdivision surfaces. Slightly WIP, likely to produce errors on non-closed meshes. Currently only implemented in the AC3D loader.
Switch to byteswap intrinsics instead of inline assembly (bswap). Currently MSVC only.
FIX phong shading in assimp_view.
VertexTriangleAdjacency class now also works on arbitrary polygons - UNTESTED, tbd.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@532 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
FIX: MD3Loader, revive dead branch.
FIX: TargetAnimation - clarify doc on preconditions.
FIX: aiMatrix3x3::FromTo - move cross product into a branch to save it we can do it without it.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@530 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
IrrXML receives memmapped UTF-8 input data now, it's own (faulty) conversion is not used anymore.
aiString's are explicitly UTF-8 now.
Slight refactorings and improvements.
Adding UTF-8/UTF-16 text files for ASE,obj,collada,ac3d. These contain various japanese/chinese character sequences.
Changing assimp_view's node view to display UTF-8 multibyte sequences correctly.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@469 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Adding basic math functions to the C API. This functionality is exposed to C++ users via operator overloading of aiMatrix4x4, aiMatrix3x3, aiVector3D.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@442 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
FIX: aiProcess_TransformUVCoords tried to transform untransformed channels, and 'he' changed their order from time to time.
FIX: Viewer displays lightmap with scaling factor correctly now.
Further work on documentation, material doc is WIP for the moment.
Some improvements to fast_atof.
Updating makeifle.mingw to reflect my new boost location (arg, too lazy to make it better ...).
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@413 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
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
- FEATURE: Concave polygons are now triangulated correctly.
- internal face order is ccw now, flipwinding part of converttolh flag
- added test files for the various formats supporting such polygons
FindDegenerates:
- improved behaviour when processing polygons, more tolerant.
Obj:
- material files are now properly read using the given IOSystem
- redirecting some std::cerr calls to our logger
- spaces and tabs are now allowed at the beginning of a line
Viewer:
- max smoothing angle for normals is set to 90 deg now
vc9-workspace
- added assimp_cmd, renamed some virtual folders to be sexier.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@374 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- cleaned up doc, made section on face winding clearer
MD3
- fixed coordinate system
- changed default face order for .shader files
MD2
- fixed coordinate system
- fixed face order
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@367 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- changing Assimp's coordinate system from RH z-up to RH y-up
- fixing coordinate system for LWO, 3DS, ASE, MD5, MDL, B3D, IRR, IRRMESH
- converttolh moved to three separate steps -> flipuv, flipwinding, makelh
LWO
- fixing texture coordinate generation -> mapping axis is correct now
- fixing z-fighting bug
ASE
- fixing crash due to invalid normal setup
- fixing parenting bug
- code cleanup
IRR
- code cleanup
- fixing placement of externally loaded meshes
MDL
- fixing texture coordinate space
PLY
- cleanup
- two-sided maat property is now set
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@366 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- added Conjugate() and Rotate() to aiQuaternion
- SkeletonMeshBuilder can now start hierarchy construction at a given node
MD5
- MD5MESH and MD5 anim now working.
- MD5ANIM files can be loaded without corresponding MD5MESHES
- Config option to prevent automatic loading of MD5ANIMs
- WIP version of MD5CAMERA support.
- added test files. No anim test file yet.
BHV
- fixing formatting
LimitBoneWeights
- prints now statistics to the logging system
Viewer
- does now specify the LBW post-processing step.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@359 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- 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
- shaders are now processed
- multi-part player models are handled correctly
Material system
- added flags for 'usealpha' or 'ignorealpha' setting of textures
LWO
- fixed texture assignment bug due to invalid tag list
3DS
- improved handling of dummy nodes
Viewer:
- lines&points are now displayed
- improved animation control via slider (still some stuff missing)
- skeleton is now displayed
- some other minor fixes
Validator:
- some material issues are warnings now (no errors anymore)
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@349 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- finished support for multi-part player models
- skin files are now read
- shaders are parsed, but not yet processed yet
DefaultIOSystem
- file size is now cached over multiple calls to FileSize()
MaterialSystem
- added AI_MATKEY_BLEND_FUNC property and the aiBlendMode enum to allow MD3 and Collada to pass transparency information correctly.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@346 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- collada 1.5.0 textures are readable now
- cube and volume maps and mip initializations are skipped
Material system
- unified texture types. Added lightmap, displacement, reflection and 'unknown'. Everyone should be happy now (intending to remove ambient textures from the API).
ComputeUV
Changed mapping axis property to vec3
Adapted step
WARN: produces mirrored uv coords now. LH issue.
IRR
Updated to new texture types
3DS
Updated to new texture types
NFF
Updated to new texture types
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@340 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
- added support for lights and cameras
- added support for tangents and bitangents
- added support for more than 2 UV components.
- fixed node naming
- beta support for instance_node elements. Works in most cases.
- added support for more complex materials
- UV index is now set correctly. hopefully.
Material system
- fixed potential problems regarding aiUVTransform
- added utility macros for the base keys
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@338 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Further work on 3DS target animations.
FixNormals-Step inverts face order now.
Further work on the doc to aiCamera.h, added helper function to get a view matrix.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@312 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Fixed build error regarding zutil.c with vc9.
Updated VC9 project files (again ...)
Moved version getters to aiVersion.h.
Deleted redundant fast_atof.h from irrXML.
Added vc9 config for cppunit
Fixed a missing include when building against stlport
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@307 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
Added a working makefile for mingw, provides more configs now. Not perfect yet.
Added decompression part of zlib (inflate).
Moved IrrXML to ./contrib dir.
Moved some IRR/IRRmesh shared code.
FIXME: makefile for gnu/linux is untested yet.
Code cleanup.
Unified #ifndef ASSIMP_BUILD_nnn_IMPORTER directives.
OBJ loader supports map_bump, map_ka, map_ks, map_ns now.
Endianess conversion in the ply loader is correct now.
Changed IRR/IRRMESH coordinate system conversion. Not absolutely right now, but better than before.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@305 67173fc5-114c-0410-ac8e-9d2fd5bffc1f