Merge commit '1f012384265e0dcc777e23369470391324d840e5' into contrib

This commit is contained in:
Léo Terziman
2014-01-17 11:25:01 +01:00
41 changed files with 87618 additions and 579 deletions

View File

@@ -277,7 +277,7 @@ struct Model
//! Material map
std::map<std::string, Material*> m_MaterialMap;
//! \brief Default constructor
//! \brief The default class constructor
Model() :
m_ModelName(""),
m_pCurrent(NULL),
@@ -290,7 +290,7 @@ struct Model
// empty
}
//! \brief Destructor
//! \brief The class destructor
~Model()
{
// Clear all stored object instances

View File

@@ -123,8 +123,9 @@ void ObjFileImporter::InternReadFile( const std::string& pFile, aiScene* pScene,
// Get the file-size and validate it, throwing an exception when fails
size_t fileSize = file->FileSize();
if( fileSize < 16)
if( fileSize < 16) {
throw DeadlyImportError( "OBJ-file is too small.");
}
// Allocate buffer and read file into it
TextFileToBuffer(file.get(),m_Buffer);
@@ -167,15 +168,15 @@ void ObjFileImporter::CreateDataFromImport(const ObjFile::Model* pModel, aiScene
}
else
{
// This is an error, so break down the application
// This is a fatal error, so break down the application
ai_assert(false);
}
}
// Create nodes for the whole scene
std::vector<aiMesh*> MeshArray;
for (size_t index = 0; index < pModel->m_Objects.size(); index++)
{
createNodes(pModel, pModel->m_Objects[ index ], index, pScene->mRootNode, pScene, MeshArray);
createNodes(pModel, pModel->m_Objects[ index ], pScene->mRootNode, pScene, MeshArray);
}
// Create mesh pointer buffer for this scene
@@ -195,7 +196,6 @@ void ObjFileImporter::CreateDataFromImport(const ObjFile::Model* pModel, aiScene
// ------------------------------------------------------------------------------------------------
// Creates all nodes of the model
aiNode *ObjFileImporter::createNodes(const ObjFile::Model* pModel, const ObjFile::Object* pObject,
unsigned int /*uiMeshIndex*/,
aiNode *pParent, aiScene* pScene,
std::vector<aiMesh*> &MeshArray )
{

View File

@@ -87,7 +87,7 @@ private:
void CreateDataFromImport(const ObjFile::Model* pModel, aiScene* pScene);
//! \brief Creates all nodes stored in imported content.
aiNode *createNodes(const ObjFile::Model* pModel, const ObjFile::Object* pData, unsigned int uiMeshIndex,
aiNode *createNodes(const ObjFile::Model* pModel, const ObjFile::Object* pData,
aiNode *pParent, aiScene* pScene, std::vector<aiMesh*> &MeshArray);
//! \brief Creates topology data like faces and meshes for the geometry.

View File

@@ -50,10 +50,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "../include/assimp/types.h"
#include "DefaultIOSystem.h"
namespace Assimp
{
namespace Assimp {
// -------------------------------------------------------------------
const std::string ObjFileParser::DEFAULT_MATERIAL = AI_DEFAULT_MATERIAL_NAME;
// -------------------------------------------------------------------
@@ -71,9 +69,10 @@ ObjFileParser::ObjFileParser(std::vector<char> &Data,const std::string &strModel
m_pModel = new ObjFile::Model();
m_pModel->m_ModelName = strModelName;
// create default material and store it
m_pModel->m_pDefaultMaterial = new ObjFile::Material();
m_pModel->m_pDefaultMaterial->MaterialName.Set( DEFAULT_MATERIAL );
m_pModel->m_MaterialLib.push_back( DEFAULT_MATERIAL );
m_pModel->m_MaterialLib.push_back( DEFAULT_MATERIAL );
m_pModel->m_MaterialMap[ DEFAULT_MATERIAL ] = m_pModel->m_pDefaultMaterial;
// Start parsing the file
@@ -84,9 +83,6 @@ ObjFileParser::ObjFileParser(std::vector<char> &Data,const std::string &strModel
// Destructor
ObjFileParser::~ObjFileParser()
{
/*delete m_pModel->m_pDefaultMaterial;
m_pModel->m_pDefaultMaterial = NULL;*/
delete m_pModel;
m_pModel = NULL;
}