Update CXMLReaderImpl.h

Issues with German locale number converter expecting German numbers.

In Germany we have numbers like #,## instead of #.## . Thus a unit conversion in COLLADA of 0.01 (centimeter) turned out to be 0.00.
pull/2744/head
tanolino 2019-11-01 17:01:52 +01:00 committed by GitHub
parent aa4c9fb5fa
commit 82f926971b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 2 deletions

View File

@ -15,6 +15,9 @@
#include <cstdint> #include <cstdint>
//using namespace Assimp; //using namespace Assimp;
// For locale independent number conversion
#include <sstream>
#include <locale>
#ifdef _DEBUG #ifdef _DEBUG
#define IRR_DEBUGPRINT(x) printf((x)); #define IRR_DEBUGPRINT(x) printf((x));
@ -178,8 +181,11 @@ public:
return 0; return 0;
core::stringc c = attrvalue; core::stringc c = attrvalue;
return static_cast<float>(atof(c.c_str())); std::istringstream sstr(c.c_str());
//return fast_atof(c.c_str()); sstr.imbue(std::locale("C")); // Locale free number convert
float fNum;
sstr >> fNum;
return fNum;
} }