|
@@ -322,6 +322,7 @@ void OpenGEXImporter::InternReadFile( const std::string &filename, aiScene *pSce
|
|
|
copyMeshes( pScene );
|
|
|
copyCameras( pScene );
|
|
|
copyLights( pScene );
|
|
|
+ copyMaterials( pScene );
|
|
|
resolveReferences();
|
|
|
createNodeTree( pScene );
|
|
|
}
|
|
@@ -1158,6 +1159,19 @@ void OpenGEXImporter::copyLights( aiScene *pScene ) {
|
|
|
std::copy( m_lightCache.begin(), m_lightCache.end(), pScene->mLights );
|
|
|
}
|
|
|
|
|
|
+//------------------------------------------------------------------------------------------------
|
|
|
+void OpenGEXImporter::copyMaterials( aiScene *pScene ) {
|
|
|
+ ai_assert( nullptr != pScene );
|
|
|
+
|
|
|
+ if ( m_materialCache.empty() ) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ pScene->mNumMaterials = static_cast<unsigned int>(m_materialCache.size());
|
|
|
+ pScene->mMaterials = new aiMaterial*[ pScene->mNumMaterials ];
|
|
|
+ std::copy( m_materialCache.begin(), m_materialCache.end(), pScene->mMaterials );
|
|
|
+}
|
|
|
+
|
|
|
//------------------------------------------------------------------------------------------------
|
|
|
void OpenGEXImporter::resolveReferences() {
|
|
|
if( m_unresolvedRefStack.empty() ) {
|