Beispiel #1
0
//--------------------------------------------------------------------
// Desc: Load new template into memory, template with the same identifier
//		will not be created twice. 
//
// Params: sMeshFileName the identifier string
//--------------------------------------------------------------------
MeshEntity* CParaWorldAsset::LoadMesh(const string&  sIdentifier, const string&  fileName)
{
	string sFileName;
	CParaFile::ToCanonicalFilePath(sFileName, fileName, false);
	if (m_bUseAssetSearch)
		DoAssetSearch(sFileName, CParaFile::GetCurDirectory(CParaFile::APP_MODEL_DIR).c_str());
	pair<MeshEntity*, bool> res = GetMeshManager().CreateEntity(sIdentifier, sFileName);
	if (res.second == true)
	{
		MeshEntity* pNewEntity = res.first;
		pNewEntity->Init();
	}
	return res.first;
}
Beispiel #2
0
Entity *MeshEntity::DuplicateEntity()
{
    MeshEntity *ent = (MeshEntity*)this->GetObjectClass()->Create(FALSE);
    List<BYTE> data;

    BufferOutputSerializer sSave(data);
    this->Serialize(sSave);

    BufferInputSerializer sLoad(data);
    ent->Serialize(sLoad);
    ent->GenerateUniqueName();

    ent->bLightmapped = FALSE;

    ent->Init();

    return ent;
}