diff --git a/code/B3DImporter.cpp b/code/B3DImporter.cpp index d764bd530..195ee04a8 100644 --- a/code/B3DImporter.cpp +++ b/code/B3DImporter.cpp @@ -309,8 +309,7 @@ void B3DImporter::ReadBRUS(){ /*int blend=**/ReadInt(); int fx=ReadInt(); - aiMaterial *mat=new aiMaterial; - _materials.push_back( mat ); + std::unique_ptr mat(new aiMaterial); // Name aiString ainame( name ); @@ -347,6 +346,7 @@ void B3DImporter::ReadBRUS(){ mat->AddProperty( &texname,AI_MATKEY_TEXTURE_DIFFUSE(0) ); } } + _materials.emplace_back( std::move(mat) ); } } @@ -702,10 +702,10 @@ void B3DImporter::ReadBB3D( aiScene *scene ){ //material if( !_materials.size() ){ - _materials.push_back( new aiMaterial ); + _materials.emplace_back( std::unique_ptr(new aiMaterial) ); } scene->mNumMaterials= static_cast(_materials.size()); - scene->mMaterials=to_array( _materials ); + scene->mMaterials = unique_to_array( _materials ); //meshes scene->mNumMeshes= static_cast(_meshes.size()); diff --git a/code/B3DImporter.h b/code/B3DImporter.h index ef36c4618..f9645f594 100644 --- a/code/B3DImporter.h +++ b/code/B3DImporter.h @@ -117,7 +117,7 @@ private: std::vector _stack; std::vector _textures; - std::vector _materials; + std::vector > _materials; int _vflags,_tcsets,_tcsize; std::vector _vertices;