void saveOcafTree(TDF_Label& label, const char* filename)
{
TDocStd_Document document("ocaf_tree");
TDF_TagSource source;
document.NewCommand();
document.GetRoot().AddLabel(label, source);
document.SaveAs(filename);
document.CommitCommand();
}
这个函数会创建一个新的 OCAF 文档,将我们的根标签添加到文档的根标签下,并将文档保存到指定的文件名中。
最后,我们可以编写一个测试函数来创建一个 OCAF 树,将一些数据添加到树中,保存树到文件中,然后再次加载该文件并打印 OCAF 树:
int main()
{
// 创建根标签
TDF_Label label = createOcafTree();
// 添加数据到树中
TDF_Label child1 = addChild(label, "Child 1");
TDF_Label child2 = addChild(label, "Child 2");
TDF_Label grandchild1 = addChild(child1, "Grandchild 1");
// 打印 OCAF 树
printOcafTree(label);
// 保存 OCAF 树到文件
saveOcafTree(label, "ocaf_tree.xml");
// 加载 OCAF 树并打印
TDF_Label loadedLabel = loadOcafTree("ocaf_tree.xml");
printOcafTree(loadedLabel);
return 0;
}
在这个测试函数中,我们首先创建一个根标签,然后向 OCAF 树中添加一些数据。接着,我们打印 OCAF 树,保存它到文件中,加载该文件并再次打印 OCAF 树。
这样,我们就完成了使用 OCAF 创建一个父子孙级别的结构树的过程。