Fixes from Andrew Galante for build with gcc4. LWOB materials finished, some research for LWO2. Unit tests are working again. Added makefile and project workspace for xcode3 (from Andrew, too).

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@110 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/1/head
aramis_acg 2008-08-13 23:46:46 +00:00
parent 0148d06678
commit f13edd8acf
24 changed files with 10063 additions and 270 deletions

View File

@ -50,6 +50,7 @@ namespace Assimp
{
class IOSystem;
class Importer;
// ---------------------------------------------------------------------------
/** Simple exception class to be thrown if an error occurs while importing. */

View File

@ -50,6 +50,8 @@ struct aiScene;
namespace Assimp
{
class Importer;
// ---------------------------------------------------------------------------
/** The BaseProcess defines a common interface for all post processing steps.
* A post processing step is run after a successful import if the caller

View File

@ -576,7 +576,7 @@ void AddNodeWeight(unsigned int& iScene,const aiNode* pcNode)
// Get the memory requirements of the scene
void Importer::GetMemoryRequirements(aiMemoryInfo& in) const
{
in.aiMemoryInfo::aiMemoryInfo();
in = aiMemoryInfo();
if (!this->mScene)return;
in.total = sizeof(aiScene);

View File

@ -301,7 +301,8 @@ struct Surface
, mSpecularValue (1.0f)
, mTransparency (0.0f)
, mGlossiness (0.0f)
, mMaximumSmoothAngle (90.0f)
, mLuminosity (0.0f)
, mMaximumSmoothAngle (0.0f) // 0 == not specified
{}
//! Name of the surface
@ -314,7 +315,7 @@ struct Surface
bool bDoubleSided;
//! Various material parameters
float mDiffuseValue,mSpecularValue,mTransparency,mGlossiness;
float mDiffuseValue,mSpecularValue,mTransparency,mGlossiness,mLuminosity;
//! Maximum angle between two adjacent triangles
//! that they can be smoothed - in degrees

View File

@ -213,7 +213,8 @@ void LWOImporter::InternReadFile( const std::string& pFile,
// generate the mesh
aiMesh* mesh = pScene->mMeshes[p] = new aiMesh();
mesh->mNumFaces = sorted.size();
mesh->mMaxSmoothingAngle = AI_DEG_TO_RAD((*mSurfaces)[i].mMaximumSmoothAngle);
if ((*mSurfaces)[i].mMaximumSmoothAngle)
mesh->mMaxSmoothingAngle = AI_DEG_TO_RAD((*mSurfaces)[i].mMaximumSmoothAngle);
for (SortedRep::const_iterator it = sorted.begin(), end = sorted.end();
it != end;++it)
@ -261,56 +262,6 @@ void LWOImporter::InternReadFile( const std::string& pFile,
p->mMeshes[i] = i;
}
// ------------------------------------------------------------------------------------------------
void LWOImporter::ConvertMaterial(const LWO::Surface& surf,MaterialHelper* pcMat)
{
// copy the name of the surface
aiString st;
st.Set(surf.mName);
pcMat->AddProperty(&st,AI_MATKEY_NAME);
int i = surf.bDoubleSided ? 1 : 0;
pcMat->AddProperty<int>(&i,1,AI_MATKEY_TWOSIDED);
if (surf.mSpecularValue && surf.mGlossiness)
{
// this is only an assumption, needs to be confirmed.
// the values have been tweaked by hand and seem to be correct.
float fGloss;
if (mIsLWO2)fGloss = surf.mGlossiness * 0.8f;
else
{
if (16.0f >= surf.mGlossiness)fGloss = 6.0f;
else if (64.0f >= surf.mGlossiness)fGloss = 20.0f;
else if (256.0f >= surf.mGlossiness)fGloss = 50.0f;
else fGloss = 80.0f;
}
pcMat->AddProperty<float>(&surf.mSpecularValue,1,AI_MATKEY_SHININESS_STRENGTH);
pcMat->AddProperty<float>(&fGloss,1,AI_MATKEY_SHININESS);
}
// (the diffuse value is just a scaling factor)
aiColor3D clr = surf.mColor;
clr.r *= surf.mDiffuseValue;
clr.g *= surf.mDiffuseValue;
clr.b *= surf.mDiffuseValue;
pcMat->AddProperty<aiColor3D>(&surf.mColor,1,AI_MATKEY_COLOR_DIFFUSE);
// specular color
clr.r = surf.mSpecularValue;
clr.g = surf.mSpecularValue;
clr.b = surf.mSpecularValue;
pcMat->AddProperty<aiColor3D>(&surf.mColor,1,AI_MATKEY_COLOR_SPECULAR);
// opacity
float f = 1.0f-surf.mTransparency;
pcMat->AddProperty<float>(&f,1,AI_MATKEY_OPACITY);
// now handle all textures ...
// TODO
}
// ------------------------------------------------------------------------------------------------
void LWOImporter::CountVertsAndFaces(unsigned int& verts, unsigned int& faces,
LE_NCONST uint16_t*& cursor, const uint16_t* const end, unsigned int max)
@ -400,7 +351,7 @@ void LWOImporter::ParseString(std::string& out,unsigned int max)
}
++in;
}
unsigned int len = unsigned int (in-sz);
unsigned int len = (unsigned int) (in-sz);
out = std::string(sz,len);
}
@ -424,7 +375,7 @@ void LWOImporter::LoadLWOTags(unsigned int size)
{
if (!(*szCur))
{
const unsigned int len = unsigned int(szCur-szLast);
const unsigned int len = (unsigned int)(szCur-szLast);
mTags->push_back(std::string(szLast,len));
szCur += len & 1;
szLast = szCur;

View File

@ -58,6 +58,60 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using namespace Assimp;
// ------------------------------------------------------------------------------------------------
void LWOImporter::ConvertMaterial(const LWO::Surface& surf,MaterialHelper* pcMat)
{
// copy the name of the surface
aiString st;
st.Set(surf.mName);
pcMat->AddProperty(&st,AI_MATKEY_NAME);
int i = surf.bDoubleSided ? 1 : 0;
pcMat->AddProperty<int>(&i,1,AI_MATKEY_TWOSIDED);
if (surf.mSpecularValue && surf.mGlossiness)
{
// this is only an assumption, needs to be confirmed.
// the values have been tweaked by hand and seem to be correct.
float fGloss;
if (mIsLWO2)fGloss = surf.mGlossiness * 0.8f;
else
{
if (16.0f >= surf.mGlossiness)fGloss = 6.0f;
else if (64.0f >= surf.mGlossiness)fGloss = 20.0f;
else if (256.0f >= surf.mGlossiness)fGloss = 50.0f;
else fGloss = 80.0f;
}
pcMat->AddProperty<float>(&surf.mSpecularValue,1,AI_MATKEY_SHININESS_STRENGTH);
pcMat->AddProperty<float>(&fGloss,1,AI_MATKEY_SHININESS);
}
// (the diffuse value is just a scaling factor)
aiColor3D clr = surf.mColor;
clr.r *= surf.mDiffuseValue;
clr.g *= surf.mDiffuseValue;
clr.b *= surf.mDiffuseValue;
pcMat->AddProperty<aiColor3D>(&clr,1,AI_MATKEY_COLOR_DIFFUSE);
// specular color
clr.b = clr.g = clr.r = surf.mSpecularValue;
pcMat->AddProperty<aiColor3D>(&clr,1,AI_MATKEY_COLOR_SPECULAR);
// emissive color
// (luminosity is not really the same but it affects the surface in
// a similar way. However, some scalings seems to be necessary)
clr.g = clr.b = clr.r = surf.mLuminosity*0.8f;
pcMat->AddProperty<aiColor3D>(&clr,1,AI_MATKEY_COLOR_EMISSIVE);
// opacity
float f = 1.0f-surf.mTransparency;
pcMat->AddProperty<float>(&f,1,AI_MATKEY_OPACITY);
// now handle all textures ...
// TODO
}
// ------------------------------------------------------------------------------------------------
void LWOImporter::LoadLWOBSurface(unsigned int size)
{
@ -89,7 +143,7 @@ void LWOImporter::LoadLWOBSurface(unsigned int size)
LE_NCONST uint8_t* const next = mFileBuffer+head_length;
switch (head_type)
{
// diffuse color
// diffuse color
case AI_LWO_COLR:
{
AI_LWO_VALIDATE_CHUNK_LENGTH(head_length,COLR,3);
@ -98,7 +152,7 @@ void LWOImporter::LoadLWOBSurface(unsigned int size)
surf.mColor.b = *mFileBuffer / 255.0f;
break;
}
// diffuse strength ... hopefully
// diffuse strength ...
case AI_LWO_DIFF:
{
AI_LWO_VALIDATE_CHUNK_LENGTH(head_length,DIFF,2);
@ -106,7 +160,7 @@ void LWOImporter::LoadLWOBSurface(unsigned int size)
surf.mDiffuseValue = *((int16_t*)mFileBuffer) / 255.0f;
break;
}
// specular strength ... hopefully
// specular strength ...
case AI_LWO_SPEC:
{
AI_LWO_VALIDATE_CHUNK_LENGTH(head_length,SPEC,2);
@ -114,6 +168,14 @@ void LWOImporter::LoadLWOBSurface(unsigned int size)
surf.mSpecularValue = *((int16_t*)mFileBuffer) / 255.0f;
break;
}
// luminosity ...
case AI_LWO_LUMI:
{
AI_LWO_VALIDATE_CHUNK_LENGTH(head_length,LUMI,2);
AI_LSWAP2P(mFileBuffer);
surf.mLuminosity = *((int16_t*)mFileBuffer) / 255.0f;
break;
}
// transparency
case AI_LWO_TRAN:
{

View File

@ -59,6 +59,7 @@ using namespace Assimp;
// Constructor to be privately used by Importer
LimitBoneWeightsProcess::LimitBoneWeightsProcess()
{
mMaxWeights = AI_LMW_MAX_WEIGHTS;
}
// ------------------------------------------------------------------------------------------------

View File

@ -890,6 +890,13 @@ void SMDImporter::ParseSkeletonSection(const char* szCurrent,
}
*szCurrentOut = szCurrent;
}
#define SMDI_PARSE_RETURN { \
SkipLine(szCurrent,&szCurrent); \
*szCurrentOut = szCurrent; \
return; \
}
// ------------------------------------------------------------------------------------------------
// Parse a node line
void SMDImporter::ParseNodeInfo(const char* szCurrent,
@ -900,7 +907,7 @@ void SMDImporter::ParseNodeInfo(const char* szCurrent,
if(!this->ParseUnsignedInt(szCurrent,&szCurrent,iBone) || !SkipSpaces(szCurrent,&szCurrent))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone index");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
// add our bone to the list
if (iBone >= this->asBones.size())this->asBones.resize(iBone+1);
@ -932,7 +939,7 @@ void SMDImporter::ParseNodeInfo(const char* szCurrent,
else if (!(*szEnd))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone name");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
++szEnd;
}
@ -943,13 +950,11 @@ void SMDImporter::ParseNodeInfo(const char* szCurrent,
if(!this->ParseSignedInt(szCurrent,&szCurrent,(int&)bone.iParent))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone parent index. Assuming -1");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
// go to the beginning of the next line
__RETURN:
SkipLine(szCurrent,&szCurrent);
*szCurrentOut = szCurrent;
SMDI_PARSE_RETURN;
}
// ------------------------------------------------------------------------------------------------
// Parse a skeleton element
@ -963,12 +968,12 @@ void SMDImporter::ParseSkeletonElement(const char* szCurrent,
if(!this->ParseUnsignedInt(szCurrent,&szCurrent,iBone))
{
DefaultLogger::get()->error("Unexpected EOF/EOL while parsing bone index");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if (iBone >= this->asBones.size())
{
this->LogErrorNoThrow("Bone index in skeleton section is out of range");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
SMD::Bone& bone = this->asBones[iBone];
@ -979,32 +984,32 @@ void SMDImporter::ParseSkeletonElement(const char* szCurrent,
if(!this->ParseFloat(szCurrent,&szCurrent,vPos.x))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone.pos.x");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vPos.y))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone.pos.y");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vPos.z))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone.pos.z");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vRot.x))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone.rot.x");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vRot.y))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone.rot.y");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vRot.z))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing bone.rot.z");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
// build the transformation matrix of the key
key.matrix.FromEulerAngles(vRot.x,vRot.y,vRot.z);
@ -1017,9 +1022,7 @@ void SMDImporter::ParseSkeletonElement(const char* szCurrent,
}
// go to the beginning of the next line
__RETURN:
SkipLine(szCurrent,&szCurrent);
*szCurrentOut = szCurrent;
SMDI_PARSE_RETURN;
}
// ------------------------------------------------------------------------------------------------
// Parse a triangle
@ -1108,69 +1111,66 @@ void SMDImporter::ParseVertex(const char* szCurrent,
if(!this->ParseSignedInt(szCurrent,&szCurrent,(int32_t&)vertex.iParentNode))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.parent");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.pos.x))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.pos.x");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.pos.y))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.pos.y");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.pos.z))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.pos.z");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.nor.x))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.nor.x");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.nor.y))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.nor.y");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.nor.z))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.nor.z");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if (bVASection)goto __RETURN;
if (bVASection)SMDI_PARSE_RETURN;
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.uv.x))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.uv.x");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
if(!this->ParseFloat(szCurrent,&szCurrent,vertex.uv.y))
{
this->LogErrorNoThrow("Unexpected EOF/EOL while parsing vertex.uv.y");
goto __RETURN; // YEAH!!!
SMDI_PARSE_RETURN;
}
// now read the number of bones affecting this vertex
// all elements from now are fully optional, we don't need them
unsigned int iSize = 0;
if(!this->ParseUnsignedInt(szCurrent,&szCurrent,iSize))goto __RETURN;
if(!this->ParseUnsignedInt(szCurrent,&szCurrent,iSize))SMDI_PARSE_RETURN;
vertex.aiBoneLinks.resize(iSize,std::pair<unsigned int, float>(-1,0.0f));
for (std::vector<std::pair<unsigned int, float> >::iterator
i = vertex.aiBoneLinks.begin();
i != vertex.aiBoneLinks.end();++i)
{
if(!this->ParseUnsignedInt(szCurrent,&szCurrent,(*i).first))goto __RETURN;
if(!this->ParseFloat(szCurrent,&szCurrent,(*i).second))goto __RETURN;
if(!this->ParseUnsignedInt(szCurrent,&szCurrent,(*i).first))SMDI_PARSE_RETURN;
if(!this->ParseFloat(szCurrent,&szCurrent,(*i).second))SMDI_PARSE_RETURN;
}
// go to the beginning of the next line
__RETURN:
SkipLine(szCurrent,&szCurrent);
*szCurrentOut = szCurrent;
return;
SMDI_PARSE_RETURN;
}

View File

@ -182,7 +182,7 @@ void STLImporter::LoadASCIIFile()
unsigned int temp;
// setup the name of the node
if (temp = unsigned int(sz-szMe))
if (temp = (unsigned int)(sz-szMe))
{
pScene->mRootNode->mName.length = temp;
::memcpy(pScene->mRootNode->mName.data,szMe,temp);
@ -213,9 +213,9 @@ void STLImporter::LoadASCIIFile()
if (pMesh->mNumFaces == curFace)
{
// need to resize the arrays, our size estimate was wrong
unsigned int iNeededSize = unsigned int(sz-mBuffer) / pMesh->mNumFaces;
unsigned int iNeededSize = (unsigned int)(sz-mBuffer) / pMesh->mNumFaces;
if (iNeededSize <= 160)iNeededSize >>= 1; // prevent endless looping
unsigned int add = unsigned int((mBuffer+fileSize)-sz) / iNeededSize;
unsigned int add = (unsigned int)((mBuffer+fileSize)-sz) / iNeededSize;
add += add >> 3; // add 12.5% as buffer
iNeededSize = (pMesh->mNumFaces + add)*3;
aiVector3D* pv = new aiVector3D[iNeededSize];

View File

@ -51,17 +51,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using namespace Assimp;
// ------------------------------------------------------------------------------------------------
SplitLargeMeshesProcess_Triangle::SplitLargeMeshesProcess_Triangle()
{
// nothing to do here
}
{
LIMIT = AI_SLM_DEFAULT_MAX_TRIANGLES;
}
// ------------------------------------------------------------------------------------------------
SplitLargeMeshesProcess_Triangle::~SplitLargeMeshesProcess_Triangle()
{
{
// nothing to do here
}
}
// ------------------------------------------------------------------------------------------------
// Returns whether the processing step is present in the given flag field.
bool SplitLargeMeshesProcess_Triangle::IsActive( unsigned int pFlags) const
@ -327,14 +326,14 @@ void SplitLargeMeshesProcess_Triangle::SplitMesh(
}
// ------------------------------------------------------------------------------------------------
SplitLargeMeshesProcess_Vertex::SplitLargeMeshesProcess_Vertex()
{
// nothing to do here
}
{
LIMIT = AI_SLM_DEFAULT_MAX_VERTICES;
}
// ------------------------------------------------------------------------------------------------
SplitLargeMeshesProcess_Vertex::~SplitLargeMeshesProcess_Vertex()
{
{
// nothing to do here
}
}
// ------------------------------------------------------------------------------------------------
// Returns whether the processing step is present in the given flag field.
bool SplitLargeMeshesProcess_Vertex::IsActive( unsigned int pFlags) const

View File

@ -113,6 +113,14 @@ public:
virtual void SetupProperties(const Importer* pImp);
//! Set the split limit - needed for unit testing
inline void SetLimit(unsigned int l)
{LIMIT = l;}
//! Get the split limit
inline unsigned int GetLimit() const
{return LIMIT;}
protected:
// -------------------------------------------------------------------
@ -173,6 +181,15 @@ public:
*/
virtual void SetupProperties(const Importer* pImp);
//! Set the split limit - needed for unit testing
inline void SetLimit(unsigned int l)
{LIMIT = l;}
//! Get the split limit
inline unsigned int GetLimit() const
{return LIMIT;}
protected:
// -------------------------------------------------------------------

View File

@ -65,6 +65,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using namespace Assimp;
#if _MSC_VER >= 1400
# define vsprintf vsprintf_s
# define sprintf sprintf_s
#endif
// ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer
ValidateDSProcess::ValidateDSProcess()
@ -96,11 +101,7 @@ void ValidateDSProcess::ReportError(const char* msg,...)
char szBuffer[3000];
int iLen;
#if _MSC_VER >= 1400
iLen = vsprintf_s(szBuffer,msg,args);
#else
iLen = vsprintf(szBuffer,msg,args);
#endif
if (0 >= iLen)
{
@ -122,11 +123,7 @@ void ValidateDSProcess::ReportWarning(const char* msg,...)
char szBuffer[3000];
int iLen;
#if _MSC_VER >= 1400
iLen = vsprintf_s(szBuffer,msg,args);
#else
iLen = vsprintf(szBuffer,msg,args);
#endif
if (0 >= iLen)
{
@ -456,11 +453,7 @@ void ValidateDSProcess::SearchForInvalidTextures(const aiMaterial* pMaterial,
// "$tex.file.<szType>[<index>]"
char szBaseBuf[512];
int iLen;
#if _MSC_VER >= 1400
iLen = ::sprintf_s(szBaseBuf,"$tex.file.%s",szType);
#else
iLen = ::sprintf(szBaseBuf,"$tex.file.%s",szType);
#endif
if (0 >= iLen)return;
int iNumIndices = 0;
@ -474,7 +467,7 @@ void ValidateDSProcess::SearchForInvalidTextures(const aiMaterial* pMaterial,
if (*sz)
{
++sz;
iIndex = std::max(iIndex, (int)strtol10(sz,NULL));
iIndex = std::max(iIndex, (int)strtol10(sz,0));
++iNumIndices;
}
@ -489,11 +482,7 @@ void ValidateDSProcess::SearchForInvalidTextures(const aiMaterial* pMaterial,
}
// now check whether all UV indices are valid ...
#if _MSC_VER >= 1400
iLen = ::sprintf_s(szBaseBuf,"$tex.uvw.%s",szType);
#else
iLen = ::sprintf(szBaseBuf,"$tex.uvw.%s",szType);
#endif
if (0 >= iLen)return;
for (unsigned int i = 0; i < pMaterial->mNumProperties;++i)

View File

@ -1,8 +1,16 @@
// Copyright (C) 2002-2007 Nikolaus Gebhardt
// This file is part of the "Irrlicht Engine" and the "irrXML" project.
// For conditions of distribution and use, see copyright notice in irrlicht.h and irrXML.h
// ------------------------------------------------------------------------------------
// Original description: (Schrompf)
// Adapted to the ASSIMP library because the builtin atof indeed takes AGES to parse a
// float inside a large string. Before parsing, it does a strlen on the given point.
// Changes:
// 22nd October 08 (Aramis_acg): Added temporary cast to double, added strtol10_64
// to ensure long numbers are handled correctly
// ------------------------------------------------------------------------------------
#ifndef __FAST_A_TO_F_H_INCLUDED__
#define __FAST_A_TO_F_H_INCLUDED__
@ -31,6 +39,8 @@ const float fast_atof_table[16] = { // we write [16] here instead of [] to work
0.000000000000001f
};
// ------------------------------------------------------------------------------------
inline unsigned int strtol10( const char* in, const char** out=0)
{
unsigned int value = 0;
@ -49,6 +59,7 @@ inline unsigned int strtol10( const char* in, const char** out=0)
}
// ------------------------------------------------------------------------------------
// specal version of the function, providing higher accuracy
inline uint64_t strtol10_64( const char* in, const char** out=0)
{
@ -67,6 +78,8 @@ inline uint64_t strtol10_64( const char* in, const char** out=0)
return value;
}
// ------------------------------------------------------------------------------------
//! Provides a fast function for converting a string into a float,
//! about 6 times faster than atof in win32.
// If you find any bugs, please send them to me, niko (at) irrlicht3d.org.
@ -127,6 +140,8 @@ inline const char* fast_atof_move( const char* c, float& out)
return c;
}
// ------------------------------------------------------------------------------------
inline float fast_atof(const char* c)
{
float ret;

72
code/makefile 100644
View File

@ -0,0 +1,72 @@
#rough makefile for linux/gnu systems. requires that boost libs are installed
#produces shared library output in bin/libassimp.so
SOURCES = \
3DSConverter.cpp \
3DSGenNormals.cpp \
3DSLoader.cpp \
3DSSpatialSort.cpp \
aiAssert.cpp \
ASELoader.cpp \
ASEParser.cpp \
Assimp.cpp \
BaseImporter.cpp \
BaseProcess.cpp \
CalcTangentsProcess.cpp \
ConvertToLHProcess.cpp \
DefaultIOStream.cpp \
DefaultIOSystem.cpp \
DefaultLogger.cpp \
extra/MakeVerboseFormat.cpp \
FixNormalsStep.cpp \
GenFaceNormalsProcess.cpp \
GenVertexNormalsProcess.cpp \
HMPLoader.cpp \
Importer.cpp \
ImproveCacheLocality.cpp \
JoinVerticesProcess.cpp \
KillNormalsProcess.cpp \
LimitBoneWeightsProcess.cpp \
LWOMaterial.cpp \
LWOLoader.cpp \
MaterialSystem.cpp \
MD2Loader.cpp \
MD3Loader.cpp \
MD5Loader.cpp \
MD5Parser.cpp \
MDCLoader.cpp \
MDLLoader.cpp \
MDLMaterialLoader.cpp \
ObjFileImporter.cpp \
ObjFileMtlImporter.cpp \
ObjFileParser.cpp \
PlyLoader.cpp \
PlyParser.cpp \
PretransformVertices.cpp \
RemoveComments.cpp \
RemoveRedundantMaterials.cpp \
SMDLoader.cpp \
SpatialSort.cpp \
SplitLargeMeshes.cpp \
STLLoader.cpp \
TextureTransform.cpp \
TriangulateProcess.cpp \
ValidateDataStructure.cpp \
VertexTriangleAdjacency.cpp \
XFileImporter.cpp \
XFileParser.cpp
OBJECTS = $(SOURCES:.cpp=.o)
TARGET = ../bin/libassimp.so
all: $(TARGET)
$(TARGET): $(OBJECTS)
gcc -o $@ $(OBJECTS) -shared -lstdc++ -lboost_thread-mt -lboost_date_time-mt
%.o:%.cpp
$(CXX) -g -Wall -c $? -o $@ -I../include -fPIC
clean:
rm -f $(OBJECTS) $(TARGET)

View File

@ -67,6 +67,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# define ASSIMP_API
# endif
#else
# define ASSIMP_API
#endif // (defined _MSC_VER)
#ifdef __cplusplus

View File

@ -72,7 +72,7 @@ inline aiReturn aiMaterial::Get(const char* pKey,Type* pOut,
if (prop->mDataLength < sizeof(Type)*iNum)return AI_FAILURE;
if (strcmp(prop->mData,(char*)aiPTI_Buffer)!=0)return AI_FAILURE;
iNum = std::min(iNum,prop->mDataLength / sizeof(Type));
iNum = std::min((size_t)iNum,prop->mDataLength / sizeof(Type));
::memcpy(pOut,prop->mData,iNum * sizeof(Type));
if (pMax)*pMax = iNum;
}

View File

@ -47,6 +47,7 @@ inline aiMatrix3x3& aiMatrix3x3::Transpose()
std::swap( a2, b1);
std::swap( a3, c1);
std::swap( b3, c2);
return *this;
}

View File

@ -253,7 +253,7 @@ inline aiMatrix4x4& aiMatrix4x4::RotationX(float a, aiMatrix4x4& out)
M = | 0 cos(A) -sin(A) 0 |
| 0 sin(A) cos(A) 0 |
| 0 0 0 1 | */
out.aiMatrix4x4::aiMatrix4x4();
out = aiMatrix4x4();
out.b2 = out.c3 = cos(a);
out.b3 = -(out.c2 = sin(a));
return out;
@ -267,7 +267,7 @@ inline aiMatrix4x4& aiMatrix4x4::RotationY(float a, aiMatrix4x4& out)
| -sin(A) 0 cos(A) 0 |
| 0 0 0 1 |
*/
out.aiMatrix4x4::aiMatrix4x4();
out = aiMatrix4x4();
out.a1 = out.c3 = cos(a);
out.c1 = -(out.a3 = sin(a));
return out;
@ -281,7 +281,7 @@ inline aiMatrix4x4& aiMatrix4x4::RotationZ(float a, aiMatrix4x4& out)
M = | sin(A) cos(A) 0 0 |
| 0 0 1 0 |
| 0 0 0 1 | */
out.aiMatrix4x4::aiMatrix4x4();
out = aiMatrix4x4();
out.a1 = out.b2 = cos(a);
out.a2 = -(out.b1 = sin(a));
return out;
@ -289,7 +289,7 @@ inline aiMatrix4x4& aiMatrix4x4::RotationZ(float a, aiMatrix4x4& out)
// ---------------------------------------------------------------------------
inline aiMatrix4x4& aiMatrix4x4::Translation(aiVector3D v, aiMatrix4x4& out)
{
out.aiMatrix4x4::aiMatrix4x4();
out = aiMatrix4x4();
out.d1 = v.x;
out.d2 = v.y;
out.d3 = v.z;

View File

@ -55,6 +55,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "aiTypes.h"
#include "aiConfig.h"
namespace Assimp
{
class Importer;
};
// internal ASSIMP headers - for plugin development
#include "./../code/BaseImporter.h"
#include "./../code/BaseProcess.h"

File diff suppressed because it is too large Load Diff

View File

@ -59,6 +59,15 @@ void RemoveRedundantMatsTest :: setUp (void)
this->pcScene1->mMaterials[1] = getUniqueMaterial2();
this->pcScene1->mMaterials[4] = getUniqueMaterial3();
// all materials must be referenced
this->pcScene1->mNumMeshes = 5;
this->pcScene1->mMeshes = new aiMesh*[5];
for (unsigned int i = 0; i < 5;++i)
{
this->pcScene1->mMeshes[i] = new aiMesh();
this->pcScene1->mMeshes[i]->mMaterialIndex = i;
}
// setup an unique name for each material - this shouldn't care
aiString mTemp;
mTemp.length = 1;

View File

@ -6,13 +6,13 @@ CPPUNIT_TEST_SUITE_REGISTRATION (SplitLargeMeshesTest);
void SplitLargeMeshesTest :: setUp (void)
{
aiSetVertexSplitLimit(1000);
aiSetTriangleSplitLimit(1000);
// construct the processes
this->piProcessTriangle = new SplitLargeMeshesProcess_Triangle();
this->piProcessVertex = new SplitLargeMeshesProcess_Vertex();
this->piProcessTriangle->SetLimit(1000);
this->piProcessVertex->SetLimit(1000);
this->pcMesh1 = new aiMesh();
pcMesh1->mNumVertices = 2100; // quersumme: 3
pcMesh1->mVertices = new aiVector3D[pcMesh1->mNumVertices];
@ -47,9 +47,9 @@ void SplitLargeMeshesTest :: setUp (void)
aiFace& face = pcMesh2->mFaces[i];
face.mNumIndices = 3;
face.mIndices = new unsigned int[3];
face.mIndices[0] = unsigned int((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices);
face.mIndices[1] = unsigned int((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices);
face.mIndices[2] = unsigned int((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices);
face.mIndices[0] = (unsigned int)((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices);
face.mIndices[1] = (unsigned int)((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices);
face.mIndices[2] = (unsigned int)((rand() / (float)RAND_MAX) * pcMesh2->mNumVertices);
}
}

View File

@ -27,8 +27,8 @@ void VTAdjacency :: setUp (void)
face.mIndices[0] = iCurrent++;
while(face.mIndices[0] == ( face.mIndices[1] = unsigned int(((float)rand()/RAND_MAX)*499)));
while(face.mIndices[0] == ( face.mIndices[2] = unsigned int(((float)rand()/RAND_MAX)*499)) ||
while(face.mIndices[0] == ( face.mIndices[1] = (unsigned int)(((float)rand()/RAND_MAX)*499)));
while(face.mIndices[0] == ( face.mIndices[2] = (unsigned int)(((float)rand()/RAND_MAX)*499)) ||
face.mIndices[1] == face.mIndices[2]);
}

View File

@ -0,0 +1,998 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 44;
objects = {
/* Begin PBXBuildFile section */
3AB8A3A20E50D3E400606590 /* NullLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3A10E50D3E400606590 /* NullLogger.h */; };
3AB8A3A40E50D40300606590 /* aiConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3A30E50D40300606590 /* aiConfig.h */; };
3AB8A3AF0E50D67A00606590 /* MDCFileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3AB0E50D67A00606590 /* MDCFileData.h */; };
3AB8A3B00E50D67A00606590 /* MDCLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB8A3AC0E50D67A00606590 /* MDCLoader.cpp */; };
3AB8A3B10E50D67A00606590 /* MDCLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3AD0E50D67A00606590 /* MDCLoader.h */; };
3AB8A3B20E50D67A00606590 /* MDCNormalTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3AE0E50D67A00606590 /* MDCNormalTable.h */; };
3AB8A3B50E50D69D00606590 /* FixNormalsStep.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB8A3B30E50D69D00606590 /* FixNormalsStep.cpp */; };
3AB8A3B60E50D69D00606590 /* FixNormalsStep.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3B40E50D69D00606590 /* FixNormalsStep.h */; };
3AB8A3BA0E50D6DB00606590 /* LWOFileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3B70E50D6DB00606590 /* LWOFileData.h */; };
3AB8A3BB0E50D6DB00606590 /* LWOLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB8A3B80E50D6DB00606590 /* LWOLoader.cpp */; };
3AB8A3BC0E50D6DB00606590 /* LWOLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3B90E50D6DB00606590 /* LWOLoader.h */; };
3AB8A3C10E50D71600606590 /* poppack1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3BF0E50D71600606590 /* poppack1.h */; };
3AB8A3C20E50D71600606590 /* pushpack1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3C00E50D71600606590 /* pushpack1.h */; };
3AB8A3C40E50D74500606590 /* BaseProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB8A3C30E50D74500606590 /* BaseProcess.cpp */; };
3AB8A3C60E50D77900606590 /* HMPFileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3C50E50D77900606590 /* HMPFileData.h */; };
3AB8A3C80E50D7A600606590 /* MD4FileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3C70E50D7A600606590 /* MD4FileData.h */; };
3AB8A3CA0E50D7CC00606590 /* IFF.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3C90E50D7CC00606590 /* IFF.h */; };
3AB8A3CD0E50D7FF00606590 /* Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3CB0E50D7FF00606590 /* Hash.h */; };
3AB8A3CE0E50D7FF00606590 /* MDRFileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB8A3CC0E50D7FF00606590 /* MDRFileData.h */; };
3AB8A7DD0E53715F00606590 /* LWOMaterial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB8A7DC0E53715F00606590 /* LWOMaterial.cpp */; };
3AB8A7E10E53724500606590 /* libboost_date_time-mt-1_35.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AB8A7E00E53724500606590 /* libboost_date_time-mt-1_35.dylib */; };
3AB8A7E30E53726500606590 /* libboost_thread-mt-1_35.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AB8A7E20E53726500606590 /* libboost_thread-mt-1_35.dylib */; };
3AF45A6F0E4B715000207D74 /* aiAnim.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A530E4B715000207D74 /* aiAnim.h */; };
3AF45A700E4B715000207D74 /* aiAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A540E4B715000207D74 /* aiAssert.h */; };
3AF45A710E4B715000207D74 /* aiDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A550E4B715000207D74 /* aiDefines.h */; };
3AF45A720E4B715000207D74 /* aiFileIO.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A560E4B715000207D74 /* aiFileIO.h */; };
3AF45A730E4B715000207D74 /* aiMaterial.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A570E4B715000207D74 /* aiMaterial.h */; };
3AF45A740E4B715000207D74 /* aiMatrix3x3.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A590E4B715000207D74 /* aiMatrix3x3.h */; };
3AF45A750E4B715000207D74 /* aiMatrix4x4.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A5B0E4B715000207D74 /* aiMatrix4x4.h */; };
3AF45A760E4B715000207D74 /* aiMesh.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A5D0E4B715000207D74 /* aiMesh.h */; };
3AF45A770E4B715000207D74 /* aiPostProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A5E0E4B715000207D74 /* aiPostProcess.h */; };
3AF45A780E4B715000207D74 /* aiQuaternion.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A5F0E4B715000207D74 /* aiQuaternion.h */; };
3AF45A790E4B715000207D74 /* aiScene.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A600E4B715000207D74 /* aiScene.h */; };
3AF45A7A0E4B715000207D74 /* aiTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A610E4B715000207D74 /* aiTexture.h */; };
3AF45A7B0E4B715000207D74 /* aiTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A620E4B715000207D74 /* aiTypes.h */; };
3AF45A7C0E4B715000207D74 /* aiVector3D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A630E4B715000207D74 /* aiVector3D.h */; };
3AF45A7D0E4B715000207D74 /* assimp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A650E4B715000207D74 /* assimp.h */; };
3AF45A7E0E4B715000207D74 /* assimp.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A660E4B715000207D74 /* assimp.hpp */; };
3AF45A800E4B715000207D74 /* DefaultLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A6A0E4B715000207D74 /* DefaultLogger.h */; };
3AF45A810E4B715000207D74 /* IOStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A6B0E4B715000207D74 /* IOStream.h */; };
3AF45A820E4B715000207D74 /* IOSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A6C0E4B715000207D74 /* IOSystem.h */; };
3AF45A830E4B715000207D74 /* Logger.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A6D0E4B715000207D74 /* Logger.h */; };
3AF45A840E4B715000207D74 /* LogStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A6E0E4B715000207D74 /* LogStream.h */; };
3AF45AF90E4B716800207D74 /* 3DSConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A860E4B716800207D74 /* 3DSConverter.cpp */; };
3AF45AFA0E4B716800207D74 /* 3DSGenNormals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A870E4B716800207D74 /* 3DSGenNormals.cpp */; };
3AF45AFB0E4B716800207D74 /* 3DSHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A880E4B716800207D74 /* 3DSHelper.h */; };
3AF45AFC0E4B716800207D74 /* 3DSLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A890E4B716800207D74 /* 3DSLoader.cpp */; };
3AF45AFD0E4B716800207D74 /* 3DSLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A8A0E4B716800207D74 /* 3DSLoader.h */; };
3AF45AFE0E4B716800207D74 /* 3DSSpatialSort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A8B0E4B716800207D74 /* 3DSSpatialSort.cpp */; };
3AF45AFF0E4B716800207D74 /* 3DSSpatialSort.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A8C0E4B716800207D74 /* 3DSSpatialSort.h */; };
3AF45B000E4B716800207D74 /* aiAssert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A8D0E4B716800207D74 /* aiAssert.cpp */; };
3AF45B010E4B716800207D74 /* ASELoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A8E0E4B716800207D74 /* ASELoader.cpp */; };
3AF45B020E4B716800207D74 /* ASELoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A8F0E4B716800207D74 /* ASELoader.h */; };
3AF45B030E4B716800207D74 /* ASEParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A900E4B716800207D74 /* ASEParser.cpp */; };
3AF45B040E4B716800207D74 /* ASEParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A910E4B716800207D74 /* ASEParser.h */; };
3AF45B050E4B716800207D74 /* Assimp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A920E4B716800207D74 /* Assimp.cpp */; };
3AF45B060E4B716800207D74 /* BaseImporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A930E4B716800207D74 /* BaseImporter.cpp */; };
3AF45B070E4B716800207D74 /* BaseImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A940E4B716800207D74 /* BaseImporter.h */; };
3AF45B080E4B716800207D74 /* BaseProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A950E4B716800207D74 /* BaseProcess.h */; };
3AF45B090E4B716800207D74 /* ByteSwap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A960E4B716800207D74 /* ByteSwap.h */; };
3AF45B0A0E4B716800207D74 /* CalcTangentsProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A970E4B716800207D74 /* CalcTangentsProcess.cpp */; };
3AF45B0B0E4B716800207D74 /* CalcTangentsProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A980E4B716800207D74 /* CalcTangentsProcess.h */; };
3AF45B0C0E4B716800207D74 /* ConvertToLHProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A990E4B716800207D74 /* ConvertToLHProcess.cpp */; };
3AF45B0D0E4B716800207D74 /* ConvertToLHProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A9A0E4B716800207D74 /* ConvertToLHProcess.h */; };
3AF45B0E0E4B716800207D74 /* DefaultIOStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A9B0E4B716800207D74 /* DefaultIOStream.cpp */; };
3AF45B0F0E4B716800207D74 /* DefaultIOStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A9C0E4B716800207D74 /* DefaultIOStream.h */; };
3AF45B100E4B716800207D74 /* DefaultIOSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A9D0E4B716800207D74 /* DefaultIOSystem.cpp */; };
3AF45B110E4B716800207D74 /* DefaultIOSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45A9E0E4B716800207D74 /* DefaultIOSystem.h */; };
3AF45B120E4B716800207D74 /* DefaultLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45A9F0E4B716800207D74 /* DefaultLogger.cpp */; };
3AF45B130E4B716800207D74 /* MakeVerboseFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AA10E4B716800207D74 /* MakeVerboseFormat.cpp */; };
3AF45B140E4B716800207D74 /* MakeVerboseFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AA20E4B716800207D74 /* MakeVerboseFormat.h */; };
3AF45B150E4B716800207D74 /* fast_atof.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AA30E4B716800207D74 /* fast_atof.h */; };
3AF45B160E4B716800207D74 /* FileLogStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AA40E4B716800207D74 /* FileLogStream.h */; };
3AF45B170E4B716800207D74 /* GenFaceNormalsProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AA50E4B716800207D74 /* GenFaceNormalsProcess.cpp */; };
3AF45B180E4B716800207D74 /* GenFaceNormalsProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AA60E4B716800207D74 /* GenFaceNormalsProcess.h */; };
3AF45B190E4B716800207D74 /* GenVertexNormalsProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AA70E4B716800207D74 /* GenVertexNormalsProcess.cpp */; };
3AF45B1A0E4B716800207D74 /* GenVertexNormalsProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AA80E4B716800207D74 /* GenVertexNormalsProcess.h */; };
3AF45B1B0E4B716800207D74 /* HalfLifeFileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AA90E4B716800207D74 /* HalfLifeFileData.h */; };
3AF45B1D0E4B716800207D74 /* HMPLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AAB0E4B716800207D74 /* HMPLoader.cpp */; };
3AF45B1E0E4B716800207D74 /* HMPLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AAC0E4B716800207D74 /* HMPLoader.h */; };
3AF45B1F0E4B716800207D74 /* Importer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AAD0E4B716800207D74 /* Importer.cpp */; };
3AF45B200E4B716800207D74 /* ImproveCacheLocality.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AAE0E4B716800207D74 /* ImproveCacheLocality.cpp */; };
3AF45B210E4B716800207D74 /* ImproveCacheLocality.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AAF0E4B716800207D74 /* ImproveCacheLocality.h */; };
3AF45B220E4B716800207D74 /* JoinVerticesProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AB00E4B716800207D74 /* JoinVerticesProcess.cpp */; };
3AF45B230E4B716800207D74 /* JoinVerticesProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AB10E4B716800207D74 /* JoinVerticesProcess.h */; };
3AF45B240E4B716800207D74 /* KillNormalsProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AB20E4B716800207D74 /* KillNormalsProcess.cpp */; };
3AF45B250E4B716800207D74 /* KillNormalsProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AB30E4B716800207D74 /* KillNormalsProcess.h */; };
3AF45B260E4B716800207D74 /* LimitBoneWeightsProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AB40E4B716800207D74 /* LimitBoneWeightsProcess.cpp */; };
3AF45B270E4B716800207D74 /* LimitBoneWeightsProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AB50E4B716800207D74 /* LimitBoneWeightsProcess.h */; };
3AF45B280E4B716800207D74 /* MaterialSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AB60E4B716800207D74 /* MaterialSystem.cpp */; };
3AF45B290E4B716800207D74 /* MaterialSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AB70E4B716800207D74 /* MaterialSystem.h */; };
3AF45B2A0E4B716800207D74 /* MD2FileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AB80E4B716800207D74 /* MD2FileData.h */; };
3AF45B2B0E4B716800207D74 /* MD2Loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AB90E4B716800207D74 /* MD2Loader.cpp */; };
3AF45B2C0E4B716800207D74 /* MD2Loader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ABA0E4B716800207D74 /* MD2Loader.h */; };
3AF45B2D0E4B716800207D74 /* MD2NormalTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ABB0E4B716800207D74 /* MD2NormalTable.h */; };
3AF45B2E0E4B716800207D74 /* MD3FileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ABC0E4B716800207D74 /* MD3FileData.h */; };
3AF45B2F0E4B716800207D74 /* MD3Loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45ABD0E4B716800207D74 /* MD3Loader.cpp */; };
3AF45B300E4B716800207D74 /* MD3Loader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ABE0E4B716800207D74 /* MD3Loader.h */; };
3AF45B340E4B716800207D74 /* MD5Loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AC20E4B716800207D74 /* MD5Loader.cpp */; };
3AF45B350E4B716800207D74 /* MD5Loader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AC30E4B716800207D74 /* MD5Loader.h */; };
3AF45B360E4B716800207D74 /* MD5Parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AC40E4B716800207D74 /* MD5Parser.cpp */; };
3AF45B370E4B716800207D74 /* MD5Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AC50E4B716800207D74 /* MD5Parser.h */; };
3AF45B380E4B716800207D74 /* MDLDefaultColorMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AC60E4B716800207D74 /* MDLDefaultColorMap.h */; };
3AF45B390E4B716800207D74 /* MDLFileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AC70E4B716800207D74 /* MDLFileData.h */; };
3AF45B3A0E4B716800207D74 /* MDLLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AC80E4B716800207D74 /* MDLLoader.cpp */; };
3AF45B3B0E4B716800207D74 /* MDLLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AC90E4B716800207D74 /* MDLLoader.h */; };
3AF45B3C0E4B716800207D74 /* MDLMaterialLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45ACA0E4B716800207D74 /* MDLMaterialLoader.cpp */; };
3AF45B3D0E4B716800207D74 /* ObjFileData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ACB0E4B716800207D74 /* ObjFileData.h */; };
3AF45B3E0E4B716800207D74 /* ObjFileImporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45ACC0E4B716800207D74 /* ObjFileImporter.cpp */; };
3AF45B3F0E4B716800207D74 /* ObjFileImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ACD0E4B716800207D74 /* ObjFileImporter.h */; };
3AF45B400E4B716800207D74 /* ObjFileMtlImporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45ACE0E4B716800207D74 /* ObjFileMtlImporter.cpp */; };
3AF45B410E4B716800207D74 /* ObjFileMtlImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ACF0E4B716800207D74 /* ObjFileMtlImporter.h */; };
3AF45B420E4B716800207D74 /* ObjFileParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AD00E4B716800207D74 /* ObjFileParser.cpp */; };
3AF45B430E4B716800207D74 /* ObjFileParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AD10E4B716800207D74 /* ObjFileParser.h */; };
3AF45B440E4B716800207D74 /* ObjTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AD20E4B716800207D74 /* ObjTools.h */; };
3AF45B450E4B716800207D74 /* ParsingUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AD30E4B716800207D74 /* ParsingUtils.h */; };
3AF45B460E4B716800207D74 /* PlyLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AD40E4B716800207D74 /* PlyLoader.cpp */; };
3AF45B470E4B716800207D74 /* PlyLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AD50E4B716800207D74 /* PlyLoader.h */; };
3AF45B480E4B716800207D74 /* PlyParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AD60E4B716800207D74 /* PlyParser.cpp */; };
3AF45B490E4B716800207D74 /* PlyParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AD70E4B716800207D74 /* PlyParser.h */; };
3AF45B4A0E4B716800207D74 /* PretransformVertices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AD80E4B716800207D74 /* PretransformVertices.cpp */; };
3AF45B4B0E4B716800207D74 /* PretransformVertices.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AD90E4B716800207D74 /* PretransformVertices.h */; };
3AF45B4C0E4B716800207D74 /* qnan.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ADA0E4B716800207D74 /* qnan.h */; };
3AF45B4D0E4B716800207D74 /* RemoveComments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45ADB0E4B716800207D74 /* RemoveComments.cpp */; };
3AF45B4E0E4B716800207D74 /* RemoveComments.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ADC0E4B716800207D74 /* RemoveComments.h */; };
3AF45B4F0E4B716800207D74 /* RemoveRedundantMaterials.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45ADD0E4B716800207D74 /* RemoveRedundantMaterials.cpp */; };
3AF45B500E4B716800207D74 /* RemoveRedundantMaterials.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45ADE0E4B716800207D74 /* RemoveRedundantMaterials.h */; };
3AF45B520E4B716800207D74 /* SMDLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AE20E4B716800207D74 /* SMDLoader.cpp */; };
3AF45B530E4B716800207D74 /* SMDLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AE30E4B716800207D74 /* SMDLoader.h */; };
3AF45B540E4B716800207D74 /* SpatialSort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AE40E4B716800207D74 /* SpatialSort.cpp */; };
3AF45B550E4B716800207D74 /* SpatialSort.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AE50E4B716800207D74 /* SpatialSort.h */; };
3AF45B560E4B716800207D74 /* SplitLargeMeshes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AE60E4B716800207D74 /* SplitLargeMeshes.cpp */; };
3AF45B570E4B716800207D74 /* SplitLargeMeshes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AE70E4B716800207D74 /* SplitLargeMeshes.h */; };
3AF45B580E4B716800207D74 /* STLLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AE80E4B716800207D74 /* STLLoader.cpp */; };
3AF45B590E4B716800207D74 /* STLLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AE90E4B716800207D74 /* STLLoader.h */; };
3AF45B5A0E4B716800207D74 /* StringComparison.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AEA0E4B716800207D74 /* StringComparison.h */; };
3AF45B5B0E4B716800207D74 /* TextureTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AEB0E4B716800207D74 /* TextureTransform.cpp */; };
3AF45B5C0E4B716800207D74 /* TextureTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AEC0E4B716800207D74 /* TextureTransform.h */; };
3AF45B5D0E4B716800207D74 /* TriangulateProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AED0E4B716800207D74 /* TriangulateProcess.cpp */; };
3AF45B5E0E4B716800207D74 /* TriangulateProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AEE0E4B716800207D74 /* TriangulateProcess.h */; };
3AF45B5F0E4B716800207D74 /* ValidateDataStructure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AEF0E4B716800207D74 /* ValidateDataStructure.cpp */; };
3AF45B600E4B716800207D74 /* ValidateDataStructure.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AF00E4B716800207D74 /* ValidateDataStructure.h */; };
3AF45B610E4B716800207D74 /* VertexTriangleAdjacency.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AF10E4B716800207D74 /* VertexTriangleAdjacency.cpp */; };
3AF45B620E4B716800207D74 /* VertexTriangleAdjacency.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AF20E4B716800207D74 /* VertexTriangleAdjacency.h */; };
3AF45B630E4B716800207D74 /* Win32DebugLogStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AF30E4B716800207D74 /* Win32DebugLogStream.h */; };
3AF45B640E4B716800207D74 /* XFileHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AF40E4B716800207D74 /* XFileHelper.h */; };
3AF45B650E4B716800207D74 /* XFileImporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AF50E4B716800207D74 /* XFileImporter.cpp */; };
3AF45B660E4B716800207D74 /* XFileImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AF60E4B716800207D74 /* XFileImporter.h */; };
3AF45B670E4B716800207D74 /* XFileParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF45AF70E4B716800207D74 /* XFileParser.cpp */; };
3AF45B680E4B716800207D74 /* XFileParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AF45AF80E4B716800207D74 /* XFileParser.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
3AB8A3A10E50D3E400606590 /* NullLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NullLogger.h; sourceTree = "<group>"; };
3AB8A3A30E50D40300606590 /* aiConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiConfig.h; sourceTree = "<group>"; };
3AB8A3AB0E50D67A00606590 /* MDCFileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDCFileData.h; sourceTree = "<group>"; };
3AB8A3AC0E50D67A00606590 /* MDCLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MDCLoader.cpp; sourceTree = "<group>"; };
3AB8A3AD0E50D67A00606590 /* MDCLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDCLoader.h; sourceTree = "<group>"; };
3AB8A3AE0E50D67A00606590 /* MDCNormalTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDCNormalTable.h; sourceTree = "<group>"; };
3AB8A3B30E50D69D00606590 /* FixNormalsStep.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FixNormalsStep.cpp; sourceTree = "<group>"; };
3AB8A3B40E50D69D00606590 /* FixNormalsStep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixNormalsStep.h; sourceTree = "<group>"; };
3AB8A3B70E50D6DB00606590 /* LWOFileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LWOFileData.h; sourceTree = "<group>"; };
3AB8A3B80E50D6DB00606590 /* LWOLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LWOLoader.cpp; sourceTree = "<group>"; };
3AB8A3B90E50D6DB00606590 /* LWOLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LWOLoader.h; sourceTree = "<group>"; };
3AB8A3BF0E50D71600606590 /* poppack1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = poppack1.h; sourceTree = "<group>"; };
3AB8A3C00E50D71600606590 /* pushpack1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pushpack1.h; sourceTree = "<group>"; };
3AB8A3C30E50D74500606590 /* BaseProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BaseProcess.cpp; sourceTree = "<group>"; };
3AB8A3C50E50D77900606590 /* HMPFileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMPFileData.h; sourceTree = "<group>"; };
3AB8A3C70E50D7A600606590 /* MD4FileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD4FileData.h; sourceTree = "<group>"; };
3AB8A3C90E50D7CC00606590 /* IFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IFF.h; sourceTree = "<group>"; };
3AB8A3CB0E50D7FF00606590 /* Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hash.h; sourceTree = "<group>"; };
3AB8A3CC0E50D7FF00606590 /* MDRFileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDRFileData.h; sourceTree = "<group>"; };
3AB8A7DC0E53715F00606590 /* LWOMaterial.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LWOMaterial.cpp; sourceTree = "<group>"; };
3AB8A7E00E53724500606590 /* libboost_date_time-mt-1_35.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libboost_date_time-mt-1_35.dylib"; path = "../../../boost_1_35_0/bin.v2/libs/date_time/build/darwin/release/architecture-combined/macosx-version-10.4/threading-multi/libboost_date_time-mt-1_35.dylib"; sourceTree = SOURCE_ROOT; };
3AB8A7E20E53726500606590 /* libboost_thread-mt-1_35.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libboost_thread-mt-1_35.dylib"; path = "../../../boost_1_35_0/bin.v2/libs/thread/build/darwin/release/architecture-combined/macosx-version-10.4/threading-multi/libboost_thread-mt-1_35.dylib"; sourceTree = SOURCE_ROOT; };
3AF45A530E4B715000207D74 /* aiAnim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiAnim.h; sourceTree = "<group>"; };
3AF45A540E4B715000207D74 /* aiAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiAssert.h; sourceTree = "<group>"; };
3AF45A550E4B715000207D74 /* aiDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiDefines.h; sourceTree = "<group>"; };
3AF45A560E4B715000207D74 /* aiFileIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiFileIO.h; sourceTree = "<group>"; };
3AF45A570E4B715000207D74 /* aiMaterial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMaterial.h; sourceTree = "<group>"; };
3AF45A580E4B715000207D74 /* aiMaterial.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiMaterial.inl; sourceTree = "<group>"; };
3AF45A590E4B715000207D74 /* aiMatrix3x3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMatrix3x3.h; sourceTree = "<group>"; };
3AF45A5A0E4B715000207D74 /* aiMatrix3x3.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiMatrix3x3.inl; sourceTree = "<group>"; };
3AF45A5B0E4B715000207D74 /* aiMatrix4x4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMatrix4x4.h; sourceTree = "<group>"; };
3AF45A5C0E4B715000207D74 /* aiMatrix4x4.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiMatrix4x4.inl; sourceTree = "<group>"; };
3AF45A5D0E4B715000207D74 /* aiMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMesh.h; sourceTree = "<group>"; };
3AF45A5E0E4B715000207D74 /* aiPostProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiPostProcess.h; sourceTree = "<group>"; };
3AF45A5F0E4B715000207D74 /* aiQuaternion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiQuaternion.h; sourceTree = "<group>"; };
3AF45A600E4B715000207D74 /* aiScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiScene.h; sourceTree = "<group>"; };
3AF45A610E4B715000207D74 /* aiTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiTexture.h; sourceTree = "<group>"; };
3AF45A620E4B715000207D74 /* aiTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiTypes.h; sourceTree = "<group>"; };
3AF45A630E4B715000207D74 /* aiVector3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiVector3D.h; sourceTree = "<group>"; };
3AF45A640E4B715000207D74 /* aiVector3D.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiVector3D.inl; sourceTree = "<group>"; };
3AF45A650E4B715000207D74 /* assimp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assimp.h; sourceTree = "<group>"; };
3AF45A660E4B715000207D74 /* assimp.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = assimp.hpp; sourceTree = "<group>"; };
3AF45A6A0E4B715000207D74 /* DefaultLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultLogger.h; sourceTree = "<group>"; };
3AF45A6B0E4B715000207D74 /* IOStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOStream.h; sourceTree = "<group>"; };
3AF45A6C0E4B715000207D74 /* IOSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOSystem.h; sourceTree = "<group>"; };
3AF45A6D0E4B715000207D74 /* Logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Logger.h; sourceTree = "<group>"; };
3AF45A6E0E4B715000207D74 /* LogStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogStream.h; sourceTree = "<group>"; };
3AF45A860E4B716800207D74 /* 3DSConverter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 3DSConverter.cpp; sourceTree = "<group>"; };
3AF45A870E4B716800207D74 /* 3DSGenNormals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 3DSGenNormals.cpp; sourceTree = "<group>"; };
3AF45A880E4B716800207D74 /* 3DSHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 3DSHelper.h; sourceTree = "<group>"; };
3AF45A890E4B716800207D74 /* 3DSLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 3DSLoader.cpp; sourceTree = "<group>"; };
3AF45A8A0E4B716800207D74 /* 3DSLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 3DSLoader.h; sourceTree = "<group>"; };
3AF45A8B0E4B716800207D74 /* 3DSSpatialSort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 3DSSpatialSort.cpp; sourceTree = "<group>"; };
3AF45A8C0E4B716800207D74 /* 3DSSpatialSort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 3DSSpatialSort.h; sourceTree = "<group>"; };
3AF45A8D0E4B716800207D74 /* aiAssert.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = aiAssert.cpp; sourceTree = "<group>"; };
3AF45A8E0E4B716800207D74 /* ASELoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ASELoader.cpp; sourceTree = "<group>"; };
3AF45A8F0E4B716800207D74 /* ASELoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASELoader.h; sourceTree = "<group>"; };
3AF45A900E4B716800207D74 /* ASEParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ASEParser.cpp; sourceTree = "<group>"; };
3AF45A910E4B716800207D74 /* ASEParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASEParser.h; sourceTree = "<group>"; };
3AF45A920E4B716800207D74 /* Assimp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Assimp.cpp; sourceTree = "<group>"; };
3AF45A930E4B716800207D74 /* BaseImporter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BaseImporter.cpp; sourceTree = "<group>"; };
3AF45A940E4B716800207D74 /* BaseImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseImporter.h; sourceTree = "<group>"; };
3AF45A950E4B716800207D74 /* BaseProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseProcess.h; sourceTree = "<group>"; };
3AF45A960E4B716800207D74 /* ByteSwap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteSwap.h; sourceTree = "<group>"; };
3AF45A970E4B716800207D74 /* CalcTangentsProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CalcTangentsProcess.cpp; sourceTree = "<group>"; };
3AF45A980E4B716800207D74 /* CalcTangentsProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalcTangentsProcess.h; sourceTree = "<group>"; };
3AF45A990E4B716800207D74 /* ConvertToLHProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConvertToLHProcess.cpp; sourceTree = "<group>"; };
3AF45A9A0E4B716800207D74 /* ConvertToLHProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConvertToLHProcess.h; sourceTree = "<group>"; };
3AF45A9B0E4B716800207D74 /* DefaultIOStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DefaultIOStream.cpp; sourceTree = "<group>"; };
3AF45A9C0E4B716800207D74 /* DefaultIOStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultIOStream.h; sourceTree = "<group>"; };
3AF45A9D0E4B716800207D74 /* DefaultIOSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DefaultIOSystem.cpp; sourceTree = "<group>"; };
3AF45A9E0E4B716800207D74 /* DefaultIOSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultIOSystem.h; sourceTree = "<group>"; };
3AF45A9F0E4B716800207D74 /* DefaultLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DefaultLogger.cpp; sourceTree = "<group>"; };
3AF45AA10E4B716800207D74 /* MakeVerboseFormat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MakeVerboseFormat.cpp; sourceTree = "<group>"; };
3AF45AA20E4B716800207D74 /* MakeVerboseFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MakeVerboseFormat.h; sourceTree = "<group>"; };
3AF45AA30E4B716800207D74 /* fast_atof.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fast_atof.h; sourceTree = "<group>"; };
3AF45AA40E4B716800207D74 /* FileLogStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileLogStream.h; sourceTree = "<group>"; };
3AF45AA50E4B716800207D74 /* GenFaceNormalsProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GenFaceNormalsProcess.cpp; sourceTree = "<group>"; };
3AF45AA60E4B716800207D74 /* GenFaceNormalsProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenFaceNormalsProcess.h; sourceTree = "<group>"; };
3AF45AA70E4B716800207D74 /* GenVertexNormalsProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GenVertexNormalsProcess.cpp; sourceTree = "<group>"; };
3AF45AA80E4B716800207D74 /* GenVertexNormalsProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenVertexNormalsProcess.h; sourceTree = "<group>"; };
3AF45AA90E4B716800207D74 /* HalfLifeFileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HalfLifeFileData.h; sourceTree = "<group>"; };
3AF45AAB0E4B716800207D74 /* HMPLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HMPLoader.cpp; sourceTree = "<group>"; };
3AF45AAC0E4B716800207D74 /* HMPLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMPLoader.h; sourceTree = "<group>"; };
3AF45AAD0E4B716800207D74 /* Importer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Importer.cpp; sourceTree = "<group>"; };
3AF45AAE0E4B716800207D74 /* ImproveCacheLocality.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImproveCacheLocality.cpp; sourceTree = "<group>"; };
3AF45AAF0E4B716800207D74 /* ImproveCacheLocality.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImproveCacheLocality.h; sourceTree = "<group>"; };
3AF45AB00E4B716800207D74 /* JoinVerticesProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JoinVerticesProcess.cpp; sourceTree = "<group>"; };
3AF45AB10E4B716800207D74 /* JoinVerticesProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JoinVerticesProcess.h; sourceTree = "<group>"; };
3AF45AB20E4B716800207D74 /* KillNormalsProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KillNormalsProcess.cpp; sourceTree = "<group>"; };
3AF45AB30E4B716800207D74 /* KillNormalsProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KillNormalsProcess.h; sourceTree = "<group>"; };
3AF45AB40E4B716800207D74 /* LimitBoneWeightsProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LimitBoneWeightsProcess.cpp; sourceTree = "<group>"; };
3AF45AB50E4B716800207D74 /* LimitBoneWeightsProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LimitBoneWeightsProcess.h; sourceTree = "<group>"; };
3AF45AB60E4B716800207D74 /* MaterialSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MaterialSystem.cpp; sourceTree = "<group>"; };
3AF45AB70E4B716800207D74 /* MaterialSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MaterialSystem.h; sourceTree = "<group>"; };
3AF45AB80E4B716800207D74 /* MD2FileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD2FileData.h; sourceTree = "<group>"; };
3AF45AB90E4B716800207D74 /* MD2Loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MD2Loader.cpp; sourceTree = "<group>"; };
3AF45ABA0E4B716800207D74 /* MD2Loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD2Loader.h; sourceTree = "<group>"; };
3AF45ABB0E4B716800207D74 /* MD2NormalTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD2NormalTable.h; sourceTree = "<group>"; };
3AF45ABC0E4B716800207D74 /* MD3FileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD3FileData.h; sourceTree = "<group>"; };
3AF45ABD0E4B716800207D74 /* MD3Loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MD3Loader.cpp; sourceTree = "<group>"; };
3AF45ABE0E4B716800207D74 /* MD3Loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD3Loader.h; sourceTree = "<group>"; };
3AF45AC20E4B716800207D74 /* MD5Loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MD5Loader.cpp; sourceTree = "<group>"; };
3AF45AC30E4B716800207D74 /* MD5Loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD5Loader.h; sourceTree = "<group>"; };
3AF45AC40E4B716800207D74 /* MD5Parser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MD5Parser.cpp; sourceTree = "<group>"; };
3AF45AC50E4B716800207D74 /* MD5Parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD5Parser.h; sourceTree = "<group>"; };
3AF45AC60E4B716800207D74 /* MDLDefaultColorMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDLDefaultColorMap.h; sourceTree = "<group>"; };
3AF45AC70E4B716800207D74 /* MDLFileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDLFileData.h; sourceTree = "<group>"; };
3AF45AC80E4B716800207D74 /* MDLLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MDLLoader.cpp; sourceTree = "<group>"; };
3AF45AC90E4B716800207D74 /* MDLLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDLLoader.h; sourceTree = "<group>"; };
3AF45ACA0E4B716800207D74 /* MDLMaterialLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MDLMaterialLoader.cpp; sourceTree = "<group>"; };
3AF45ACB0E4B716800207D74 /* ObjFileData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjFileData.h; sourceTree = "<group>"; };
3AF45ACC0E4B716800207D74 /* ObjFileImporter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ObjFileImporter.cpp; sourceTree = "<group>"; };
3AF45ACD0E4B716800207D74 /* ObjFileImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjFileImporter.h; sourceTree = "<group>"; };
3AF45ACE0E4B716800207D74 /* ObjFileMtlImporter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ObjFileMtlImporter.cpp; sourceTree = "<group>"; };
3AF45ACF0E4B716800207D74 /* ObjFileMtlImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjFileMtlImporter.h; sourceTree = "<group>"; };
3AF45AD00E4B716800207D74 /* ObjFileParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ObjFileParser.cpp; sourceTree = "<group>"; };
3AF45AD10E4B716800207D74 /* ObjFileParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjFileParser.h; sourceTree = "<group>"; };
3AF45AD20E4B716800207D74 /* ObjTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjTools.h; sourceTree = "<group>"; };
3AF45AD30E4B716800207D74 /* ParsingUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsingUtils.h; sourceTree = "<group>"; };
3AF45AD40E4B716800207D74 /* PlyLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlyLoader.cpp; sourceTree = "<group>"; };
3AF45AD50E4B716800207D74 /* PlyLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlyLoader.h; sourceTree = "<group>"; };
3AF45AD60E4B716800207D74 /* PlyParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlyParser.cpp; sourceTree = "<group>"; };
3AF45AD70E4B716800207D74 /* PlyParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlyParser.h; sourceTree = "<group>"; };
3AF45AD80E4B716800207D74 /* PretransformVertices.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PretransformVertices.cpp; sourceTree = "<group>"; };
3AF45AD90E4B716800207D74 /* PretransformVertices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PretransformVertices.h; sourceTree = "<group>"; };
3AF45ADA0E4B716800207D74 /* qnan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qnan.h; sourceTree = "<group>"; };
3AF45ADB0E4B716800207D74 /* RemoveComments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoveComments.cpp; sourceTree = "<group>"; };
3AF45ADC0E4B716800207D74 /* RemoveComments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoveComments.h; sourceTree = "<group>"; };
3AF45ADD0E4B716800207D74 /* RemoveRedundantMaterials.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoveRedundantMaterials.cpp; sourceTree = "<group>"; };
3AF45ADE0E4B716800207D74 /* RemoveRedundantMaterials.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoveRedundantMaterials.h; sourceTree = "<group>"; };
3AF45AE20E4B716800207D74 /* SMDLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SMDLoader.cpp; sourceTree = "<group>"; };
3AF45AE30E4B716800207D74 /* SMDLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMDLoader.h; sourceTree = "<group>"; };
3AF45AE40E4B716800207D74 /* SpatialSort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SpatialSort.cpp; sourceTree = "<group>"; };
3AF45AE50E4B716800207D74 /* SpatialSort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpatialSort.h; sourceTree = "<group>"; };
3AF45AE60E4B716800207D74 /* SplitLargeMeshes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SplitLargeMeshes.cpp; sourceTree = "<group>"; };
3AF45AE70E4B716800207D74 /* SplitLargeMeshes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplitLargeMeshes.h; sourceTree = "<group>"; };
3AF45AE80E4B716800207D74 /* STLLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = STLLoader.cpp; sourceTree = "<group>"; };
3AF45AE90E4B716800207D74 /* STLLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STLLoader.h; sourceTree = "<group>"; };
3AF45AEA0E4B716800207D74 /* StringComparison.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringComparison.h; sourceTree = "<group>"; };
3AF45AEB0E4B716800207D74 /* TextureTransform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextureTransform.cpp; sourceTree = "<group>"; };
3AF45AEC0E4B716800207D74 /* TextureTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextureTransform.h; sourceTree = "<group>"; };
3AF45AED0E4B716800207D74 /* TriangulateProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TriangulateProcess.cpp; sourceTree = "<group>"; };
3AF45AEE0E4B716800207D74 /* TriangulateProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TriangulateProcess.h; sourceTree = "<group>"; };
3AF45AEF0E4B716800207D74 /* ValidateDataStructure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ValidateDataStructure.cpp; sourceTree = "<group>"; };
3AF45AF00E4B716800207D74 /* ValidateDataStructure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ValidateDataStructure.h; sourceTree = "<group>"; };
3AF45AF10E4B716800207D74 /* VertexTriangleAdjacency.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VertexTriangleAdjacency.cpp; sourceTree = "<group>"; };
3AF45AF20E4B716800207D74 /* VertexTriangleAdjacency.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VertexTriangleAdjacency.h; sourceTree = "<group>"; };
3AF45AF30E4B716800207D74 /* Win32DebugLogStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Win32DebugLogStream.h; sourceTree = "<group>"; };
3AF45AF40E4B716800207D74 /* XFileHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XFileHelper.h; sourceTree = "<group>"; };
3AF45AF50E4B716800207D74 /* XFileImporter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XFileImporter.cpp; sourceTree = "<group>"; };
3AF45AF60E4B716800207D74 /* XFileImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XFileImporter.h; sourceTree = "<group>"; };
3AF45AF70E4B716800207D74 /* XFileParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XFileParser.cpp; sourceTree = "<group>"; };
3AF45AF80E4B716800207D74 /* XFileParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XFileParser.h; sourceTree = "<group>"; };
D2AAC09D05546B4700DB518D /* libassimpd.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libassimpd.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
D2AAC09B05546B4700DB518D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
3AB8A7E10E53724500606590 /* libboost_date_time-mt-1_35.dylib in Frameworks */,
3AB8A7E30E53726500606590 /* libboost_thread-mt-1_35.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
034768DDFF38A45A11DB9C8B /* Products */ = {
isa = PBXGroup;
children = (
D2AAC09D05546B4700DB518D /* libassimpd.dylib */,
);
name = Products;
sourceTree = "<group>";
};
0867D691FE84028FC02AAC07 /* assimp */ = {
isa = PBXGroup;
children = (
08FB77ACFE841707C02AAC07 /* Source */,
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
034768DDFF38A45A11DB9C8B /* Products */,
);
name = assimp;
sourceTree = "<group>";
};
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
3AB8A7E20E53726500606590 /* libboost_thread-mt-1_35.dylib */,
3AB8A7E00E53724500606590 /* libboost_date_time-mt-1_35.dylib */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
};
08FB77ACFE841707C02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
3AF45A850E4B716800207D74 /* code */,
3AF45A520E4B715000207D74 /* include */,
);
name = Source;
sourceTree = "<group>";
};
3AB8A3A70E50D59500606590 /* MDC */ = {
isa = PBXGroup;
children = (
3AB8A3AB0E50D67A00606590 /* MDCFileData.h */,
3AB8A3AC0E50D67A00606590 /* MDCLoader.cpp */,
3AB8A3AD0E50D67A00606590 /* MDCLoader.h */,
3AB8A3AE0E50D67A00606590 /* MDCNormalTable.h */,
);
name = MDC;
sourceTree = "<group>";
};
3AB8A3A80E50D5F400606590 /* LWO */ = {
isa = PBXGroup;
children = (
3AB8A3B70E50D6DB00606590 /* LWOFileData.h */,
3AB8A3B80E50D6DB00606590 /* LWOLoader.cpp */,
3AB8A3B90E50D6DB00606590 /* LWOLoader.h */,
);
name = LWO;
sourceTree = "<group>";
};
3AB8A3BE0E50D71600606590 /* Compiler */ = {
isa = PBXGroup;
children = (
3AB8A3BF0E50D71600606590 /* poppack1.h */,
3AB8A3C00E50D71600606590 /* pushpack1.h */,
);
path = Compiler;
sourceTree = "<group>";
};
3AF45A520E4B715000207D74 /* include */ = {
isa = PBXGroup;
children = (
3AB8A3A30E50D40300606590 /* aiConfig.h */,
3AB8A3A10E50D3E400606590 /* NullLogger.h */,
3AF45A530E4B715000207D74 /* aiAnim.h */,
3AF45A540E4B715000207D74 /* aiAssert.h */,
3AF45A550E4B715000207D74 /* aiDefines.h */,
3AF45A560E4B715000207D74 /* aiFileIO.h */,
3AF45A570E4B715000207D74 /* aiMaterial.h */,
3AF45A580E4B715000207D74 /* aiMaterial.inl */,
3AF45A590E4B715000207D74 /* aiMatrix3x3.h */,
3AF45A5A0E4B715000207D74 /* aiMatrix3x3.inl */,
3AF45A5B0E4B715000207D74 /* aiMatrix4x4.h */,
3AF45A5C0E4B715000207D74 /* aiMatrix4x4.inl */,
3AF45A5D0E4B715000207D74 /* aiMesh.h */,
3AF45A5E0E4B715000207D74 /* aiPostProcess.h */,
3AF45A5F0E4B715000207D74 /* aiQuaternion.h */,
3AF45A600E4B715000207D74 /* aiScene.h */,
3AF45A610E4B715000207D74 /* aiTexture.h */,
3AF45A620E4B715000207D74 /* aiTypes.h */,
3AF45A630E4B715000207D74 /* aiVector3D.h */,
3AF45A640E4B715000207D74 /* aiVector3D.inl */,
3AF45A650E4B715000207D74 /* assimp.h */,
3AF45A660E4B715000207D74 /* assimp.hpp */,
3AF45A6A0E4B715000207D74 /* DefaultLogger.h */,
3AF45A6B0E4B715000207D74 /* IOStream.h */,
3AF45A6C0E4B715000207D74 /* IOSystem.h */,
3AF45A6D0E4B715000207D74 /* Logger.h */,
3AF45A6E0E4B715000207D74 /* LogStream.h */,
);
name = include;
path = ../../include;
sourceTree = SOURCE_ROOT;
};
3AF45A850E4B716800207D74 /* code */ = {
isa = PBXGroup;
children = (
3AB8A7DC0E53715F00606590 /* LWOMaterial.cpp */,
3AF45B690E4B722000207D74 /* 3DS */,
3AF45B6A0E4B726700207D74 /* ASE */,
3AB8A3BE0E50D71600606590 /* Compiler */,
3AF45AA00E4B716800207D74 /* extra */,
3AF45B6C0E4B72C600207D74 /* HMP */,
3AF45B860E4B73BB00207D74 /* Logger */,
3AB8A3A80E50D5F400606590 /* LWO */,
3AF45B870E4B74DA00207D74 /* MD2 */,
3AF45B880E4B751000207D74 /* MD3 */,
3AF45B8A0E4B755E00207D74 /* MD5 */,
3AB8A3A70E50D59500606590 /* MDC */,
3AF45B8B0E4B75BC00207D74 /* MDL */,
3AF45B8C0E4B75F200207D74 /* Obj */,
3AF45B8D0E4B761A00207D74 /* Ply */,
3AF45B8E0E4B764400207D74 /* SMD */,
3AF45B910E4B77BE00207D74 /* STL */,
3AF45B8F0E4B766700207D74 /* X */,
3AF45A8D0E4B716800207D74 /* aiAssert.cpp */,
3AF45A920E4B716800207D74 /* Assimp.cpp */,
3AF45A930E4B716800207D74 /* BaseImporter.cpp */,
3AF45A940E4B716800207D74 /* BaseImporter.h */,
3AB8A3C30E50D74500606590 /* BaseProcess.cpp */,
3AF45A950E4B716800207D74 /* BaseProcess.h */,
3AF45A960E4B716800207D74 /* ByteSwap.h */,
3AF45A970E4B716800207D74 /* CalcTangentsProcess.cpp */,
3AF45A980E4B716800207D74 /* CalcTangentsProcess.h */,
3AF45A990E4B716800207D74 /* ConvertToLHProcess.cpp */,
3AF45A9A0E4B716800207D74 /* ConvertToLHProcess.h */,
3AF45A9B0E4B716800207D74 /* DefaultIOStream.cpp */,
3AF45A9C0E4B716800207D74 /* DefaultIOStream.h */,
3AF45A9D0E4B716800207D74 /* DefaultIOSystem.cpp */,
3AF45A9E0E4B716800207D74 /* DefaultIOSystem.h */,
3AF45AA30E4B716800207D74 /* fast_atof.h */,
3AB8A3B30E50D69D00606590 /* FixNormalsStep.cpp */,
3AB8A3B40E50D69D00606590 /* FixNormalsStep.h */,
3AF45AA50E4B716800207D74 /* GenFaceNormalsProcess.cpp */,
3AF45AA60E4B716800207D74 /* GenFaceNormalsProcess.h */,
3AF45AA70E4B716800207D74 /* GenVertexNormalsProcess.cpp */,
3AF45AA80E4B716800207D74 /* GenVertexNormalsProcess.h */,
3AB8A3CB0E50D7FF00606590 /* Hash.h */,
3AB8A3C90E50D7CC00606590 /* IFF.h */,
3AF45AAD0E4B716800207D74 /* Importer.cpp */,
3AF45AAE0E4B716800207D74 /* ImproveCacheLocality.cpp */,
3AF45AAF0E4B716800207D74 /* ImproveCacheLocality.h */,
3AF45AB00E4B716800207D74 /* JoinVerticesProcess.cpp */,
3AF45AB10E4B716800207D74 /* JoinVerticesProcess.h */,
3AF45AB20E4B716800207D74 /* KillNormalsProcess.cpp */,
3AF45AB30E4B716800207D74 /* KillNormalsProcess.h */,
3AF45AB40E4B716800207D74 /* LimitBoneWeightsProcess.cpp */,
3AF45AB50E4B716800207D74 /* LimitBoneWeightsProcess.h */,
3AF45AB60E4B716800207D74 /* MaterialSystem.cpp */,
3AF45AB70E4B716800207D74 /* MaterialSystem.h */,
3AB8A3CC0E50D7FF00606590 /* MDRFileData.h */,
3AF45AD30E4B716800207D74 /* ParsingUtils.h */,
3AF45AD80E4B716800207D74 /* PretransformVertices.cpp */,
3AF45AD90E4B716800207D74 /* PretransformVertices.h */,
3AF45ADA0E4B716800207D74 /* qnan.h */,
3AF45ADB0E4B716800207D74 /* RemoveComments.cpp */,
3AF45ADC0E4B716800207D74 /* RemoveComments.h */,
3AF45ADD0E4B716800207D74 /* RemoveRedundantMaterials.cpp */,
3AF45ADE0E4B716800207D74 /* RemoveRedundantMaterials.h */,
3AF45AE40E4B716800207D74 /* SpatialSort.cpp */,
3AF45AE50E4B716800207D74 /* SpatialSort.h */,
3AF45AE60E4B716800207D74 /* SplitLargeMeshes.cpp */,
3AF45AE70E4B716800207D74 /* SplitLargeMeshes.h */,
3AF45AEA0E4B716800207D74 /* StringComparison.h */,
3AF45AEB0E4B716800207D74 /* TextureTransform.cpp */,
3AF45AEC0E4B716800207D74 /* TextureTransform.h */,
3AF45AED0E4B716800207D74 /* TriangulateProcess.cpp */,
3AF45AEE0E4B716800207D74 /* TriangulateProcess.h */,
3AF45AEF0E4B716800207D74 /* ValidateDataStructure.cpp */,
3AF45AF00E4B716800207D74 /* ValidateDataStructure.h */,
3AF45AF10E4B716800207D74 /* VertexTriangleAdjacency.cpp */,
3AF45AF20E4B716800207D74 /* VertexTriangleAdjacency.h */,
);
name = code;
path = ../../code;
sourceTree = SOURCE_ROOT;
};
3AF45AA00E4B716800207D74 /* extra */ = {
isa = PBXGroup;
children = (
3AB8A3C70E50D7A600606590 /* MD4FileData.h */,
3AF45AA10E4B716800207D74 /* MakeVerboseFormat.cpp */,
3AF45AA20E4B716800207D74 /* MakeVerboseFormat.h */,
);
path = extra;
sourceTree = "<group>";
};
3AF45B690E4B722000207D74 /* 3DS */ = {
isa = PBXGroup;
children = (
3AF45A860E4B716800207D74 /* 3DSConverter.cpp */,
3AF45A870E4B716800207D74 /* 3DSGenNormals.cpp */,
3AF45A890E4B716800207D74 /* 3DSLoader.cpp */,
3AF45A8B0E4B716800207D74 /* 3DSSpatialSort.cpp */,
3AF45A880E4B716800207D74 /* 3DSHelper.h */,
3AF45A8A0E4B716800207D74 /* 3DSLoader.h */,
3AF45A8C0E4B716800207D74 /* 3DSSpatialSort.h */,
);
name = 3DS;
sourceTree = "<group>";
};
3AF45B6A0E4B726700207D74 /* ASE */ = {
isa = PBXGroup;
children = (
3AF45A8E0E4B716800207D74 /* ASELoader.cpp */,
3AF45A8F0E4B716800207D74 /* ASELoader.h */,
3AF45A900E4B716800207D74 /* ASEParser.cpp */,
3AF45A910E4B716800207D74 /* ASEParser.h */,
);
name = ASE;
sourceTree = "<group>";
};
3AF45B6C0E4B72C600207D74 /* HMP */ = {
isa = PBXGroup;
children = (
3AB8A3C50E50D77900606590 /* HMPFileData.h */,
3AF45AAB0E4B716800207D74 /* HMPLoader.cpp */,
3AF45AAC0E4B716800207D74 /* HMPLoader.h */,
);
name = HMP;
sourceTree = "<group>";
};
3AF45B860E4B73BB00207D74 /* Logger */ = {
isa = PBXGroup;
children = (
3AF45A9F0E4B716800207D74 /* DefaultLogger.cpp */,
3AF45AA40E4B716800207D74 /* FileLogStream.h */,
3AF45AF30E4B716800207D74 /* Win32DebugLogStream.h */,
);
name = Logger;
sourceTree = "<group>";
};
3AF45B870E4B74DA00207D74 /* MD2 */ = {
isa = PBXGroup;
children = (
3AF45AB80E4B716800207D74 /* MD2FileData.h */,
3AF45AB90E4B716800207D74 /* MD2Loader.cpp */,
3AF45ABA0E4B716800207D74 /* MD2Loader.h */,
3AF45ABB0E4B716800207D74 /* MD2NormalTable.h */,
);
name = MD2;
sourceTree = "<group>";
};
3AF45B880E4B751000207D74 /* MD3 */ = {
isa = PBXGroup;
children = (
3AF45ABC0E4B716800207D74 /* MD3FileData.h */,
3AF45ABD0E4B716800207D74 /* MD3Loader.cpp */,
3AF45ABE0E4B716800207D74 /* MD3Loader.h */,
);
name = MD3;
sourceTree = "<group>";
};
3AF45B8A0E4B755E00207D74 /* MD5 */ = {
isa = PBXGroup;
children = (
3AF45AC20E4B716800207D74 /* MD5Loader.cpp */,
3AF45AC30E4B716800207D74 /* MD5Loader.h */,
3AF45AC40E4B716800207D74 /* MD5Parser.cpp */,
3AF45AC50E4B716800207D74 /* MD5Parser.h */,
);
name = MD5;
sourceTree = "<group>";
};
3AF45B8B0E4B75BC00207D74 /* MDL */ = {
isa = PBXGroup;
children = (
3AF45AA90E4B716800207D74 /* HalfLifeFileData.h */,
3AF45AC60E4B716800207D74 /* MDLDefaultColorMap.h */,
3AF45AC70E4B716800207D74 /* MDLFileData.h */,
3AF45AC80E4B716800207D74 /* MDLLoader.cpp */,
3AF45AC90E4B716800207D74 /* MDLLoader.h */,
3AF45ACA0E4B716800207D74 /* MDLMaterialLoader.cpp */,
);
name = MDL;
sourceTree = "<group>";
};
3AF45B8C0E4B75F200207D74 /* Obj */ = {
isa = PBXGroup;
children = (
3AF45ACB0E4B716800207D74 /* ObjFileData.h */,
3AF45ACC0E4B716800207D74 /* ObjFileImporter.cpp */,
3AF45ACD0E4B716800207D74 /* ObjFileImporter.h */,
3AF45ACE0E4B716800207D74 /* ObjFileMtlImporter.cpp */,
3AF45ACF0E4B716800207D74 /* ObjFileMtlImporter.h */,
3AF45AD00E4B716800207D74 /* ObjFileParser.cpp */,
3AF45AD10E4B716800207D74 /* ObjFileParser.h */,
3AF45AD20E4B716800207D74 /* ObjTools.h */,
);
name = Obj;
sourceTree = "<group>";
};
3AF45B8D0E4B761A00207D74 /* Ply */ = {
isa = PBXGroup;
children = (
3AF45AD40E4B716800207D74 /* PlyLoader.cpp */,
3AF45AD50E4B716800207D74 /* PlyLoader.h */,
3AF45AD60E4B716800207D74 /* PlyParser.cpp */,
3AF45AD70E4B716800207D74 /* PlyParser.h */,
);
name = Ply;
sourceTree = "<group>";
};
3AF45B8E0E4B764400207D74 /* SMD */ = {
isa = PBXGroup;
children = (
3AF45AE20E4B716800207D74 /* SMDLoader.cpp */,
3AF45AE30E4B716800207D74 /* SMDLoader.h */,
);
name = SMD;
sourceTree = "<group>";
};
3AF45B8F0E4B766700207D74 /* X */ = {
isa = PBXGroup;
children = (
3AF45AF40E4B716800207D74 /* XFileHelper.h */,
3AF45AF50E4B716800207D74 /* XFileImporter.cpp */,
3AF45AF60E4B716800207D74 /* XFileImporter.h */,
3AF45AF70E4B716800207D74 /* XFileParser.cpp */,
3AF45AF80E4B716800207D74 /* XFileParser.h */,
);
name = X;
sourceTree = "<group>";
};
3AF45B910E4B77BE00207D74 /* STL */ = {
isa = PBXGroup;
children = (
3AF45AE80E4B716800207D74 /* STLLoader.cpp */,
3AF45AE90E4B716800207D74 /* STLLoader.h */,
);
name = STL;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
D2AAC09905546B4700DB518D /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
3AF45A6F0E4B715000207D74 /* aiAnim.h in Headers */,
3AF45A700E4B715000207D74 /* aiAssert.h in Headers */,
3AF45A710E4B715000207D74 /* aiDefines.h in Headers */,
3AF45A720E4B715000207D74 /* aiFileIO.h in Headers */,
3AF45A730E4B715000207D74 /* aiMaterial.h in Headers */,
3AF45A740E4B715000207D74 /* aiMatrix3x3.h in Headers */,
3AF45A750E4B715000207D74 /* aiMatrix4x4.h in Headers */,
3AF45A760E4B715000207D74 /* aiMesh.h in Headers */,
3AF45A770E4B715000207D74 /* aiPostProcess.h in Headers */,
3AF45A780E4B715000207D74 /* aiQuaternion.h in Headers */,
3AF45A790E4B715000207D74 /* aiScene.h in Headers */,
3AF45A7A0E4B715000207D74 /* aiTexture.h in Headers */,
3AF45A7B0E4B715000207D74 /* aiTypes.h in Headers */,
3AF45A7C0E4B715000207D74 /* aiVector3D.h in Headers */,
3AF45A7D0E4B715000207D74 /* assimp.h in Headers */,
3AF45A7E0E4B715000207D74 /* assimp.hpp in Headers */,
3AF45A800E4B715000207D74 /* DefaultLogger.h in Headers */,
3AF45A810E4B715000207D74 /* IOStream.h in Headers */,
3AF45A820E4B715000207D74 /* IOSystem.h in Headers */,
3AF45A830E4B715000207D74 /* Logger.h in Headers */,
3AF45A840E4B715000207D74 /* LogStream.h in Headers */,
3AF45AFB0E4B716800207D74 /* 3DSHelper.h in Headers */,
3AF45AFD0E4B716800207D74 /* 3DSLoader.h in Headers */,
3AF45AFF0E4B716800207D74 /* 3DSSpatialSort.h in Headers */,
3AF45B020E4B716800207D74 /* ASELoader.h in Headers */,
3AF45B040E4B716800207D74 /* ASEParser.h in Headers */,
3AF45B070E4B716800207D74 /* BaseImporter.h in Headers */,
3AF45B080E4B716800207D74 /* BaseProcess.h in Headers */,
3AF45B090E4B716800207D74 /* ByteSwap.h in Headers */,
3AF45B0B0E4B716800207D74 /* CalcTangentsProcess.h in Headers */,
3AF45B0D0E4B716800207D74 /* ConvertToLHProcess.h in Headers */,
3AF45B0F0E4B716800207D74 /* DefaultIOStream.h in Headers */,
3AF45B110E4B716800207D74 /* DefaultIOSystem.h in Headers */,
3AF45B140E4B716800207D74 /* MakeVerboseFormat.h in Headers */,
3AF45B150E4B716800207D74 /* fast_atof.h in Headers */,
3AF45B160E4B716800207D74 /* FileLogStream.h in Headers */,
3AF45B180E4B716800207D74 /* GenFaceNormalsProcess.h in Headers */,
3AF45B1A0E4B716800207D74 /* GenVertexNormalsProcess.h in Headers */,
3AF45B1B0E4B716800207D74 /* HalfLifeFileData.h in Headers */,
3AF45B1E0E4B716800207D74 /* HMPLoader.h in Headers */,
3AF45B210E4B716800207D74 /* ImproveCacheLocality.h in Headers */,
3AF45B230E4B716800207D74 /* JoinVerticesProcess.h in Headers */,
3AF45B250E4B716800207D74 /* KillNormalsProcess.h in Headers */,
3AF45B270E4B716800207D74 /* LimitBoneWeightsProcess.h in Headers */,
3AF45B290E4B716800207D74 /* MaterialSystem.h in Headers */,
3AF45B2A0E4B716800207D74 /* MD2FileData.h in Headers */,
3AF45B2C0E4B716800207D74 /* MD2Loader.h in Headers */,
3AF45B2D0E4B716800207D74 /* MD2NormalTable.h in Headers */,
3AF45B2E0E4B716800207D74 /* MD3FileData.h in Headers */,
3AF45B300E4B716800207D74 /* MD3Loader.h in Headers */,
3AF45B350E4B716800207D74 /* MD5Loader.h in Headers */,
3AF45B370E4B716800207D74 /* MD5Parser.h in Headers */,
3AF45B380E4B716800207D74 /* MDLDefaultColorMap.h in Headers */,
3AF45B390E4B716800207D74 /* MDLFileData.h in Headers */,
3AF45B3B0E4B716800207D74 /* MDLLoader.h in Headers */,
3AF45B3D0E4B716800207D74 /* ObjFileData.h in Headers */,
3AF45B3F0E4B716800207D74 /* ObjFileImporter.h in Headers */,
3AF45B410E4B716800207D74 /* ObjFileMtlImporter.h in Headers */,
3AF45B430E4B716800207D74 /* ObjFileParser.h in Headers */,
3AF45B440E4B716800207D74 /* ObjTools.h in Headers */,
3AF45B450E4B716800207D74 /* ParsingUtils.h in Headers */,
3AF45B470E4B716800207D74 /* PlyLoader.h in Headers */,
3AF45B490E4B716800207D74 /* PlyParser.h in Headers */,
3AF45B4B0E4B716800207D74 /* PretransformVertices.h in Headers */,
3AF45B4C0E4B716800207D74 /* qnan.h in Headers */,
3AF45B4E0E4B716800207D74 /* RemoveComments.h in Headers */,
3AF45B500E4B716800207D74 /* RemoveRedundantMaterials.h in Headers */,
3AF45B530E4B716800207D74 /* SMDLoader.h in Headers */,
3AF45B550E4B716800207D74 /* SpatialSort.h in Headers */,
3AF45B570E4B716800207D74 /* SplitLargeMeshes.h in Headers */,
3AF45B590E4B716800207D74 /* STLLoader.h in Headers */,
3AF45B5A0E4B716800207D74 /* StringComparison.h in Headers */,
3AF45B5C0E4B716800207D74 /* TextureTransform.h in Headers */,
3AF45B5E0E4B716800207D74 /* TriangulateProcess.h in Headers */,
3AF45B600E4B716800207D74 /* ValidateDataStructure.h in Headers */,
3AF45B620E4B716800207D74 /* VertexTriangleAdjacency.h in Headers */,
3AF45B630E4B716800207D74 /* Win32DebugLogStream.h in Headers */,
3AF45B640E4B716800207D74 /* XFileHelper.h in Headers */,
3AF45B660E4B716800207D74 /* XFileImporter.h in Headers */,
3AF45B680E4B716800207D74 /* XFileParser.h in Headers */,
3AB8A3A20E50D3E400606590 /* NullLogger.h in Headers */,
3AB8A3A40E50D40300606590 /* aiConfig.h in Headers */,
3AB8A3AF0E50D67A00606590 /* MDCFileData.h in Headers */,
3AB8A3B10E50D67A00606590 /* MDCLoader.h in Headers */,
3AB8A3B20E50D67A00606590 /* MDCNormalTable.h in Headers */,
3AB8A3B60E50D69D00606590 /* FixNormalsStep.h in Headers */,
3AB8A3BA0E50D6DB00606590 /* LWOFileData.h in Headers */,
3AB8A3BC0E50D6DB00606590 /* LWOLoader.h in Headers */,
3AB8A3C10E50D71600606590 /* poppack1.h in Headers */,
3AB8A3C20E50D71600606590 /* pushpack1.h in Headers */,
3AB8A3C60E50D77900606590 /* HMPFileData.h in Headers */,
3AB8A3C80E50D7A600606590 /* MD4FileData.h in Headers */,
3AB8A3CA0E50D7CC00606590 /* IFF.h in Headers */,
3AB8A3CD0E50D7FF00606590 /* Hash.h in Headers */,
3AB8A3CE0E50D7FF00606590 /* MDRFileData.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
D2AAC09C05546B4700DB518D /* assimp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1DEB916008733D950010E9CD /* Build configuration list for PBXNativeTarget "assimp" */;
buildPhases = (
D2AAC09905546B4700DB518D /* Headers */,
D2AAC09B05546B4700DB518D /* Frameworks */,
D2AAC09A05546B4700DB518D /* Sources */,
);
buildRules = (
);
dependencies = (
);
name = assimp;
productName = libassimp;
productReference = D2AAC09D05546B4700DB518D /* libassimpd.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 1DEB916408733D950010E9CD /* Build configuration list for PBXProject "assimp" */;
compatibilityVersion = "Xcode 3.0";
hasScannedForEncodings = 1;
mainGroup = 0867D691FE84028FC02AAC07 /* assimp */;
productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
D2AAC09C05546B4700DB518D /* assimp */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
D2AAC09A05546B4700DB518D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
3AF45AF90E4B716800207D74 /* 3DSConverter.cpp in Sources */,
3AF45AFA0E4B716800207D74 /* 3DSGenNormals.cpp in Sources */,
3AF45AFC0E4B716800207D74 /* 3DSLoader.cpp in Sources */,
3AF45AFE0E4B716800207D74 /* 3DSSpatialSort.cpp in Sources */,
3AF45B000E4B716800207D74 /* aiAssert.cpp in Sources */,
3AF45B010E4B716800207D74 /* ASELoader.cpp in Sources */,
3AF45B030E4B716800207D74 /* ASEParser.cpp in Sources */,
3AF45B050E4B716800207D74 /* Assimp.cpp in Sources */,
3AF45B060E4B716800207D74 /* BaseImporter.cpp in Sources */,
3AF45B0A0E4B716800207D74 /* CalcTangentsProcess.cpp in Sources */,
3AF45B0C0E4B716800207D74 /* ConvertToLHProcess.cpp in Sources */,
3AF45B0E0E4B716800207D74 /* DefaultIOStream.cpp in Sources */,
3AF45B100E4B716800207D74 /* DefaultIOSystem.cpp in Sources */,
3AF45B120E4B716800207D74 /* DefaultLogger.cpp in Sources */,
3AF45B130E4B716800207D74 /* MakeVerboseFormat.cpp in Sources */,
3AF45B170E4B716800207D74 /* GenFaceNormalsProcess.cpp in Sources */,
3AF45B190E4B716800207D74 /* GenVertexNormalsProcess.cpp in Sources */,
3AF45B1D0E4B716800207D74 /* HMPLoader.cpp in Sources */,
3AF45B1F0E4B716800207D74 /* Importer.cpp in Sources */,
3AF45B200E4B716800207D74 /* ImproveCacheLocality.cpp in Sources */,
3AF45B220E4B716800207D74 /* JoinVerticesProcess.cpp in Sources */,
3AF45B240E4B716800207D74 /* KillNormalsProcess.cpp in Sources */,
3AF45B260E4B716800207D74 /* LimitBoneWeightsProcess.cpp in Sources */,
3AF45B280E4B716800207D74 /* MaterialSystem.cpp in Sources */,
3AF45B2B0E4B716800207D74 /* MD2Loader.cpp in Sources */,
3AF45B2F0E4B716800207D74 /* MD3Loader.cpp in Sources */,
3AF45B340E4B716800207D74 /* MD5Loader.cpp in Sources */,
3AF45B360E4B716800207D74 /* MD5Parser.cpp in Sources */,
3AF45B3A0E4B716800207D74 /* MDLLoader.cpp in Sources */,
3AF45B3C0E4B716800207D74 /* MDLMaterialLoader.cpp in Sources */,
3AF45B3E0E4B716800207D74 /* ObjFileImporter.cpp in Sources */,
3AF45B400E4B716800207D74 /* ObjFileMtlImporter.cpp in Sources */,
3AF45B420E4B716800207D74 /* ObjFileParser.cpp in Sources */,
3AF45B460E4B716800207D74 /* PlyLoader.cpp in Sources */,
3AF45B480E4B716800207D74 /* PlyParser.cpp in Sources */,
3AF45B4A0E4B716800207D74 /* PretransformVertices.cpp in Sources */,
3AF45B4D0E4B716800207D74 /* RemoveComments.cpp in Sources */,
3AF45B4F0E4B716800207D74 /* RemoveRedundantMaterials.cpp in Sources */,
3AF45B520E4B716800207D74 /* SMDLoader.cpp in Sources */,
3AF45B540E4B716800207D74 /* SpatialSort.cpp in Sources */,
3AF45B560E4B716800207D74 /* SplitLargeMeshes.cpp in Sources */,
3AF45B580E4B716800207D74 /* STLLoader.cpp in Sources */,
3AF45B5B0E4B716800207D74 /* TextureTransform.cpp in Sources */,
3AF45B5D0E4B716800207D74 /* TriangulateProcess.cpp in Sources */,
3AF45B5F0E4B716800207D74 /* ValidateDataStructure.cpp in Sources */,
3AF45B610E4B716800207D74 /* VertexTriangleAdjacency.cpp in Sources */,
3AF45B650E4B716800207D74 /* XFileImporter.cpp in Sources */,
3AF45B670E4B716800207D74 /* XFileParser.cpp in Sources */,
3AB8A3B00E50D67A00606590 /* MDCLoader.cpp in Sources */,
3AB8A3B50E50D69D00606590 /* FixNormalsStep.cpp in Sources */,
3AB8A3BB0E50D6DB00606590 /* LWOLoader.cpp in Sources */,
3AB8A3C40E50D74500606590 /* BaseProcess.cpp in Sources */,
3AB8A7DD0E53715F00606590 /* LWOMaterial.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
1DEB916108733D950010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
EXECUTABLE_PREFIX = lib;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
GCC_PREPROCESSOR_DEFINITIONS = (
"_GLIBCXX_DEBUG=1",
"_GLIBCXX_DEBUG_PEDANTIC=1",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../boost_1_35_0/bin.v2/libs/date_time/build/darwin/release/architecture-combined/macosx-version-10.4/threading-multi\"",
"\"$(SRCROOT)/../../../boost_1_35_0/bin.v2/libs/thread/build/darwin/release/architecture-combined/macosx-version-10.4/threading-multi\"",
);
PRODUCT_NAME = assimpd;
ZERO_LINK = YES;
};
name = Debug;
};
1DEB916208733D950010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
EXECUTABLE_PREFIX = lib;
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../boost_1_35_0/bin.v2/libs/date_time/build/darwin/release/architecture-combined/macosx-version-10.4/threading-multi\"",
"\"$(SRCROOT)/../../../boost_1_35_0/bin.v2/libs/thread/build/darwin/release/architecture-combined/macosx-version-10.4/threading-multi\"",
);
PRODUCT_NAME = assimp;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = "non-global";
};
name = Release;
};
1DEB916508733D950010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i386;
CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
GCC_DEBUGGING_SYMBOLS = full;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
/Users/drew/luster_port/assimp/include,
/users/drew/luster_port/boost_1_35_0,
);
LD_DYLIB_INSTALL_NAME = libassimp.dylib;
LIBRARY_SEARCH_PATHS = /usr/local/lib;
OBJROOT = "../../obj/$(PROJECT_NAME)_$(CONFIGURATION)_MacOSX";
OTHER_LDFLAGS = "";
PREBINDING = NO;
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
SYMROOT = "../../bin/$(PROJECT_NAME)_$(CONFIGURATION)_MacOSX";
};
name = Debug;
};
1DEB916608733D950010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i386;
CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
GCC_PREPROCESSOR_DEFINITIONS = NDEBUG;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
/Users/drew/luster_port/assimp/include,
/users/drew/luster_port/boost_1_35_0,
);
LD_DYLIB_INSTALL_NAME = libassimp.dylib;
LIBRARY_SEARCH_PATHS = /usr/local/lib;
OBJROOT = "../../obj/$(PROJECT_NAME)_$(CONFIGURATION)_MacOSX";
OTHER_LDFLAGS = "";
PREBINDING = NO;
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
SYMROOT = "../../bin/$(PROJECT_NAME)_$(CONFIGURATION)_MacOSX";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
1DEB916008733D950010E9CD /* Build configuration list for PBXNativeTarget "assimp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1DEB916108733D950010E9CD /* Debug */,
1DEB916208733D950010E9CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1DEB916408733D950010E9CD /* Build configuration list for PBXProject "assimp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1DEB916508733D950010E9CD /* Debug */,
1DEB916608733D950010E9CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
}