#ifdef FBXSDK_ENV_WIN
#include <malloc.h>
#endif
#include "../MyOwnWriterReader/MyOwnWriterReader.h"
#include "../Common/Common.h"
#define SAMPLE_FILENAME "ExportScene05.fbx"
int main(int argc, char** argv)
{
bool lResult;
InitializeSdkObjects(lSdkManager, lScene);
lResult = CreateScene(lScene);
if(lResult == false)
{
FBXSDK_printf("\n\nAn error occurred while creating the scene...\n");
DestroySdkObjects(lSdkManager, lResult);
return 1;
}
const char* lSampleFileName =
NULL;
for( int i = 1; i < argc; ++i )
{
if( FBXSDK_stricmp(argv[i], "-test") == 0 ) continue;
else if( !lSampleFileName ) lSampleFileName = argv[i];
}
if( !lSampleFileName ) lSampleFileName = SAMPLE_FILENAME;
lResult = SaveScene(lSdkManager, lScene, lSampleFileName);
if(lResult == false)
{
FBXSDK_printf("\n\nAn error occurred while saving the scene...\n");
DestroySdkObjects(lSdkManager, lResult);
return 1;
}
FBXSDK_printf("Writing to file with custom writer\n");
int lRegisteredCount;
int lPluginId;
lPluginId, lRegisteredCount, FillOwnWriterIOSettings);
const char* lFileName = "CustomWriter.CFF";
{
FBXSDK_printf("Call to FbxExporter::Initialize() failed.\n");
DestroySdkObjects(lSdkManager, false);
return 1;
}
lResult = lExporter->
Export(lScene);
if(lResult == false)
{
FBXSDK_printf("Error in write of our custom writer\n");
DestroySdkObjects(lSdkManager, lResult);
return 1;
}
lPluginId, lRegisteredCount, FillOwnReaderIOSettings);
lResult = lImporter->
Import(lScene);
if(lResult == false)
{
FBXSDK_printf("There was a problem in the read of our custom reader\n");
DestroySdkObjects(lSdkManager, lResult);
return 1;
}
DestroySdkObjects(lSdkManager, lResult);
return 0;
}
{
pNodeA->UpdatePivotsAndLimitsFromProperties();
pNodeB->UpdatePivotsAndLimitsFromProperties();
lT.
Set(0.0, 0.0, 0.0); lGM.
SetT(lT);
lR.
Set(0.0, 0.0, 45.0); lGM.
SetR(lR);
SetGlobalDefaultPosition(pNodeA, lGM);
lT.
Set(30.0, 20.0, 0.0); lGM.
SetT(lT);
lR.
Set(0.0, 0.0, 0.0); lGM.
SetR(lR);
SetGlobalDefaultPosition(pNodeB, lGM);
lT.
Set(55.0, 20.0, 0.0); lGM.
SetT(lT);
lR.
Set(0.0, 0.0, -40.0); lGM.
SetR(lR);
SetGlobalDefaultPosition(pNodeC, lGM);
lT.
Set(70.0, 10.0, 0.0); lGM.
SetT(lT);
lR.
Set(0.0, 0.0, 0.0); lGM.
SetR(lR);
SetGlobalDefaultPosition(pNodeD, lGM);
pInstanceMetaData->
SetName(
"Instance");
return true;
}
{
{
lParentGlobalPosition = GetGlobalDefaultPosition(pNode->
GetParent());
lLocalPosition = lParentGlobalPosition.
Inverse() * pGlobalPosition;
}
else
{
lLocalPosition = pGlobalPosition;
}
}
{
{
lParentGlobalPosition = GetGlobalDefaultPosition(pNode->
GetParent());
lGlobalPosition = lParentGlobalPosition * lLocalPosition;
}
else
{
lGlobalPosition = lLocalPosition;
}
return lGlobalPosition;
}