跳转至

对象

创建对象

类FbxManager用于内存管理,管理Fbx的相关资源。

//创建一个管理者
FbxManager* lSdkManager = FbxManager::Create();

//创建新对象
//1. 第一个参数:父节点指针
//2. 第二个参数:名称
FbxScene* lScene = FbxScene::Create(lSdkManager, "Scene Name");
//由于场景是根节点,需要使用FbxManager来创建,所以第一个参数为FbxManager

//创建一个节点对象,其父节点为lScene
FbxNode* lNode = FbxNode::Create(lScene , "node");
//创建一个网格对象,其父节点为lScene
FbxMesh* lMesh = FbxMesh::Create(lScene , "Mesh");

//销毁
lMesh->Destroy();      // 销毁网格
lNode->Destroy();      // 销毁节点
lScene->Destroy();     // 破坏场景和它的对象
lSDKManager->Destroy() // 销毁SDK管理器和它管理的任何剩余对象。

可以通过调用FbxObject::GetFbxManager()来检索用于实例化FbxObject的管理者

举例:FbxImporter(FbxImporter->FbxIO->FbxObject)

FbxImporter* pImporter;

FbxManager* lSdkManager = pImporter->GetFbxManager();
//获得创建pImporter的FbxManger

复制一个对象

// 假设lScene是一个指向有效Scene对象的指针。
FbxMesh* lSourceMesh = FbxMesh::Create (lScene, "");

// 为lSourceMesh定义控制点等
FbxMesh* lTargetMesh = FbxMesh::Create (lScene, "");

//将数据从lSourceMesh复制到lTargetMesh
lTargetMesh->Copy(lSourceMesh);
//源对象和目标对象必须是实例相同的类

注意:复制,只会复制它和它的属性,不会复制到与其他人的关系

  1. 复制FbxObject,还将复制它所有关联的FbxProperty实例和值
  2. 但不会复制它任何对象间的连接(例如,父-子关系)
//初始化FbxNode* lNode ...
//分别调用FbxProperty::set()和FbxProperty::Get()来设置和访问的数据。
FbxDouble3 translation = lNode->LclTranslation.Get();
FbxDouble3 rotation = lNode->LclRotation.Get();
FbxDouble3 scaling = lNode->LclScaling.Get();