#include "../Common/Common.h"
#define SAMPLE_FILENAME "StereoCamera.fbx"
void GetStereoCameraInfo(
FbxNode* pNode);
void CreateStereoCamera(
FbxScene* pScene);
static bool gVerbose = true;
int main(int argc, char** argv)
{
bool lResult;
InitializeSdkObjects(lSdkManager, lScene);
for( int i = 1, c = argc; i < c; ++i )
{
if(
FbxString(argv[i]) ==
"-test" ) gVerbose =
false;
else if( lFilePath.IsEmpty() ) lFilePath = argv[i];
}
if( lFilePath.IsEmpty() ) lFilePath = SAMPLE_FILENAME;
FBXSDK_printf("\n\nFile: %s\n\n", lFilePath.Buffer());
lResult = LoadScene(lSdkManager, lScene, lFilePath.Buffer());
if(lResult == false)
{
FBXSDK_printf("\n\nAn error occurred while loading the scene...");
}
else
{
if(!lScene)
{
FBX_ASSERT_NOW("null scene");
}
GetStereoCameraInfo(lRootNode);
CreateStereoCamera(lScene);
}
DestroySdkObjects(lSdkManager, lResult);
return 0;
}
void GetStereoCameraInfo(
FbxNode* pNode)
{
if(!pNode)
return;
{
FBXSDK_printf(
"left camera: %s\n", lLeftName.
Buffer());
FbxString lRightName = lRightCamera->GetName();
FBXSDK_printf(
"right camera: %s\n", lRightName.
Buffer());
FBXSDK_printf("reevaluated left camera film offset: %f\n", lLeftOffsetX);
FBXSDK_printf("The original FBX left camera film offset: %f\n", lLeftFbxOffsetX);
FBXSDK_printf("reevaluated right camera film offset: %f\n", lRightOffsetX);
double lRightFbxOffsetX = lRightCamera->FilmOffsetX.Get();
FBXSDK_printf("The original FBX right camera film offset: %f\n", lRightFbxOffsetX);
FBXSDK_printf("===local TRS of left camera===\n");
PrintMatrix(lLeft_localMatrix);
FBXSDK_printf("===global TRS of left camera===\n");
PrintMatrix(lLeft_globalMatrix);
FBXSDK_printf("===local TRS of right camera===\n");
PrintMatrix(lRight_localMatrix);
FBXSDK_printf("===global TRS of right camera===\n");
PrintMatrix(lRight_globalMatrix);
}
for (i = 0; i < lCount; i++)
{
GetStereoCameraInfo(pNode->
GetChild(i));
}
}
{
if( !gVerbose ) return;
FBXSDK_printf(" T : %f %f %f %f\n",
FBXSDK_printf(" R : %f %f %f %f\n",
FBXSDK_printf(" S : %f %f %f %f\n",
}
void CreateStereoCamera(
FbxScene* pScene)
{
if(!pScene)
return;
FBXSDK_printf("FocalLength of left camera: %f\n", lFocalLength_Left);
double lFocalLength_Left_src = 0;
if(lLeftSrcLengthProperty.
IsValid())
{
lFocalLength_Left_src = lLeftSrcLengthProperty.
Get<
FbxDouble>();
FBXSDK_printf("Initialized FocalLength of left camera source: %f\n", lFocalLength_Left_src);
FBXSDK_printf("FocalLength of left camera: %f\n", lFocalLength_Left);
lFocalLength_Left_src = lLeftSrcLengthProperty.
Get<
FbxDouble>();
FBXSDK_printf("FocalLength of left camera source: %f\n", lFocalLength_Left_src);
}
}