Properly parse 'mg' keyword in .obj files
The 'mg' keyword is currently being interpreted as a material library keyword, when it really refers to the merging group. Handle this case, in effect ignoring the keyword as merging groups are currently unsupported.pull/199/head
parent
ca7542cf5d
commit
931f0489bd
|
@ -149,9 +149,12 @@ void ObjFileParser::parseFile()
|
|||
}
|
||||
break;
|
||||
|
||||
case 'm': // Parse a material library
|
||||
case 'm': // Parse a material library or merging group ('mg')
|
||||
{
|
||||
getMaterialLib();
|
||||
if (*(m_DataIt + 1) == 'g')
|
||||
getGroupNumberAndResolution();
|
||||
else
|
||||
getMaterialLib();
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -609,6 +612,15 @@ void ObjFileParser::getGroupNumber()
|
|||
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Not supported
|
||||
void ObjFileParser::getGroupNumberAndResolution()
|
||||
{
|
||||
// Not used
|
||||
|
||||
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Stores values for a new object instance, name will be used to
|
||||
// identify it.
|
||||
|
|
|
@ -102,6 +102,8 @@ private:
|
|||
void getGroupName();
|
||||
/// Gets the group number from file.
|
||||
void getGroupNumber();
|
||||
/// Gets the group number and resolution from file.
|
||||
void getGroupNumberAndResolution();
|
||||
/// Returns the index of the material. Is -1 if not material was found.
|
||||
int getMaterialIndex( const std::string &strMaterialName );
|
||||
/// Parse object name
|
||||
|
|
Loading…
Reference in New Issue