博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OSG闪存
阅读量:6292 次
发布时间:2019-06-22

本文共 1822 字,大约阅读时间需要 6 分钟。

《osg程序设计教程》

第四章

1.模型node与几何图元geode

2.geometry组成

2.1顶点Vertex,Vec3Array,setVertexArray(v.get);

2.2颜色color,Vec4Array,setColorArray(c.get);

2.3关联方式,geom.addPrimitiveSet(

new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4));

2.4法线normal,Vec3Array,setNormalArray(n.get);

setNormalBinding(::BIND_OVERALL);

n.push_back(osg::Vec3(0.f,-1.f,0.f);

3.geode.addDrawable(geom.get);

--------------------

1.状态属性类LineWidth

lineWidth.setWidth(10.0);

geom.getOrCreateStateSet().

setAttributeAndModes(lineWidth.get,

osg::StateAttribute::ON);

2.内置几何类型osg::Shape

3.附录..asGeometry();

第五章

1.viewer.getSceneData();得到数据。

2.键盘响应得到viewer

addEventHandler(osgGA::GUIEventHandler);

可以控制事件的拦截,由几个函数处理。

要不要继续向下传递。

3.重写handle();把参数转换为viewer

判断事件类型GUIEventAdapter::KEYDOWN:

viewer.getSceneData.asGroup.getChild.setNodeMask;

4.拾取pick

判断射线与viewer中的物体相交

判断相交结点为我们需要的。

5.x,y坐标通过handle参数得到

射线

osgUtil::LineSegmentIntersector::Intersections

viewer.computeIntersections(x,y,intersection)

遍历Intersections

可能通过setName();getName();筛选结点

第六章

1.osg自带Trackball

2.osgGA::MatrixManipulator专门响应控制viewer

3.碰撞检查

LineSegment,osgUtil::IntersectVisitor

iv.addLineSegment(line.get);

node.accept(iv);

iv::HitList hlist;

4.制作路径漫游

时间,位置,旋转角度。

5.mfc中osg

去掉OnNewDocument();

重载OnOpenDocument();

CCoreOSG(HWND hWnd);

initOSG();

initManipulators(void);

initSceneGraph(void);

initCameraConfig(void);

setupWindow(void);

preFrameUpdate();

postFrameUpdate();

6.CView::OnEraseBkgnd(pDC);

第七章

1.回调:某件事情发生时执行一个函数。

2.按S显示帧速。

3.fountain.osg再看。

4.自定义回调

继承NodeCallback

重写operator();

更新矩阵setMatrix(Matrix::translate);

traverse(node,nv);贯穿

5.定义矩阵节点MatrixTransform

.setUpdateCallback(new MyCallBack);

6.节点访问器,参看osgCallBack案例

构造函数(::TRAVERSE_ALL_CHILDREN);

apply(osg::Geode)

geode.getNumDrawables();

geom=dyn_cast(geode.getDrawable(i));

geom.getVertexArray();

vArr.insert(end,begin,end);

遍历得到的结果可以放在类成员变量里。

转载地址:http://bpdta.baihongyu.com/

你可能感兴趣的文章
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>
2(2).选择排序_冒泡(双向循环链表)
查看>>
MySQL 索引 BST树、B树、B+树、B*树
查看>>