#include <Inventor/SoDB.h> #include <Inventor/SoInteraction.h> #include <Inventor/SoInput.h> #include <Inventor/SoOutput.h> #include <Inventor/actions/SoWriteAction.h> #include <Inventor/actions/SoToVRML2Action.h> #include <Inventor/nodes/SoSeparator.h> #include <Inventor/VRMLnodes/SoVRMLGroup.h> int main(int argc, char *argv[]) { SoDB::init(); SoInteraction::init(); SoInput in; in.openFile(argv[1]); printf("Reading.../n"); SoSeparator *root = SoDB::readAll(&in); if (root) { root->ref(); SbString hdr = in.getHeader(); in.closeFile(); printf("Converting.../n"); SoToVRML2Action tovrml2; tovrml2.apply(root); SoVRMLGroup *newroot = tovrml2.getVRML2SceneGraph(); newroot->ref(); root->unref(); printf("Writing.../n"); SoOutput out; out.openFile("out.wrl"); out.setHeaderString("#VRML V2.0 utf8"); SoWriteAction wra(&out); wra.apply(newroot); out.closeFile(); newroot->unref(); } return 0; }
Open Inventor的VRML2转换SoToVRML2Action
最新推荐文章于 2021-08-24 13:38:50 发布
本文介绍了一个简单的程序,该程序可以将SOVRML格式的3D模型文件转换为VRML2格式。程序首先初始化SoDB和SoInteraction库,然后读取指定的输入文件,并使用SoDB::readAll()函数解析整个场景图。接下来,通过SoToVRML2Action将读取的场景图转换为VRML2格式,最后将转换后的场景图写入到名为out.wrl的文件中。
744

被折叠的 条评论
为什么被折叠?



