diff -up ./CMakeLists.txt.unbundle ./CMakeLists.txt --- ./CMakeLists.txt.unbundle 2011-08-22 16:52:02.000000000 -0400 +++ ./CMakeLists.txt 2013-07-05 18:17:27.356011868 -0400 @@ -97,6 +97,36 @@ if (PKG_CONFIG_FOUND) PKG_CHECK_MODULES(UNZIP minizip) endif (PKG_CONFIG_FOUND) +# Search for irrXML +FIND_LIBRARY(IRRXML_LIB IrrXML HINTS ${IRRXML_LIB_PATH}) +FIND_FILE(IRRXML_H irrXML.h PATHS ${IRRXML_INCLUDE_PATH}) +IF(IRRXML_LIB AND IRRXML_H) + message (STATUS "Found External IrrXML") + set(HAVE_IRRXML true) +ELSE (IRRXML_LIB AND IRRXML_H) + SET(HAVE_IRRXML false) +ENDIF(IRRXML_LIB AND IRRXML_H) + +# Search for poly2tri +FIND_LIBRARY(POLY2TRI_LIB poly2tri HINTS ${POLY2TRI_LIB_PATH}) +FIND_FILE(POLY2TRI_H poly2tri.h PATHS ${POLY2TRI_INCLUDE_PATH}) +IF (POLY2TRI_LIB AND POLY2TRI_H) + message(status "Found External poly2tri") + SET(HAVE_POLY2TRI true) +ELSE(POLY2TRI_LIB AND POLY2TRI_H) + SET(HAVE_POLY2TRI false) +ENDIF(POLY2TRI_LIB AND POLY2TRI_H) + +# Search for clipper +FIND_LIBRARY(CLIPPER_LIB polyclipping HINTS ${CLIPPER_LIB_PATH}) +FIND_FILE(CLIPPER_H clipper.hpp PATHS ${CLIPPER_INCLUDE_PATH}) +IF (CLIPPER_LIB AND CLIPPER_H) + message(status "Found External clipper") + SET(HAVE_CLIPPER true) +ELSE(CLIPPER_LIB AND CLIPPER_H) + SET(HAVE_CLIPPER false) +ENDIF(CLIPPER_LIB AND CLIPPER_H) + IF ( NO_EXPORT ) ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT) MESSAGE( STATUS "Build an import-only version of Assimp." ) diff -up ./code/ACLoader.cpp.unbundle ./code/ACLoader.cpp --- ./code/ACLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/ACLoader.cpp 2013-07-05 18:17:27.356011868 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "ACLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "Subdivision.h" using namespace Assimp; diff -up ./code/ASELoader.cpp.unbundle ./code/ASELoader.cpp --- ./code/ASELoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/ASELoader.cpp 2013-07-05 18:17:27.356011868 -0400 @@ -53,7 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "TargetAnimation.h" // utilities -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; using namespace Assimp::ASE; diff -up ./code/ASEParser.cpp.unbundle ./code/ASEParser.cpp --- ./code/ASEParser.cpp.unbundle 2011-04-29 13:37:08.000000000 -0400 +++ ./code/ASEParser.cpp 2013-07-05 18:17:27.357011907 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "TextureTransform.h" #include "ASELoader.h" #include "MaterialSystem.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; using namespace Assimp::ASE; diff -up ./code/BlenderDNA.cpp.unbundle ./code/BlenderDNA.cpp --- ./code/BlenderDNA.cpp.unbundle 2011-06-09 10:29:32.000000000 -0400 +++ ./code/BlenderDNA.cpp 2013-07-05 18:17:27.357011907 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #ifndef ASSIMP_BUILD_NO_BLEND_IMPORTER #include "BlenderDNA.h" #include "StreamReader.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; using namespace Assimp::Blender; diff -up ./code/BVHLoader.cpp.unbundle ./code/BVHLoader.cpp --- ./code/BVHLoader.cpp.unbundle 2011-06-09 10:29:32.000000000 -0400 +++ ./code/BVHLoader.cpp 2013-07-05 18:17:27.357011907 -0400 @@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #ifndef ASSIMP_BUILD_NO_BVH_IMPORTER #include "BVHLoader.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "SkeletonMeshBuilder.h" using namespace Assimp; diff -up ./code/CMakeLists.txt.unbundle ./code/CMakeLists.txt --- ./code/CMakeLists.txt.unbundle 2011-08-04 07:27:13.000000000 -0400 +++ ./code/CMakeLists.txt 2013-07-05 18:17:27.358011946 -0400 @@ -89,7 +89,7 @@ SET( Logging_SRCS SOURCE_GROUP(Logging FILES ${Logging_SRCS}) SET( Common_SRCS - fast_atof.h + fast_atof_assimp.h qnan.h BaseImporter.cpp BaseImporter.h @@ -592,9 +592,7 @@ ADD_LIBRARY( assimp SHARED ${IFC_SRCS} # Third-party libraries - ${IrrXML_SRCS} ${ConvertUTF_SRCS} - ${unzip_compile_SRCS} # Necessary to show the headers in the project when using the VC++ generator: ${Boost_SRCS} @@ -616,6 +614,13 @@ else (UNZIP_FOUND) INCLUDE_DIRECTORIES("../contrib/unzip") endif (UNZIP_FOUND) +if (HAVE_IRRXML) + INCLUDE_DIRECTORIES(${IRRXML_INCLUDE_PATH}) + TARGET_LINK_LIBRARIES(assimp ${IRRXML_LIB}) +else (HAVE_IRRXML) + INCLUDE_DIRECTORIES("../contrib/irrXML") +endif (HAVE_IRRXML) + INSTALL( TARGETS assimp DESTINATION ${LIB_INSTALL_DIR} COMPONENT libassimp${ASSIMP_VERSION_MAJOR}) INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev) INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev) diff -up ./code/COBLoader.cpp.unbundle ./code/COBLoader.cpp --- ./code/COBLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/COBLoader.cpp 2013-07-05 18:17:27.358011946 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "StreamReader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "LineSplitter.h" #include "TinyFormatter.h" diff -up ./code/ColladaLoader.cpp.unbundle ./code/ColladaLoader.cpp --- ./code/ColladaLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/ColladaLoader.cpp 2013-07-05 18:17:27.359011984 -0400 @@ -48,7 +48,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "ColladaLoader.h" #include "ColladaParser.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" #include "SkeletonMeshBuilder.h" diff -up ./code/ColladaParser.cpp.unbundle ./code/ColladaParser.cpp --- ./code/ColladaParser.cpp.unbundle 2011-08-23 12:27:07.000000000 -0400 +++ ./code/ColladaParser.cpp 2013-07-05 18:17:27.359011984 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #ifndef ASSIMP_BUILD_NO_DAE_IMPORTER #include "ColladaParser.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" using namespace Assimp; diff -up ./code/CSMLoader.cpp.unbundle ./code/CSMLoader.cpp --- ./code/CSMLoader.cpp.unbundle 2011-06-09 10:29:32.000000000 -0400 +++ ./code/CSMLoader.cpp 2013-07-05 18:17:27.360012023 -0400 @@ -50,7 +50,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "CSMLoader.h" #include "SkeletonMeshBuilder.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; diff -up ./code/DXFLoader.cpp.unbundle ./code/DXFLoader.cpp --- ./code/DXFLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/DXFLoader.cpp 2013-07-05 18:17:27.360012023 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "DXFLoader.h" #include "ParsingUtils.h" #include "ConvertToLHProcess.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "DXFHelper.h" diff -up ./code/fast_atof_assimp.h.unbundle ./code/fast_atof_assimp.h --- ./code/fast_atof_assimp.h.unbundle 2013-07-05 18:17:27.360012023 -0400 +++ ./code/fast_atof_assimp.h 2013-07-05 18:17:36.342359745 -0400 @@ -0,0 +1,269 @@ +// Copyright (C) 2002-2007 Nikolaus Gebhardt +// This file is part of the "Irrlicht Engine" and the "irrXML" project. +// For conditions of distribution and use, see copyright notice in irrlicht.h and irrXML.h + +// ------------------------------------------------------------------------------------ +// Original description: (Schrompf) +// Adapted to the ASSIMP library because the builtin atof indeed takes AGES to parse a +// float inside a large string. Before parsing, it does a strlen on the given point. +// Changes: +// 22nd October 08 (Aramis_acg): Added temporary cast to double, added strtoul10_64 +// to ensure long numbers are handled correctly +// ------------------------------------------------------------------------------------ + + +#ifndef __ASSIMP_FAST_A_TO_F_H_INCLUDED__ +#define __ASSIMP_FAST_A_TO_F_H_INCLUDED__ + +#include +#include "fast_atof.h" + +namespace Assimp +{ + +// ------------------------------------------------------------------------------------ +// Convert a string in decimal format to a number +// ------------------------------------------------------------------------------------ +inline unsigned int strtoul10( const char* in, const char** out=0) +{ + return irr::core::strtoul10(in, out); +} + +// ------------------------------------------------------------------------------------ +// Convert a string in octal format to a number +// ------------------------------------------------------------------------------------ +inline unsigned int strtoul8( const char* in, const char** out=0) +{ + return irr::core::strtoul8(in, out); +} + +// ------------------------------------------------------------------------------------ +// Convert a string in hex format to a number +// ------------------------------------------------------------------------------------ +inline unsigned int strtoul16( const char* in, const char** out=0) +{ + return irr::core::strtoul16(in, out); +} + +// ------------------------------------------------------------------------------------ +// Convert just one hex digit +// Return value is UINT_MAX if the input character is not a hex digit. +// ------------------------------------------------------------------------------------ +inline unsigned int HexDigitToDecimal(char in) +{ + unsigned int out = UINT_MAX; + if (in >= '0' && in <= '9') + out = in - '0'; + + else if (in >= 'a' && in <= 'f') + out = 10u + in - 'a'; + + else if (in >= 'A' && in <= 'F') + out = 10u + in - 'A'; + + // return value is UINT_MAX if the input is not a hex digit + return out; +} + +// ------------------------------------------------------------------------------------ +// Convert a hex-encoded octet (2 characters, i.e. df or 1a). +// ------------------------------------------------------------------------------------ +inline uint8_t HexOctetToDecimal(const char* in) +{ + return ((uint8_t)HexDigitToDecimal(in[0])<<4)+(uint8_t)HexDigitToDecimal(in[1]); +} + + +// ------------------------------------------------------------------------------------ +// signed variant of strtoul10 +// ------------------------------------------------------------------------------------ +inline int strtol10( const char* in, const char** out=0) +{ + return irr::core::strtol10(in, out); +} + +// ------------------------------------------------------------------------------------ +// Parse a C++-like integer literal - hex and oct prefixes. +// 0xNNNN - hex +// 0NNN - oct +// NNN - dec +// ------------------------------------------------------------------------------------ +inline unsigned int strtoul_cppstyle( const char* in, const char** out=0) +{ + if ('0' == in[0]) + { + return 'x' == in[1] ? strtoul16(in+2,out) : strtoul8(in+1,out); + } + return strtoul10(in, out); +} + +// ------------------------------------------------------------------------------------ +// Special version of the function, providing higher accuracy and safety +// It is mainly used by fast_atof to prevent ugly and unwanted integer overflows. +// ------------------------------------------------------------------------------------ +inline uint64_t strtoul10_64( const char* in, const char** out=0, unsigned int* max_inout=0) +{ + unsigned int cur = 0; + uint64_t value = 0; + + bool running = true; + while ( running ) + { + if ( *in < '0' || *in > '9' ) + break; + + const uint64_t new_value = ( value * 10 ) + ( *in - '0' ); + + if (new_value < value) /* numeric overflow, we rely on you */ + return value; + + value = new_value; + + ++in; + ++cur; + + if (max_inout && *max_inout == cur) { + + if (out) { /* skip to end */ + while (*in >= '0' && *in <= '9') + ++in; + *out = in; + } + + return value; + } + } + if (out) + *out = in; + + if (max_inout) + *max_inout = cur; + + return value; +} + +// Number of relevant decimals for floating-point parsing. +#define AI_FAST_ATOF_RELAVANT_DECIMALS 15 + +// ------------------------------------------------------------------------------------ +//! Provides a fast function for converting a string into a float, +//! about 6 times faster than atof in win32. +// If you find any bugs, please send them to me, niko (at) irrlicht3d.org. +// ------------------------------------------------------------------------------------ +template +inline const char* fast_atoreal_move( const char* c, Real& out) +{ + Real f; + + bool inv = (*c=='-'); + if (inv || *c=='+') { + ++c; + } + + f = static_cast( strtoul10_64 ( c, &c) ); + if (*c == '.' || (c[0] == ',' && c[1] >= '0' && c[1] <= '9')) // allow for commas, too + { + ++c; + + // NOTE: The original implementation is highly inaccurate here. The precision of a single + // IEEE 754 float is not high enough, everything behind the 6th digit tends to be more + // inaccurate than it would need to be. Casting to double seems to solve the problem. + // strtol_64 is used to prevent integer overflow. + + // Another fix: this tends to become 0 for long numbers if we don't limit the maximum + // number of digits to be read. AI_FAST_ATOF_RELAVANT_DECIMALS can be a value between + // 1 and 15. + unsigned int diff = AI_FAST_ATOF_RELAVANT_DECIMALS; + double pl = static_cast( strtoul10_64 ( c, &c, &diff )); + + pl *= irr::core::fast_atof_table[diff]; + f += static_cast( pl ); + } + + // A major 'E' must be allowed. Necessary for proper reading of some DXF files. + // Thanks to Zhao Lei to point out that this if() must be outside the if (*c == '.' ..) + if (*c == 'e' || *c == 'E') { + + ++c; + const bool einv = (*c=='-'); + if (einv || *c=='+') { + ++c; + } + + // The reason float constants are used here is that we've seen cases where compilers + // would perform such casts on compile-time constants at runtime, which would be + // bad considering how frequently fast_atoreal_move is called in Assimp. + Real exp = static_cast( strtoul10_64(c, &c) ); + if (einv) { + exp = -exp; + } + f *= pow(static_cast(10.0f), exp); + } + + if (inv) { + f = -f; + } + out = f; + return c; +} + +// ------------------------------------------------------------------------------------ +// The same but more human. +inline float fast_atof(const char* c) +{ + float ret; + fast_atoreal_move(c, ret); + return ret; +} + + +inline float fast_atof( const char* c, const char** cout) +{ + float ret; + *cout = fast_atoreal_move(c, ret); + + return ret; +} + +inline float fast_atof( const char** inout) +{ + float ret; + *inout = fast_atoreal_move(*inout, ret); + + return ret; +} + + +inline double fast_atod(const char* c) +{ + double ret; + fast_atoreal_move(c, ret); + return ret; +} + + +inline double fast_atod( const char* c, const char** cout) +{ + double ret; + *cout = fast_atoreal_move(c, ret); + + return ret; +} + +inline double fast_atod( const char** inout) +{ + double ret; + *inout = fast_atoreal_move(*inout, ret); + + return ret; +} + +inline const char* fast_atof_move(const char* in, irr::f32& result) +{ + return irr::core::fast_atof_move(in, result); +} + +} // end of namespace Assimp + +#endif + diff -up ./code/FileSystemFilter.h.unbundle ./code/FileSystemFilter.h --- ./code/FileSystemFilter.h.unbundle 2011-05-03 18:47:14.000000000 -0400 +++ ./code/FileSystemFilter.h 2013-07-05 18:17:27.361012062 -0400 @@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #define AI_FILESYSTEMFILTER_H_INC #include "../include/IOSystem.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" namespace Assimp { diff -up ./code/IRRLoader.cpp.unbundle ./code/IRRLoader.cpp --- ./code/IRRLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/IRRLoader.cpp 2013-07-05 18:17:27.361012062 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "IRRLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "GenericProperty.h" #include "SceneCombiner.h" diff -up ./code/IRRMeshLoader.cpp.unbundle ./code/IRRMeshLoader.cpp --- ./code/IRRMeshLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/IRRMeshLoader.cpp 2013-07-05 18:17:27.362012101 -0400 @@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "IRRMeshLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; using namespace irr; diff -up ./code/IRRShared.cpp.unbundle ./code/IRRShared.cpp --- ./code/IRRShared.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/IRRShared.cpp 2013-07-05 18:17:27.362012101 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "IRRShared.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; using namespace irr; diff -up ./code/irrXMLWrapper.h.unbundle ./code/irrXMLWrapper.h --- ./code/irrXMLWrapper.h.unbundle 2010-04-10 11:30:22.000000000 -0400 +++ ./code/irrXMLWrapper.h 2013-07-05 18:17:27.362012101 -0400 @@ -42,7 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #define INCLUDED_AI_IRRXML_WRAPPER // some long includes .... -#include "./../contrib/irrXML/irrXML.h" +#include "irrXML.h" #include "./../include/IOStream.h" namespace Assimp { @@ -115,7 +115,7 @@ public: // ---------------------------------------------------------------------------------- //! Returns size of file in bytes - virtual int getSize() { + virtual long getSize() const { return (int)data.size(); } diff -up ./code/LWSLoader.cpp.unbundle ./code/LWSLoader.cpp --- ./code/LWSLoader.cpp.unbundle 2011-08-01 16:58:31.000000000 -0400 +++ ./code/LWSLoader.cpp 2013-07-05 18:17:27.363012139 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "LWSLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "SceneCombiner.h" #include "GenericProperty.h" diff -up ./code/MaterialSystem.cpp.unbundle ./code/MaterialSystem.cpp --- ./code/MaterialSystem.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/MaterialSystem.cpp 2013-07-05 18:17:27.363012139 -0400 @@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "AssimpPCH.h" #include "Hash.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" #include "MaterialSystem.h" diff -up ./code/MD5Loader.cpp.unbundle ./code/MD5Loader.cpp --- ./code/MD5Loader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/MD5Loader.cpp 2013-07-05 18:17:27.364012178 -0400 @@ -50,7 +50,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "RemoveComments.h" #include "MD5Loader.h" #include "StringComparison.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "SkeletonMeshBuilder.h" using namespace Assimp; diff -up ./code/MD5Parser.cpp.unbundle ./code/MD5Parser.cpp --- ./code/MD5Parser.cpp.unbundle 2011-04-22 17:29:18.000000000 -0400 +++ ./code/MD5Parser.cpp 2013-07-05 18:17:27.364012178 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "MD5Loader.h" #include "MaterialSystem.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" #include "StringComparison.h" diff -up ./code/NFFLoader.cpp.unbundle ./code/NFFLoader.cpp --- ./code/NFFLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/NFFLoader.cpp 2013-07-05 18:17:27.365012217 -0400 @@ -48,7 +48,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "NFFLoader.h" #include "ParsingUtils.h" #include "StandardShapes.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "RemoveComments.h" using namespace Assimp; diff -up ./code/ObjFileMtlImporter.cpp.unbundle ./code/ObjFileMtlImporter.cpp --- ./code/ObjFileMtlImporter.cpp.unbundle 2010-04-10 11:30:22.000000000 -0400 +++ ./code/ObjFileMtlImporter.cpp 2013-07-05 18:17:27.365012217 -0400 @@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "ObjFileMtlImporter.h" #include "ObjTools.h" #include "ObjFileData.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" namespace Assimp { diff -up ./code/ObjTools.h.unbundle ./code/ObjTools.h --- ./code/ObjTools.h.unbundle 2010-10-26 14:32:07.000000000 -0400 +++ ./code/ObjTools.h 2013-07-05 18:17:27.365012217 -0400 @@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #ifndef OBJ_TOOLS_H_INC #define OBJ_TOOLS_H_INC -#include "fast_atof.h" +#include "fast_atof_assimp.h" namespace Assimp { diff -up ./code/OFFLoader.cpp.unbundle ./code/OFFLoader.cpp --- ./code/OFFLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/OFFLoader.cpp 2013-07-05 18:17:27.366012255 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "OFFLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; diff -up ./code/OgreXmlHelper.h.unbundle ./code/OgreXmlHelper.h --- ./code/OgreXmlHelper.h.unbundle 2010-04-15 06:35:15.000000000 -0400 +++ ./code/OgreXmlHelper.h 2013-07-05 18:17:27.366012255 -0400 @@ -1,6 +1,6 @@ #include "irrXMLWrapper.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" namespace Assimp { diff -up ./code/PlyParser.cpp.unbundle ./code/PlyParser.cpp --- ./code/PlyParser.cpp.unbundle 2011-03-23 10:26:19.000000000 -0400 +++ ./code/PlyParser.cpp 2013-07-05 18:17:27.366012255 -0400 @@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #ifndef ASSIMP_BUILD_NO_PLY_IMPORTER #include "PlyLoader.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; diff -up ./code/Q3DLoader.cpp.unbundle ./code/Q3DLoader.cpp --- ./code/Q3DLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/Q3DLoader.cpp 2013-07-05 18:17:27.367012294 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "Q3DLoader.h" #include "StreamReader.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; diff -up ./code/RawLoader.cpp.unbundle ./code/RawLoader.cpp --- ./code/RawLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/RawLoader.cpp 2013-07-05 18:17:27.367012294 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "RawLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; diff -up ./code/SceneCombiner.cpp.unbundle ./code/SceneCombiner.cpp --- ./code/SceneCombiner.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/SceneCombiner.cpp 2013-07-05 18:17:27.368012333 -0400 @@ -48,7 +48,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ---------------------------------------------------------------------------- #include "AssimpPCH.h" #include "SceneCombiner.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "Hash.h" #include "time.h" diff -up ./code/SMDLoader.cpp.unbundle ./code/SMDLoader.cpp --- ./code/SMDLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/SMDLoader.cpp 2013-07-05 18:17:27.368012333 -0400 @@ -48,7 +48,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "SMDLoader.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "SkeletonMeshBuilder.h" using namespace Assimp; diff -up ./code/STEPFileReader.cpp.unbundle ./code/STEPFileReader.cpp --- ./code/STEPFileReader.cpp.unbundle 2011-06-09 10:29:32.000000000 -0400 +++ ./code/STEPFileReader.cpp 2013-07-05 18:17:27.368012333 -0400 @@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "AssimpPCH.h" #include "STEPFileReader.h" #include "TinyFormatter.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; namespace EXPRESS = STEP::EXPRESS; diff -up ./code/STLLoader.cpp.unbundle ./code/STLLoader.cpp --- ./code/STLLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/STLLoader.cpp 2013-07-05 18:17:27.369012372 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "STLLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; diff -up ./code/UnrealLoader.cpp.unbundle ./code/UnrealLoader.cpp --- ./code/UnrealLoader.cpp.unbundle 2011-08-22 16:22:51.000000000 -0400 +++ ./code/UnrealLoader.cpp 2013-07-05 18:17:27.369012372 -0400 @@ -53,7 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "UnrealLoader.h" #include "StreamReader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ConvertToLHProcess.h" using namespace Assimp; diff -up ./code/ValidateDataStructure.cpp.unbundle ./code/ValidateDataStructure.cpp --- ./code/ValidateDataStructure.cpp.unbundle 2011-04-06 08:06:40.000000000 -0400 +++ ./code/ValidateDataStructure.cpp 2013-07-05 18:17:27.370012410 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // internal headers #include "ValidateDataStructure.h" #include "BaseImporter.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ProcessHelper.h" // CRT headers diff -up ./code/XFileParser.cpp.unbundle ./code/XFileParser.cpp --- ./code/XFileParser.cpp.unbundle 2011-06-09 10:29:32.000000000 -0400 +++ ./code/XFileParser.cpp 2013-07-05 18:17:27.370012410 -0400 @@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "XFileParser.h" #include "XFileHelper.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" using namespace Assimp; using namespace Assimp::XFile; diff -up ./tools/assimp_cmd/CMakeLists.txt.unbundle ./tools/assimp_cmd/CMakeLists.txt --- ./tools/assimp_cmd/CMakeLists.txt.unbundle 2011-05-09 15:34:21.000000000 -0400 +++ ./tools/assimp_cmd/CMakeLists.txt 2013-07-05 18:17:27.370012410 -0400 @@ -17,7 +17,10 @@ ADD_EXECUTABLE( assimp_cmd Export.cpp ) -TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES}) +INCLUDE_DIRECTORIES(${IRRXML_INCLUDE_PATH}) +TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES} ) +TARGET_LINK_LIBRARIES( assimp_cmd ${IRRXML_LIB}) + SET_TARGET_PROPERTIES( assimp_cmd PROPERTIES OUTPUT_NAME assimp ) diff -up ./tools/assimp_cmd/ImageExtractor.cpp.unbundle ./tools/assimp_cmd/ImageExtractor.cpp --- ./tools/assimp_cmd/ImageExtractor.cpp.unbundle 2011-08-20 18:00:33.000000000 -0400 +++ ./tools/assimp_cmd/ImageExtractor.cpp 2013-07-05 18:17:27.370012410 -0400 @@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ #include "Main.h" -#include <../code/fast_atof.h> +#include #include <../code/StringComparison.h> const char* AICMD_MSG_DUMP_HELP_E =