程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Open Inventor的VRML2轉換SoToVRML2Action

Open Inventor的VRML2轉換SoToVRML2Action

編輯:關於C語言

view plaincopy to clipboardprint?
#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;  
  } 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved