#include "DisplayCommon.h"
#include "DisplayAnimation.h"
#if defined (FBXSDK_ENV_MAC)
#pragma GCC diagnostic ignored "-Wformat-security"
#endif
void DisplayAnimation(
FbxAudioLayer* pAudioLayer,
bool isSwitcher =
false);
{
int i;
{
FbxString lOutputString =
"Animation Stack Name: ";
lOutputString += lAnimStack->
GetName();
lOutputString += "\n";
FBXSDK_printf(lOutputString);
}
}
{
int l;
lOutputString = " contains ";
if (nbAnimLayers==0 && nbAudioLayers==0)
lOutputString += "no layers";
if (nbAnimLayers)
{
lOutputString += nbAnimLayers;
lOutputString += " Animation Layer";
if (nbAnimLayers > 1)
lOutputString += "s";
}
if (nbAudioLayers)
{
if (nbAnimLayers)
lOutputString += " and ";
lOutputString += nbAudioLayers;
lOutputString += " Audio Layer";
if (nbAudioLayers > 1)
lOutputString += "s";
}
lOutputString += "\n\n";
FBXSDK_printf(lOutputString);
for (l = 0; l < nbAnimLayers; l++)
{
lOutputString = "AnimLayer ";
lOutputString += l;
lOutputString += "\n";
FBXSDK_printf(lOutputString);
DisplayAnimation(lAnimLayer, pNode, isSwitcher);
}
for (l = 0; l < nbAudioLayers; l++)
{
lOutputString = "AudioLayer ";
lOutputString += l;
lOutputString += "\n";
FBXSDK_printf(lOutputString);
DisplayAnimation(lAudioLayer, isSwitcher);
FBXSDK_printf("\n");
}
}
{
int lClipCount;
lOutputString = " Name: ";
lOutputString += pAudioLayer->
GetName();
lOutputString += "\n\n";
lOutputString += " Nb Audio Clips: ";
lOutputString += lClipCount;
lOutputString += "\n";
FBXSDK_printf(lOutputString);
for (int i = 0; i < lClipCount; i++)
{
lOutputString = " Clip[";
lOutputString += i;
lOutputString += "]:\t";
lOutputString += "\n";
FBXSDK_printf(lOutputString);
}
}
{
int lModelCount;
lOutputString = " Node Name: ";
lOutputString += "\n\n";
FBXSDK_printf(lOutputString);
DisplayChannels(pNode, pAnimLayer, DisplayCurveKeys, DisplayListCurveKeys, isSwitcher);
FBXSDK_printf ("\n");
for(lModelCount = 0; lModelCount < pNode->
GetChildCount(); lModelCount++)
{
DisplayAnimation(pAnimLayer, pNode->
GetChild(lModelCount), isSwitcher);
}
}
{
if (!isSwitcher)
{
if (lAnimCurve)
{
FBXSDK_printf(" TX\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" TY\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" TZ\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" RX\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" RY\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" RZ\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" SX\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" SY\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" SZ\n");
DisplayCurve(lAnimCurve);
}
}
if (lNodeAttribute)
{
if (lAnimCurve)
{
FBXSDK_printf(" Red\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" Green\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" Blue\n");
DisplayCurve(lAnimCurve);
}
if (light)
{
if (lAnimCurve)
{
FBXSDK_printf(" Intensity\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" Outer Angle\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" Fog\n");
DisplayCurve(lAnimCurve);
}
}
if (camera)
{
if (lAnimCurve)
{
FBXSDK_printf(" Field of View\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" Field of View X\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" Field of View Y\n");
DisplayCurve(lAnimCurve);
}
if (lAnimCurve)
{
FBXSDK_printf(" Optical Center X\n");
DisplayCurve(lAnimCurve);
}
if(lAnimCurve)
{
FBXSDK_printf(" Optical Center Y\n");
DisplayCurve(lAnimCurve);
}
if(lAnimCurve)
{
FBXSDK_printf(" Roll\n");
DisplayCurve(lAnimCurve);
}
}
{
for(int lBlendShapeIndex = 0; lBlendShapeIndex<lBlendShapeDeformerCount; ++lBlendShapeIndex)
{
for(int lChannelIndex = 0; lChannelIndex<lBlendShapeChannelCount; ++lChannelIndex)
{
const char* lChannelName = lChannel->
GetName();
lAnimCurve = lGeometry->
GetShapeChannel(lBlendShapeIndex, lChannelIndex, pAnimLayer,
true);
if(lAnimCurve)
{
FBXSDK_printf(" Shape %s\n", lChannelName);
DisplayCurve(lAnimCurve);
}
}
}
}
}
{
{
if (!lCurveNode){
continue;
}
{
lMessage = " Property ";
{
lMessage += " (Label: ";
lMessage += ")";
};
DisplayString(lMessage.
Buffer());
{
lAnimCurve = lCurveNode->
GetCurve(0U, c);
if (lAnimCurve)
DisplayCurve(lAnimCurve);
}
}
{
lMessage = " Property ";
{
lMessage += " (Label: ";
lMessage += ")";
}
DisplayString(lMessage.
Buffer());
{
lAnimCurve = lCurveNode->
GetCurve(0U, c);
if (lAnimCurve)
{
DisplayString(" Component ", lComponentName1);
DisplayCurve(lAnimCurve);
}
}
{
lAnimCurve = lCurveNode->
GetCurve(1U, c);
if (lAnimCurve)
{
DisplayString(" Component ", lComponentName2);
DisplayCurve(lAnimCurve);
}
}
{
lAnimCurve = lCurveNode->
GetCurve(2U, c);
if (lAnimCurve)
{
DisplayString(" Component ", lComponentName3);
DisplayCurve(lAnimCurve);
}
}
}
{
lMessage = " Property ";
{
lMessage += " (Label: ";
lMessage += ")";
};
DisplayString(lMessage.
Buffer());
{
lAnimCurve = lCurveNode->
GetCurve(0U, c);
if (lAnimCurve)
DisplayListCurve(lAnimCurve, &lProperty);
}
}
}
}
}
static int InterpolationFlagToIndex(int flags)
{
return 0;
}
static int ConstantmodeFlagToIndex(int flags)
{
return 0;
}
static int TangentmodeFlagToIndex(int flags)
{
return 0;
}
static int TangentweightFlagToIndex(int flags)
{
return 0;
}
static int TangentVelocityFlagToIndex(int flags)
{
return 0;
}
{
static const char* interpolation[] = { "?", "constant", "linear", "cubic"};
static const char* constantMode[] = { "?", "Standard", "Next" };
static const char* cubicMode[] = { "?", "Auto", "Auto break", "Tcb", "User", "Break", "User break" };
static const char* tangentWVMode[] = { "?", "None", "Right", "Next left" };
float lKeyValue;
char lTimeString[256];
int lCount;
for(lCount = 0; lCount < lKeyCount; lCount++)
{
lKeyValue =
static_cast<float>(pCurve->
KeyGetValue(lCount));
lOutputString = " Key Time: ";
lOutputString += ".... Key Value: ";
lOutputString += lKeyValue;
lOutputString += " [ ";
lOutputString += interpolation[ InterpolationFlagToIndex(pCurve->
KeyGetInterpolation(lCount)) ];
{
lOutputString += " | ";
lOutputString += constantMode[ ConstantmodeFlagToIndex(pCurve->
KeyGetConstantMode(lCount)) ];
}
{
lOutputString += " | ";
lOutputString += cubicMode[ TangentmodeFlagToIndex(pCurve->
KeyGetTangentMode(lCount)) ];
lOutputString += " | ";
lOutputString += " | ";
}
lOutputString += " ]";
lOutputString += "\n";
FBXSDK_printf (lOutputString);
}
}
{
int lKeyValue;
char lTimeString[256];
int lCount;
for(lCount = 0; lCount < lKeyCount; lCount++)
{
lKeyValue =
static_cast<int>(pCurve->
KeyGetValue(lCount));
lOutputString = " Key Time: ";
lOutputString += ".... Key Value: ";
lOutputString += lKeyValue;
lOutputString += " (";
lOutputString += ")";
lOutputString += "\n";
FBXSDK_printf (lOutputString);
}
}