Support lowercase 'ns' and 'ni' obj material tokens
Previously, the obj material parser would interpret all key tokens starting with 'n' as 'newmtl' tokens. However, there are other tokens that can start with 'n', namely 'ns' and 'ni' for material properties. Make the parser robust to such cases, despite their canonical forms being uppercase. Resolves #410.pull/413/head
parent
94f61300c2
commit
c7b6b5ea2f
|
@ -166,12 +166,13 @@ void ObjFileMtlImporter::load()
|
|||
}
|
||||
break;
|
||||
|
||||
case 'N': // Shineness
|
||||
case 'N':
|
||||
case 'n':
|
||||
{
|
||||
++m_DataIt;
|
||||
switch(*m_DataIt)
|
||||
{
|
||||
case 's':
|
||||
case 's': // Specular exponent
|
||||
++m_DataIt;
|
||||
getFloatValue(m_pModel->m_pCurrentMaterial->shineness);
|
||||
break;
|
||||
|
@ -179,13 +180,14 @@ void ObjFileMtlImporter::load()
|
|||
++m_DataIt;
|
||||
getFloatValue(m_pModel->m_pCurrentMaterial->ior);
|
||||
break;
|
||||
case 'e': // New material
|
||||
createMaterial();
|
||||
break;
|
||||
}
|
||||
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'm': // Texture
|
||||
case 'b': // quick'n'dirty - for 'bump' sections
|
||||
{
|
||||
|
@ -194,13 +196,6 @@ void ObjFileMtlImporter::load()
|
|||
}
|
||||
break;
|
||||
|
||||
case 'n': // New material name
|
||||
{
|
||||
createMaterial();
|
||||
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
|
||||
}
|
||||
break;
|
||||
|
||||
case 'i': // Illumination model
|
||||
{
|
||||
m_DataIt = getNextToken<DataArrayIt>(m_DataIt, m_DataItEnd);
|
||||
|
|
Loading…
Reference in New Issue