#include <fbxsdk.h>
#include "../Common/Common.h"
char* lFileTypes[] =
{
"_dae.dae", "Collada DAE (*.dae)",
"_fbx7binary.fbx", "FBX binary (*.fbx)",
"_fbx7ascii.fbx", "FBX ascii (*.fbx)",
"_fbx6binary.fbx", "FBX 6.0 binary (*.fbx)",
"_fbx6ascii.fbx", "FBX 6.0 ascii (*.fbx)",
"_obj.obj", "Alias OBJ (*.obj)",
"_dxf.dxf", "AutoCAD DXF (*.dxf)"
};
int main(int argc, char** argv)
{
char* lFileName = "box.fbx";
if(argc == 2)
lFileName = argv[1];
FbxManager* lSdkManager = NULL;
FbxScene* lScene = NULL;
InitializeSdkObjects(lSdkManager, lScene);
bool lResult = LoadScene(lSdkManager, lScene, lFileName);
if(lResult)
{
const size_t lFileNameLength = strlen((argc>=3)?argv[2]:lFileName);
char* lNewFileName = new char[lFileNameLength+64];
FBXSDK_strcpy(lNewFileName,lFileNameLength+64,(argc>=3)?argv[2]:lFileName);
const size_t lFileTypeCount = sizeof(lFileTypes)/sizeof(lFileTypes[0])/2;
for(size_t i=0; i<lFileTypeCount; ++i)
{
int lFormat = lSdkManager->GetIOPluginRegistry()->FindWriterIDByDescription(lFileTypes[i*2+1]);
FBXSDK_strcpy(lNewFileName+lFileNameLength-4,60, lFileTypes[i*2]);
FbxExporter* lExporter = FbxExporter::Create(lSdkManager, "");
if (!lExporter->Initialize(lNewFileName, lFormat, lSdkManager->GetIOSettings()))
{
FBXSDK_printf("%s:\tCall to FbxExporter::Initialize() failed.\n", lFileTypes[i*2+1]);
FBXSDK_printf("Error returned: %s\n\n", lExporter->GetLastErrorString());
}
else
{
if (!lExporter->Export(lScene))
{
FBXSDK_printf("Call to FbxExporter::Export() failed.\n");
}
}
lExporter->Destroy();
}
delete[] lNewFileName;
}
else
{
FBXSDK_printf("Call to LoadScene() failed.\n");
}
lSdkManager->Destroy();
return 0;
}