30 lines
1.2 KiB
C++
30 lines
1.2 KiB
C++
#include <fbxsdk.h>
|
||
#include <vector>
|
||
#include <tools.h>
|
||
#include <tuple>
|
||
|
||
using namespace std;
|
||
|
||
using Triangle = std::tuple<int, int, int>;
|
||
|
||
/**
|
||
* 递归遍历FBX节点树结构
|
||
* @param parent_node 起始父节点,从此节点开始向下遍历(若为nullptr则函数不执行任何操作)
|
||
* @param level 当前节点层级(用于缩进或层级标识,建议初始调用时传入0)
|
||
* @note 函数内部会递归访问parent_node的所有直接子节点和间接子节点
|
||
* @warning 若输入的parent_node无效(如野指针)可能导致程序崩溃
|
||
*/
|
||
void each_node(const FttContext* ctx, FbxNode* parent_node, int level);
|
||
/**
|
||
* 打印FBX节点的基本信息(含层级缩进)
|
||
* @param node 待打印信息的节点指针(nullptr时输出警告日志)
|
||
* @param level 节点层级(用于控制打印缩进,每级建议缩进4空格)
|
||
* @details 输出内容包含:节点名称、类型、子节点数量、层级深度
|
||
* @example 层级2的节点打印格式:" |-- NodeName (Type: Mesh, Children: 3)"
|
||
*/
|
||
void print_node_info(FbxNode* node, int level);
|
||
|
||
FbxNode* get_fbx_root_node(const char* fbx_path);
|
||
|
||
int load_triangles(fbxsdk::FbxNodeAttribute* attr, std::vector<Triangle>& triangles);
|