Wavefront .obj ファイルを OpenGL アプリケーション ( tinyobjloader ) に読み込むライブラリを使用しています。オブジェクトのロード中にエラーがあることに気付きました。たとえば、座標のオブジェクトをロードすると。0.9999999 は 0 に設定されています。デバッグにより、次のメソッドがこの動作を生成することがわかりました。
static inline float parseFloat(const char*& token)
{
token += strspn(token, " \t");
float f = (float)atof(token);
token += strcspn(token, " \t\r");
return f;
}
したがって、atof() は float ではなく int を返します。「stdlib.h」を含めずに atof() を使用すると、一部のコンパイラが警告をスローせず、結果として atof() が整数を返すことを読みました。
不思議なのは、「stdlib.h」を含めてもエラーが残ることです。この動作の原因がわかりません。
何か案が?