diff -up ./CMakeLists.txt.unbundle ./CMakeLists.txt --- ./CMakeLists.txt.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./CMakeLists.txt 2016-05-21 20:50:11.700988184 -0400 @@ -178,6 +178,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 ( ASSIMP_NO_EXPORT ) ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT) MESSAGE( STATUS "Build an import-only version of Assimp." ) diff -up ./cmake-modules/AddGTest.cmake.unbundle ./cmake-modules/AddGTest.cmake --- ./cmake-modules/AddGTest.cmake.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./cmake-modules/AddGTest.cmake 2016-05-21 20:50:11.700988184 -0400 @@ -1,3 +1,7 @@ +if (1) +find_package(GTest) +else() + find_package(Threads REQUIRED) include(ExternalProject) @@ -70,3 +74,4 @@ else(NOT GIT_FOUND) ExternalProject_Get_Property(gtest binary_dir) link_directories(${binary_dir}) endif(NOT GIT_FOUND) +endif() diff -up ./code/ACLoader.cpp.unbundle ./code/ACLoader.cpp --- ./code/ACLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ACLoader.cpp 2016-05-21 20:50:11.701988224 -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" #include "Importer.h" #include "BaseImporter.h" diff -up ./code/ASELoader.cpp.unbundle ./code/ASELoader.cpp --- ./code/ASELoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ASELoader.cpp 2016-05-21 20:50:11.701988224 -0400 @@ -58,7 +58,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE // 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 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ASEParser.cpp 2016-05-21 20:50:11.702988264 -0400 @@ -50,7 +50,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" #include "../include/assimp/DefaultLogger.hpp" using namespace Assimp; diff -up ./code/BlenderDNA.cpp.unbundle ./code/BlenderDNA.cpp --- ./code/BlenderDNA.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/BlenderDNA.cpp 2016-05-21 20:50:11.702988264 -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" #include using namespace Assimp; diff -up ./code/BlenderTessellator.h.unbundle ./code/BlenderTessellator.h --- ./code/BlenderTessellator.h.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/BlenderTessellator.h 2016-05-21 20:50:11.703988304 -0400 @@ -142,7 +142,7 @@ namespace Assimp #if ASSIMP_BLEND_WITH_POLY_2_TRI -#include "../contrib/poly2tri/poly2tri/poly2tri.h" +#include "poly2tri/poly2tri.h" namespace Assimp { diff -up ./code/BVHLoader.cpp.unbundle ./code/BVHLoader.cpp --- ./code/BVHLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/BVHLoader.cpp 2016-05-21 20:50:11.703988304 -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" #include "../include/assimp/Importer.hpp" #include diff -up ./code/CMakeLists.txt.unbundle ./code/CMakeLists.txt --- ./code/CMakeLists.txt.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/CMakeLists.txt 2016-05-21 20:51:05.731141964 -0400 @@ -88,7 +88,6 @@ SET( Logging_SRCS SOURCE_GROUP(Logging FILES ${Logging_SRCS}) SET( Common_SRCS - fast_atof.h qnan.h BaseImporter.cpp BaseImporter.h @@ -598,12 +597,15 @@ SET( ConvertUTF_SRCS ) SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_SRCS}) +if (NOT HAVE_CLIPPER) SET( Clipper_SRCS ../contrib/clipper/clipper.hpp ../contrib/clipper/clipper.cpp ) SOURCE_GROUP( Clipper FILES ${Clipper_SRCS}) - +else (NOT HAVE_CLIPPER) +SET( Clipper_SRCS "") +endif(NOT HAVE_CLIPPER) SET( Poly2Tri_SRCS ../contrib/poly2tri/poly2tri/common/shapes.cc @@ -682,10 +684,7 @@ SET( assimp_src ${ASSIMP_LOADER_SRCS} # Third-party libraries - ${IrrXML_SRCS} ${ConvertUTF_SRCS} - ${unzip_compile_SRCS} - ${Poly2Tri_SRCS} ${Clipper_SRCS} ${openddl_parser_SRCS} # Necessary to show the headers in the project when using the VC++ generator: @@ -761,6 +760,26 @@ 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) + +if (HAVE_POLY2TRI) + INCLUDE_DIRECTORIES(${POLY2TRI_INCLUDE_PATH}) + TARGET_LINK_LIBRARIES(assimp ${POLY2TRI_LIB}) +endif(HAVE_POLY2TRI) + +if (HAVE_CLIPPER) + INCLUDE_DIRECTORIES(${CLIPPER_INCLUDE_PATH}) + TARGET_LINK_LIBRARIES(assimp ${CLIPPER_LIB}) +else (HAVE_CLIPPER) + INCLUDE_DIRECTORIES(../contrib/clipper) +endif(HAVE_CLIPPER) + + INSTALL( TARGETS assimp LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR} ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR} diff -up ./code/COBLoader.cpp.unbundle ./code/COBLoader.cpp --- ./code/COBLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/COBLoader.cpp 2016-05-21 20:50:11.704988344 -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/ColladaExporter.cpp.unbundle ./code/ColladaExporter.cpp --- ./code/ColladaExporter.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ColladaExporter.cpp 2016-05-21 20:50:11.705988383 -0400 @@ -45,14 +45,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "ColladaExporter.h" #include "Bitmap.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "SceneCombiner.h" #include "DefaultIOSystem.h" #include "XMLTools.h" #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/Exporter.hpp" #include "../include/assimp/scene.h" - +#include "StringComparison.h" #include "Exceptional.h" #include diff -up ./code/ColladaLoader.cpp.unbundle ./code/ColladaLoader.cpp --- ./code/ColladaLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ColladaLoader.cpp 2016-05-21 20:50:11.705988383 -0400 @@ -49,7 +49,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" #include "Defines.h" diff -up ./code/ColladaParser.cpp.unbundle ./code/ColladaParser.cpp --- ./code/ColladaParser.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ColladaParser.cpp 2016-05-21 20:50:11.706988423 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include #include #include "ColladaParser.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" #include #include diff -up ./code/CSMLoader.cpp.unbundle ./code/CSMLoader.cpp --- ./code/CSMLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/CSMLoader.cpp 2016-05-21 20:50:11.707988463 -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" #include "../include/assimp/Importer.hpp" #include #include "../include/assimp/IOSystem.hpp" diff -up ./code/DXFLoader.cpp.unbundle ./code/DXFLoader.cpp --- ./code/DXFLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/DXFLoader.cpp 2016-05-21 20:50:11.707988463 -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" #include "../include/assimp/IOSystem.hpp" diff -up ./code/fast_atof_assimp.h.unbundle ./code/fast_atof_assimp.h --- ./code/fast_atof_assimp.h.unbundle 2016-05-09 20:50:44.000000000 -0400 +++ ./code/fast_atof_assimp.h 2016-05-21 20:50:11.707988463 -0400 @@ -17,6 +17,288 @@ #include #include "fast_atof.h" +#include + +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; +} + +// ------------------------------------------------------------------------------------ +// signed variant of strtoul10_64 +// ------------------------------------------------------------------------------------ +inline int64_t strtol10_64(const char* in, const char** out = 0, unsigned int* max_inout = 0) +{ + bool inv = (*in == '-'); + if (inv || *in == '+') + ++in; + + int64_t value = strtoul10_64(in, out, max_inout); + if (inv) { + value = -value; + } + 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; +} + +} // end of namespace Assimp + +#endif + +// 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 { diff -up ./code/FBXParser.cpp.unbundle ./code/FBXParser.cpp --- ./code/FBXParser.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/FBXParser.cpp 2016-05-21 20:50:11.708988503 -0400 @@ -57,7 +57,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "FBXUtil.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include #include "ByteSwapper.h" diff -up ./code/FileSystemFilter.h.unbundle ./code/FileSystemFilter.h --- ./code/FileSystemFilter.h.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/FileSystemFilter.h 2016-05-21 20:50:11.708988503 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/DefaultLogger.hpp" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" namespace Assimp { diff -up ./code/IFCGeometry.cpp.unbundle ./code/IFCGeometry.cpp --- ./code/IFCGeometry.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/IFCGeometry.cpp 2016-05-21 20:50:11.709988543 -0400 @@ -49,8 +49,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "PolyTools.h" #include "ProcessHelper.h" -#include "../contrib/poly2tri/poly2tri/poly2tri.h" -#include "../contrib/clipper/clipper.hpp" +#include "poly2tri/poly2tri.h" +#include "clipper.hpp" #include #include diff -up ./code/IFCLoader.cpp.unbundle ./code/IFCLoader.cpp --- ./code/IFCLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/IFCLoader.cpp 2016-05-21 20:50:11.709988543 -0400 @@ -50,7 +50,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include #ifndef ASSIMP_BUILD_NO_COMPRESSED_IFC -# include "../contrib/unzip/unzip.h" +# include "unzip.h" #endif #include "IFCLoader.h" diff -up ./code/IFCOpenings.cpp.unbundle ./code/IFCOpenings.cpp --- ./code/IFCOpenings.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/IFCOpenings.cpp 2016-05-21 20:50:11.710988583 -0400 @@ -49,7 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "PolyTools.h" #include "ProcessHelper.h" -#include "../contrib/poly2tri/poly2tri/poly2tri.h" +#include "poly2tri/poly2tri.h" #include "../contrib/clipper/clipper.hpp" #include diff -up ./code/IRRLoader.cpp.unbundle ./code/IRRLoader.cpp --- ./code/IRRLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/IRRLoader.cpp 2016-05-21 20:50:11.710988583 -0400 @@ -49,7 +49,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 2015-11-03 13:47:37.000000000 -0500 +++ ./code/IRRMeshLoader.cpp 2016-05-21 20:50:11.710988583 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "IRRMeshLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/mesh.h" diff -up ./code/IRRShared.cpp.unbundle ./code/IRRShared.cpp --- ./code/IRRShared.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/IRRShared.cpp 2016-05-21 20:50:11.711988623 -0400 @@ -50,7 +50,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "IRRShared.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "../include/assimp/DefaultLogger.hpp" #include "../include/assimp/material.h" diff -up ./code/irrXMLWrapper.h.unbundle ./code/irrXMLWrapper.h --- ./code/irrXMLWrapper.h.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/irrXMLWrapper.h 2016-05-21 20:50:11.711988623 -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/assimp/IOStream.hpp" #include "BaseImporter.h" #include @@ -128,8 +128,8 @@ public: // ---------------------------------------------------------------------------------- //! Returns size of file in bytes - virtual int getSize() { - return (int)data.size(); + virtual long getSize() const { + return (long)data.size(); } private: diff -up ./code/LWSLoader.cpp.unbundle ./code/LWSLoader.cpp --- ./code/LWSLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/LWSLoader.cpp 2016-05-21 20:50:11.711988623 -0400 @@ -48,7 +48,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 2015-11-03 13:47:37.000000000 -0500 +++ ./code/MaterialSystem.cpp 2016-05-21 20:50:11.712988662 -0400 @@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "Hash.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "ParsingUtils.h" #include "MaterialSystem.h" #include "../include/assimp/types.h" diff -up ./code/MD5Loader.cpp.unbundle ./code/MD5Loader.cpp --- ./code/MD5Loader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/MD5Loader.cpp 2016-05-21 20:50:11.713988702 -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" #include "../include/assimp/Importer.hpp" #include "../include/assimp/scene.h" diff -up ./code/MD5Parser.cpp.unbundle ./code/MD5Parser.cpp --- ./code/MD5Parser.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/MD5Parser.cpp 2016-05-21 20:50:11.713988702 -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" #include "../include/assimp/DefaultLogger.hpp" diff -up ./code/NFFLoader.cpp.unbundle ./code/NFFLoader.cpp --- ./code/NFFLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/NFFLoader.cpp 2016-05-21 20:50:11.713988702 -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" #include #include "../include/assimp/IOSystem.hpp" diff -up ./code/ObjFileMtlImporter.cpp.unbundle ./code/ObjFileMtlImporter.cpp --- ./code/ObjFileMtlImporter.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ObjFileMtlImporter.cpp 2016-05-21 20:50:11.714988742 -0400 @@ -46,7 +46,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" #include "ParsingUtils.h" #include #include diff -up ./code/ObjFileParser.cpp.unbundle ./code/ObjFileParser.cpp --- ./code/ObjFileParser.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ObjFileParser.cpp 2016-05-21 20:50:11.714988742 -0400 @@ -49,6 +49,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "ParsingUtils.h" #include "DefaultIOSystem.h" #include "BaseImporter.h" +#include "fast_atof_assimp.h" #include #include #include diff -up ./code/ObjTools.h.unbundle ./code/ObjTools.h --- ./code/ObjTools.h.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ObjTools.h 2016-05-21 20:50:11.714988742 -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" #include "ParsingUtils.h" #include diff -up ./code/OFFLoader.cpp.unbundle ./code/OFFLoader.cpp --- ./code/OFFLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/OFFLoader.cpp 2016-05-21 20:50:11.714988742 -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" #include #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/scene.h" diff -up ./code/OgreMaterial.cpp.unbundle ./code/OgreMaterial.cpp --- ./code/OgreMaterial.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/OgreMaterial.cpp 2016-05-21 20:50:11.715988782 -0400 @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "../include/assimp/material.h" #include "../include/assimp/scene.h" #include "../include/assimp/DefaultLogger.hpp" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include #include diff -up ./code/PlyParser.cpp.unbundle ./code/PlyParser.cpp --- ./code/PlyParser.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/PlyParser.cpp 2016-05-21 20:50:11.715988782 -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" #include "../include/assimp/DefaultLogger.hpp" #include "ByteSwapper.h" diff -up ./code/Q3BSPZipArchive.h.unbundle ./code/Q3BSPZipArchive.h --- ./code/Q3BSPZipArchive.h.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/Q3BSPZipArchive.h 2016-05-21 20:50:11.715988782 -0400 @@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #ifndef AI_Q3BSP_ZIPARCHIVE_H_INC #define AI_Q3BSP_ZIPARCHIVE_H_INC -#include "../contrib/unzip/unzip.h" +#include "unzip.h" #include "../include/assimp/IOStream.hpp" #include "../include/assimp/IOSystem.hpp" #include diff -up ./code/Q3DLoader.cpp.unbundle ./code/Q3DLoader.cpp --- ./code/Q3DLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/Q3DLoader.cpp 2016-05-21 20:50:11.715988782 -0400 @@ -49,7 +49,8 @@ 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" +#include "StringComparison.h" #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/DefaultLogger.hpp" #include "../include/assimp/scene.h" diff -up ./code/RawLoader.cpp.unbundle ./code/RawLoader.cpp --- ./code/RawLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/RawLoader.cpp 2016-05-21 20:50:11.716988822 -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" #include #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/DefaultLogger.hpp" diff -up ./code/SceneCombiner.cpp.unbundle ./code/SceneCombiner.cpp --- ./code/SceneCombiner.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/SceneCombiner.cpp 2016-05-21 20:50:11.716988822 -0400 @@ -50,13 +50,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ // ---------------------------------------------------------------------------- #include "SceneCombiner.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "Hash.h" #include "time.h" #include "../include/assimp/DefaultLogger.hpp" #include "../include/assimp/scene.h" #include #include "ScenePrivate.h" +#include "StringComparison.h" namespace Assimp { diff -up ./code/SMDLoader.cpp.unbundle ./code/SMDLoader.cpp --- ./code/SMDLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/SMDLoader.cpp 2016-05-21 20:50:11.717988862 -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" #include "../include/assimp/Importer.hpp" #include "../include/assimp/IOSystem.hpp" diff -up ./code/STEPFileEncoding.cpp.unbundle ./code/STEPFileEncoding.cpp --- ./code/STEPFileEncoding.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/STEPFileEncoding.cpp 2016-05-21 20:50:11.717988862 -0400 @@ -42,8 +42,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE * @brief STEP character handling, string unescaping */ #include "STEPFileEncoding.h" -#include "fast_atof.h" - +#include "fast_atof_assimp.h" +#include "../include/assimp/ai_assert.h" #include "../contrib/ConvertUTF/ConvertUTF.h" #include diff -up ./code/STEPFileReader.cpp.unbundle ./code/STEPFileReader.cpp --- ./code/STEPFileReader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/STEPFileReader.cpp 2016-05-21 20:50:11.718988902 -0400 @@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "STEPFileReader.h" #include "STEPFileEncoding.h" #include "TinyFormatter.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include diff -up ./code/STLLoader.cpp.unbundle ./code/STLLoader.cpp --- ./code/STLLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/STLLoader.cpp 2016-05-21 20:50:11.718988902 -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" #include #include "../include/assimp/IOSystem.hpp" #include "../include/assimp/scene.h" diff -up ./code/UnrealLoader.cpp.unbundle ./code/UnrealLoader.cpp --- ./code/UnrealLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/UnrealLoader.cpp 2016-05-21 20:50:11.719988942 -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" #include diff -up ./code/ValidateDataStructure.cpp.unbundle ./code/ValidateDataStructure.cpp --- ./code/ValidateDataStructure.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/ValidateDataStructure.cpp 2016-05-21 20:50:11.719988942 -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" #include diff -up ./code/XFileParser.cpp.unbundle ./code/XFileParser.cpp --- ./code/XFileParser.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/XFileParser.cpp 2016-05-21 20:50:11.720988981 -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" #include "Exceptional.h" #include #include diff -up ./code/XGLLoader.cpp.unbundle ./code/XGLLoader.cpp --- ./code/XGLLoader.cpp.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./code/XGLLoader.cpp 2016-05-21 20:50:11.720988981 -0400 @@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE #include "XGLLoader.h" #include "ParsingUtils.h" -#include "fast_atof.h" +#include "fast_atof_assimp.h" #include "StreamReader.h" #include "MemoryIOWrapper.h" diff -up ./tools/assimp_cmd/CMakeLists.txt.unbundle ./tools/assimp_cmd/CMakeLists.txt --- ./tools/assimp_cmd/CMakeLists.txt.unbundle 2015-11-03 13:47:37.000000000 -0500 +++ ./tools/assimp_cmd/CMakeLists.txt 2016-05-21 20:50:11.721989021 -0400 @@ -27,8 +27,9 @@ IF( WIN32 ) COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ MAIN_DEPENDENCY assimp) ENDIF( WIN32 ) - -TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES} ) +INCLUDE_DIRECTORIES(${IRRXML_INCLUDE_PATH}) +TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES} ${POLY2TRI_LIB}) +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 2015-11-03 13:47:37.000000000 -0500 +++ ./tools/assimp_cmd/ImageExtractor.cpp 2016-05-21 20:50:11.721989021 -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 =