最近根据IFC标准,自己手工编写了一个描述不规则楼板的ifc文件——ifcslab,编写程序解析该ifc文件,获取ifcslab的属性,最后通过三维引擎渲染出来了。
渲染效果如下:
#include <osgViewer/Viewer> #include <osg/Node> #include <osg/Group> #include <osg/ShapeDrawable> #include <osgUtil/Optimizer> #include <osgUtil/Tessellator> int main() { osgViewer::Viewer* viewer = new osgViewer::Viewer(); osg::Group* root = new osg::Group(); //添加楼板数据 osg::Geode* geode = createIfcSlab(); root->addChild(geode); //优化场景 osgUtil::Optimizer optimizer; optimizer.optimize(root); viewer->getCamera()->setClearColor(osg::Vec4(1, 1, 1, 0)); viewer->setUpViewInWindow(200, 200, 700, 500, 0); viewer->setSceneData(root); viewer->realize(); viewer->run(); return 0; }
#################