nodes
This commit is contained in:
parent
a0ca1bffc3
commit
93b4efead1
|
@ -28,6 +28,26 @@ sqlite3 *create_db(const char *db_path, bool overwrite_file)
|
||||||
|
|
||||||
void create_tables(sqlite3 *db)
|
void create_tables(sqlite3 *db)
|
||||||
{
|
{
|
||||||
|
const char *sql_nodes = R"
|
||||||
|
CREATE TABLE IF NOT EXISTS nodes (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
unique_id INTEGER NOT NULL UNIQUE,
|
||||||
|
parent_id INTEGER,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
lcl_translation_x REAL,
|
||||||
|
lcl_translation_y REAL,
|
||||||
|
lcl_translation_z REAL,
|
||||||
|
lcl_rotation_x REAL,
|
||||||
|
lcl_rotation_y REAL,
|
||||||
|
lcl_rotation_z REAL,
|
||||||
|
lcl_scaling_x REAL,
|
||||||
|
lcl_scaling_y REAL,
|
||||||
|
lcl_scaling_z REAL,
|
||||||
|
properties TEXT,
|
||||||
|
FOREIGN KEY (parent_id) REFERENCES fbx_nodes(unique_id)
|
||||||
|
);
|
||||||
|
";
|
||||||
|
|
||||||
const char *sql_meshes = R"(
|
const char *sql_meshes = R"(
|
||||||
CREATE TABLE IF NOT EXISTS meshes (
|
CREATE TABLE IF NOT EXISTS meshes (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
|
|
@ -117,25 +117,35 @@ void each_node(FttContext *ctx, FbxNode *parent_node, int level)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_node_info(FbxNode *node, int level)
|
void print_node_info(FbxNode* node, int level) {
|
||||||
{
|
// 层级前缀
|
||||||
// todo 打印一下节点信息
|
for (int i = 0; i < level; i++) printf("--");
|
||||||
// 1. 平移、旋转、缩放等矩阵
|
|
||||||
// 2. 名称,id, pid等
|
|
||||||
// 3. 节点其他properties
|
|
||||||
|
|
||||||
|
|
||||||
// 打印一下节点信息
|
|
||||||
printf("|");
|
printf("|");
|
||||||
for (int i = 0; i < level; i++)
|
printf("--> ");
|
||||||
{
|
|
||||||
printf("-");
|
// 基础信息:ID/父ID/名称
|
||||||
}
|
|
||||||
printf("> ");
|
|
||||||
FbxNode* parent = node->GetParent();
|
FbxNode* parent = node->GetParent();
|
||||||
uint parent_id = 0;
|
printf("[ID:%lld/PID:%lld] Name: %s\n",
|
||||||
if (parent != NULL) {
|
node->GetUniqueID(),
|
||||||
parent_id = parent->GetUniqueID();
|
parent ? parent->GetUniqueID() : 0,
|
||||||
|
node->GetNameOnly().Buffer());
|
||||||
|
|
||||||
|
// 变换矩阵:平移/旋转/缩放
|
||||||
|
FbxDouble3 t = node->LclTranslation.Get();
|
||||||
|
FbxDouble3 r = node->LclRotation.Get();
|
||||||
|
FbxDouble3 s = node->LclScaling.Get();
|
||||||
|
printf(" Transform: T(%.2f,%.2f,%.2f) R(%.2f,%.2f,%.2f) S(%.2f,%.2f,%.2f)\n",
|
||||||
|
t[0], t[1], t[2], r[0], r[1], r[2], s[0], s[1], s[2]);
|
||||||
|
|
||||||
|
// 属性列表(前5个非默认属性)
|
||||||
|
FbxProperty p = node->GetFirstProperty();
|
||||||
|
int prop_count = 0;
|
||||||
|
printf(" Properties: ");
|
||||||
|
while (p.IsValid() && prop_count < 5) {
|
||||||
|
|
||||||
|
printf("%s[%.2f] ", p.GetName().Buffer(), p.Get<double>());
|
||||||
|
prop_count++;
|
||||||
|
p = node->GetNextProperty(p);
|
||||||
}
|
}
|
||||||
printf("[%lld/%lld]: %s\n", node->GetUniqueID(), parent_id, node->GetNameOnly().Buffer());
|
if (prop_count > 0) printf("\n");
|
||||||
}
|
}
|
Loading…
Reference in New Issue