#include "../Common/Common.h"
#define SAMPLE_FILENAME "box.fbx"
const 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)
{
    for( int i = 1, c = argc; i < c; ++i )
    {
        if( 
FbxString(argv[i]) == 
"-test" ) 
continue;
 
        else if( lFilePath.IsEmpty() ) lFilePath = argv[i];
    }
    if( lFilePath.IsEmpty() ) lFilePath = SAMPLE_FILENAME;
    
    InitializeSdkObjects(lSdkManager, lScene);
    bool lResult = LoadScene(lSdkManager, lScene, lFilePath.Buffer());
    if( lResult )
    {       
        const size_t lFileNameLength = strlen((argc>=3)?argv[2]:lFilePath.Buffer());
        char* lNewFileName = new char[lFileNameLength+64];
        FBXSDK_strcpy(lNewFileName,lFileNameLength+64,(argc>=3)?argv[2]:lFilePath.Buffer());
        const size_t lFileTypeCount = sizeof(lFileTypes)/sizeof(lFileTypes[0])/2;
        for(size_t i=0; i<lFileTypeCount; ++i)
        {
            
            
            FBXSDK_strcpy(lNewFileName+lFileNameLength-4,60, lFileTypes[i*2]);
            
            
            if( !lResult )
            {
                FBXSDK_printf("%s:\tCall to FbxExporter::Initialize() failed.\n", lFileTypes[i*2+1]);
            }
            else
            {
                
                lResult = lExporter->
Export(lScene);
 
                if( !lResult )
                {
                    FBXSDK_printf("Call to FbxExporter::Export() failed.\n");
                }
            }
            
        }
        delete[] lNewFileName;
    }
    else
    {
        FBXSDK_printf("Call to LoadScene() failed.\n");
    }
    
    
    
    DestroySdkObjects(lSdkManager, lResult);
    return 0;
}