Adding double precision import support for formats that can be exported
This commit is contained in:
@@ -279,23 +279,23 @@ size_t ObjFileParser::getNumComponentsInLine() {
|
||||
// -------------------------------------------------------------------
|
||||
void ObjFileParser::getVector( std::vector<aiVector3D> &point3d_array ) {
|
||||
size_t numComponents = getNumComponentsInLine();
|
||||
float x, y, z;
|
||||
ai_real x, y, z;
|
||||
if( 2 == numComponents ) {
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
x = ( float ) fast_atof( m_buffer );
|
||||
x = ( ai_real ) fast_atof( m_buffer );
|
||||
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
y = ( float ) fast_atof( m_buffer );
|
||||
y = ( ai_real ) fast_atof( m_buffer );
|
||||
z = 0.0;
|
||||
} else if( 3 == numComponents ) {
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
x = ( float ) fast_atof( m_buffer );
|
||||
x = ( ai_real ) fast_atof( m_buffer );
|
||||
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
y = ( float ) fast_atof( m_buffer );
|
||||
y = ( ai_real ) fast_atof( m_buffer );
|
||||
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
z = ( float ) fast_atof( m_buffer );
|
||||
z = ( ai_real ) fast_atof( m_buffer );
|
||||
} else {
|
||||
throw DeadlyImportError( "OBJ: Invalid number of components" );
|
||||
}
|
||||
@@ -306,15 +306,15 @@ void ObjFileParser::getVector( std::vector<aiVector3D> &point3d_array ) {
|
||||
// -------------------------------------------------------------------
|
||||
// Get values for a new 3D vector instance
|
||||
void ObjFileParser::getVector3( std::vector<aiVector3D> &point3d_array ) {
|
||||
float x, y, z;
|
||||
ai_real x, y, z;
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
x = (float) fast_atof(m_buffer);
|
||||
x = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
y = (float) fast_atof(m_buffer);
|
||||
y = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
z = ( float ) fast_atof( m_buffer );
|
||||
z = ( ai_real ) fast_atof( m_buffer );
|
||||
|
||||
point3d_array.push_back( aiVector3D( x, y, z ) );
|
||||
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
|
||||
@@ -323,26 +323,26 @@ void ObjFileParser::getVector3( std::vector<aiVector3D> &point3d_array ) {
|
||||
// -------------------------------------------------------------------
|
||||
// Get values for two 3D vectors on the same line
|
||||
void ObjFileParser::getTwoVectors3( std::vector<aiVector3D> &point3d_array_a, std::vector<aiVector3D> &point3d_array_b ) {
|
||||
float x, y, z;
|
||||
ai_real x, y, z;
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
x = (float) fast_atof(m_buffer);
|
||||
x = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
y = (float) fast_atof(m_buffer);
|
||||
y = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
z = ( float ) fast_atof( m_buffer );
|
||||
z = ( ai_real ) fast_atof( m_buffer );
|
||||
|
||||
point3d_array_a.push_back( aiVector3D( x, y, z ) );
|
||||
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
x = (float) fast_atof(m_buffer);
|
||||
x = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
y = (float) fast_atof(m_buffer);
|
||||
y = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
copyNextWord( m_buffer, Buffersize );
|
||||
z = ( float ) fast_atof( m_buffer );
|
||||
z = ( ai_real ) fast_atof( m_buffer );
|
||||
|
||||
point3d_array_b.push_back( aiVector3D( x, y, z ) );
|
||||
|
||||
@@ -352,12 +352,12 @@ void ObjFileParser::getTwoVectors3( std::vector<aiVector3D> &point3d_array_a, st
|
||||
// -------------------------------------------------------------------
|
||||
// Get values for a new 2D vector instance
|
||||
void ObjFileParser::getVector2( std::vector<aiVector2D> &point2d_array ) {
|
||||
float x, y;
|
||||
ai_real x, y;
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
x = (float) fast_atof(m_buffer);
|
||||
x = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
copyNextWord(m_buffer, Buffersize);
|
||||
y = (float) fast_atof(m_buffer);
|
||||
y = (ai_real) fast_atof(m_buffer);
|
||||
|
||||
point2d_array.push_back(aiVector2D(x, y));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user