More bugfixes from Jonathan:

- fixed material loading in OBJ importer
- Bugfix: loads obj files without texture coords correctly now

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@144 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
This commit is contained in:
ulfjorensen
2008-09-16 13:53:10 +00:00
parent f784382a9f
commit b776f04251
2 changed files with 23 additions and 3 deletions

View File

@@ -106,14 +106,17 @@ void ObjFileMtlImporter::load()
++m_DataIt;
if (*m_DataIt == 'a') // Ambient color
{
++m_DataIt;
getColorRGBA( &m_pModel->m_pCurrentMaterial->ambient );
}
else if (*m_DataIt == 'd') // Diffuse color
{
++m_DataIt;
getColorRGBA( &m_pModel->m_pCurrentMaterial->diffuse );
}
else if (*m_DataIt == 's')
{
++m_DataIt;
getColorRGBA( &m_pModel->m_pCurrentMaterial->specular );
}
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
@@ -122,6 +125,7 @@ void ObjFileMtlImporter::load()
case 'd': // Alpha value
{
++m_DataIt;
getFloatValue( m_pModel->m_pCurrentMaterial->alpha );
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
}
@@ -129,13 +133,25 @@ void ObjFileMtlImporter::load()
case 'N': // Shineness
{
getIlluminationModel( m_pModel->m_pCurrentMaterial->illumination_model );
++m_DataIt;
switch(*m_DataIt)
{
case 's':
++m_DataIt;
getFloatValue(m_pModel->m_pCurrentMaterial->shineness);
break;
case 'i': //Index Of refraction
//TODO
break;
}
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
break;
}
break;
case 'm': // Texture
{
m_DataIt = getNextToken<DataArrayIt>(m_DataIt, m_DataItEnd);
getTexture();
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
}
@@ -150,6 +166,8 @@ void ObjFileMtlImporter::load()
case 'i': // Illumination model
{
m_DataIt = getNextToken<DataArrayIt>(m_DataIt, m_DataItEnd);
getIlluminationModel( m_pModel->m_pCurrentMaterial->illumination_model );
m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
}
break;