#include "../Common/Common.h"
const char * SAMPLE_FILENAME_BEFORE_SWITCH = "Bind_Before_Switch.fbx";
const char * SAMPLE_FILENAME_AFTER_SWITCH = "Bind_After_Switch.fbx";
int main(int , char** )
{
InitializeSdkObjects(lSdkManager, lScene);
bool lResult = LoadScene(lSdkManager, lScene, SAMPLE_FILENAME_BEFORE_SWITCH);
if( lResult )
{
SwitchBinding( lScene );
lResult = SaveScene(lSdkManager, lScene, SAMPLE_FILENAME_AFTER_SWITCH);
}
DestroySdkObjects(lSdkManager, lResult);
return 0;
}
{
for (int lClusterIndex = 0; lClusterIndex < lSkin->GetClusterCount(); ++lClusterIndex)
{
FbxCluster* lCluster=lSkin->GetCluster(lClusterIndex);
lClusterArray.
Add(lCluster);
}
for (int lClusterIndex = 0; lClusterIndex < lClusterArray.GetCount(); ++lClusterIndex)
lSkin->RemoveCluster(lClusterArray[lClusterIndex]);
lClusterArray[0]->GetLink()->LclTranslation.Set(
FbxDouble3 ( -11.0322688253132,5.3883395780739,0) );
lPoseNodeArray.
Add(lCylinder02->GetNode());
FbxAMatrix lTransformMatrix, lTransformLinkMatrix;
lTransformMatrix = lCylinder02->GetNode()->EvaluateGlobalTransform();
for(int lClusterIndex = 0; lClusterIndex < lClusterArray.GetCount(); lClusterIndex++)
{
lClusterArray[lClusterIndex]->SetTransformMatrix(lTransformMatrix);
lTransformLinkMatrix = lClusterArray[lClusterIndex]->GetLink()->EvaluateGlobalTransform();
lClusterArray[lClusterIndex]->SetTransformLinkMatrix(lTransformLinkMatrix);
lSkin->AddCluster(lClusterArray[lClusterIndex]);
lPoseNodeArray.
Add(lClusterArray[lClusterIndex]->GetLink());
}
lCylinder02->AddDeformer(lSkin);
for(int lPoseNodeIndex = 0; lPoseNodeIndex<lPoseNodeArray.GetCount(); ++lPoseNodeIndex)
{
FbxMatrix lBindMatrix = lPoseNodeArray[lPoseNodeIndex]->EvaluateGlobalTransform();
lPose->
Add(lPoseNodeArray[lPoseNodeIndex], lBindMatrix);
}
}