Allow several spaces between numbers in OBJ files.

pull/316/head
Tyson Grant Nottingham 2014-07-21 23:03:08 -07:00
parent 3e9fab3bfc
commit 36c82fe5b0
1 changed files with 12 additions and 6 deletions

View File

@ -113,8 +113,8 @@ void ObjFileParser::parseFile()
getVector3(m_pModel->m_Vertices);
} else if (*m_DataIt == 't') {
// read in texture coordinate ( 2D or 3D )
++m_DataIt;
getVector( m_pModel->m_TextureCoord );
++m_DataIt;
getVector( m_pModel->m_TextureCoord );
} else if (*m_DataIt == 'n') {
// Read in normal vector definition
++m_DataIt;
@ -234,11 +234,17 @@ void ObjFileParser::copyNextLine(char *pBuffer, size_t length)
void ObjFileParser::getVector( std::vector<aiVector3D> &point3d_array ) {
size_t numComponents( 0 );
DataArrayIt tmp( m_DataIt );
while( !IsLineEnd( *tmp ) ) {
if( *tmp == ' ' ) {
++numComponents;
while( true ) {
while( isspace(*tmp) && !IsLineEnd(*tmp) ) {
tmp++;
}
tmp++;
if( IsLineEnd(*tmp) ) {
break;
}
while( !isspace(*tmp) ) {
tmp++;
}
++numComponents;
}
float x, y, z;
if( 2 == numComponents ) {