osg 渲染ifc数据-测试
直接使用osg渲染ifc数据,提高渲染速度。
#include "teslamanage.h"
#include <QtWidgets/QApplication>
#include <QtGui/QIcon> #include <osgViewer/Viewer> osg::ref_ptr<osg::Node> createLand(int widthParam, int heightParam, int zParam);
void loadIFCFile(osg::ref_ptr<osgViewer::Viewer> &viewer1,std::wstring &fileNmae); int main(int argc, char *argv[])
{ std::wstring fileName = L"D://ck1.ifc";
osg::ref_ptr<osgViewer::Viewer> viewer1 = new osgViewer::Viewer; loadIFCFile(viewer1, fileName);
viewer1->setUpViewInWindow(, , , , );
return viewer1->run();
} osg::ref_ptr<osg::Node> createLand(int widthParam, int heightParam, int zParam)
{
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
osg::ref_ptr<osg::Geometry> geo = new osg::Geometry; //申请一些顶点
osg::ref_ptr<osg::Vec3Array> vers = new osg::Vec3Array;
geo->setVertexArray(vers.get());
//#if 1
// geo->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP, 0, 4));//创建一个线圈
//#else
geo->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS, , ));//创建一个正方形
//#endif //设置顶点
//vers->push_back(osg::Vec3(-15, 3.0, -15));
//vers->push_back(osg::Vec3(15, 3.0, -15));
//vers->push_back(osg::Vec3(15, 3.0, 15));
//vers->push_back(osg::Vec3(-15, 3.0, 15)); vers->push_back(osg::Vec3(widthParam*(-1.0), heightParam*(-1.0), zParam*(1.0)));
vers->push_back(osg::Vec3(widthParam*(1.0), heightParam*(-1.0), zParam*(1.0)));
vers->push_back(osg::Vec3(widthParam*(1.0), heightParam*(1.0), zParam*(1.0)));
vers->push_back(osg::Vec3(widthParam*(-1.0), heightParam*(1.0), zParam*(1.0))); //申请颜色
osg::ref_ptr<osg::Vec4Array> color = new osg::Vec4Array();
color->push_back(osg::Vec4(1.0, 0.0, 0.0, 0.5));
color->push_back(osg::Vec4(0.0, 1.0, 0.0, 0.5));
color->push_back(osg::Vec4(0.0, 0.0, 1.0, 0.5));
color->push_back(osg::Vec4(1.0, 1.0, 0.0, 0.5)); //设置颜色
geo->setColorArray(color.get());
geo->setColorBinding(osg::Geometry::AttributeBinding::BIND_PER_VERTEX);//设置颜色绑定 //设置法线,正对屏幕的时候最亮
osg::ref_ptr<osg::Vec3Array> norm = new osg::Vec3Array;
geo->setNormalArray(norm);
geo->setNormalBinding(osg::Geometry::AttributeBinding::BIND_OVERALL);
norm->push_back(osg::Vec3(0.0, -1.0, 0.0)); //打开透明度
geo->getOrCreateStateSet()->setMode(GL_BLEND, osg::StateAttribute::ON); //设置线宽
osg::ref_ptr<osg::LineWidth> w = new osg::LineWidth;
w->setWidth(5.0);
geo->getOrCreateStateSet()->setAttributeAndModes(w.get(), osg::StateAttribute::ON); geode->addDrawable(geo.get()); return geode;
}



osg 渲染ifc数据-测试的更多相关文章
- 不同三维引擎渲染IFC数据效果对比
- osg渲染数据高程文件
使用gdal解析DEM文件,将高程数据转换为HeightField对象,然后在osg渲染. 1 源代码 #include <gdal_priv.h> #include <osgVie ...
- [转][osg]osg渲染引擎框架图,流程图(根据《最长一帧》整理)
转自:http://m.blog.csdn.net/article/details?id=49679731 本文参考<<osg最长一帧>>, <<OpenScene ...
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...
- 适应laytpl 渲染模板数据
前言 当我们异步读取数据过来的时候,还要通过手动赋值,显示在页面上吗,那样你就太OUT了,哥告诉你个新方式. 那就是 laytpl 插件 用法一:渲染单条数据 <table id="B ...
- 【vue】渲染大量数据时性能优化
对应vue渲染大量数据时可以考虑下面几点: 1. 异步渲染组件:因为组件渲染太多,影响页面的渲染时间,所有可以延迟组件渲染,可以考虑v-if处理 2. 可以使用虚拟滚动的组件:参考使用这个插件 vue ...
- 超全table功能Datatables使用的填坑之旅--1: 无法渲染表格数据: ajax调用了参数 : success
问题:Datatables: 无法渲染表格数据 原因:datatables的ajax 传了"success":function(){},导致无法渲染数据. ajax 删掉" ...
- ionic ngRepeat追加数据(加载更多,不需要重复渲染dom数据)
1)模版循环在之前的随笔中已经说过,使用挺简单的 http://www.cnblogs.com/tujia/p/6078217.html 简单来说就是控制器输入一个数据变量,模版里用ng-repeat ...
- React.js 小书 Lesson13 - 渲染列表数据
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson13 转载请注明出处,保留原文链接和作者信息. 列表数据在前端非常常见,我们经常要处理这种类型 ...
随机推荐
- 微信小程序~生命周期方法详解
生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js ...
- markdown里面编辑代码
转:http://c.biancheng.net/view/6623.html ------------------------------------------------------------ ...
- springboot搭建环境之使用@Slf4j注解方式,进行日志管理
如果不想每次都写private final Logger logger = LoggerFactory.getLogger(XXX.class); 可以用注解@Slf4j 需要引入依赖为: < ...
- 《奋斗吧!菜鸟》第九次团队作业:Beta冲刺
项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11056511.html 团队名称 奋斗吧!菜鸟 作业学习目标 B ...
- C#:抽象类PK密封类
最近在看关于C#的书,看到了抽象类和抽象方法,另外还看到了密封类和密封方法,那么二者有什么联系又有什么区别,我把最近的收获分享给大家! 1.抽象类和抽象方法: ·C#使用abstract关键字,将类或 ...
- css cursor效果图
效果图: <!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset=& ...
- django模型类
模型类 ORM django中内嵌了ORM框架,ORM框架可以将类和数据表进行对应起来,只需要通过类和对象就可以对数据表进行操作. 在Django中主要是设计类:模型类. ORM另外一个作用:根据设计 ...
- 项目后端 - Django配置
Django项目创建 环境 """ 这里案例项目名叫luffy 为luffy项目创建一个虚拟环境 >: mkvirtualenv luffy "" ...
- RocketMQ部分消息消费不到的问题
在企业项目中,利用RocketMQ接收数据,存库. 由于是第一次在项目中具体的使用RocketMQ,一直采坑. 1.发现问题:在最终的联调过程中,并发压测,订单数据丢失,同一时刻,oms推送900+的 ...
- P3293 [SCOI2016]美味 主席树+按位贪心
给定长度为 \(n\) 序列 \(a[i]\) ,每次询问区间 \([l,r]\) ,并给定 \(b,x\) 中的一个数 \(p=a[i]\) ,使得最大化 \(b \bigoplus p^x\) 主 ...