Open Inventor的VRML2转换SoToVRML2Action

#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... ");   
    SoSeparator *root = SoDB::readAll(&in);   
    if (root) {   
      root->ref();   
      SbString hdr = in.getHeader();   
      in.closeFile();   
      printf("Converting... ");   
      SoToVRML2Action tovrml2;   
      tovrml2.apply(root);   
      SoVRMLGroup *newroot = tovrml2.getVRML2SceneGraph();   
      newroot->ref();   
      root->unref();   
      printf("Writing... ");   
      SoOutput out;   
      out.openFile("out.wrl");   
      out.setHeaderString("#VRML V2.0 utf8");   
      SoWriteAction wra(&out);   
      wra.apply(newroot);   
      out.closeFile();   
      newroot->unref();   
    }   
    return 0;   
  } 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值