osg::NodeVisitor example
[0]osg::Group
[1]osg::MatrixTransform
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2] osg::Geode
[3]osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[2]osg::Geode
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2]osg::MatrixTransform
[3] osg::Geode
[4]osg::Geometry
[4]osg::Geometry
[4] osg::Geometry
[3]osg::Geode
[2] osg::MatrixTransform
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2] osg::Geode
[3]osg::Geometry
[3]osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[2]osg::Geode
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2] osg::Geode
[3]osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[2]osg::Geode
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2] osg::Geode
[3]osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[2]osg::Geode
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2] osg::Geode
[3]osg::Geometry
[3]osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[2]osg::Geode
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2]osg::MatrixTransform
[3] osg::Geode
[4]osg::Geometry
[4]osg::Geometry
[4]osg::Geometry
[4]osg::Geometry
[4] osg::Geometry
[4]osg::Geometry
[4] osg::Geometry
[4]osg::Geometry
[4] osg::Geometry
[3]osg::Geode
[2] osg::MatrixTransform
[1] osg::MatrixTransform
[1]osg::MatrixTransform
[2] osg::Geode
[3]osg::Geometry
[3]osg::Geometry
[3] osg::Geometry
[2]osg::Geode
[1] osg::MatrixTransform
[0] osg::Group
class InfoVisitor : public osg::NodeVisitor
{
public:
InfoVisitor()
:osg::NodeVisitor(TRAVERSE_ALL_CHILDREN), _indent()
{} virtual void apply(osg::Node& node)
{
for (int i = ; i < _indent; i++) std::cout << " ";
std::cout << "[" << _indent << "]" << node.libraryName()
<< "::" << node.className() << std::endl; _indent++;
traverse(node);
_indent--; for (int i = ; i < _indent; i++) std::cout << " ";
std::cout << "[" << _indent << "] " << node.libraryName()
<< "::" << node.className() << std::endl;
} virtual void apply(osg::Geode& node)
{
for (int i = ; i < _indent; i++) std::cout << " ";
std::cout << "[" << _indent << "] " << node.libraryName()
<< "::" << node.className() << std::endl; _indent++; for (unsigned int n = ; n < node.getNumDrawables(); n++)
{
osg::Drawable* draw = node.getDrawable(n);
if (!draw)
continue;
for (int i = ; i < _indent; i++) std::cout << " ";
std::cout << "[" << _indent << "]" << draw->libraryName() << "::"
<< draw->className() << std::endl;
} traverse(node);
_indent--; for (int i = ; i < _indent; i++) std::cout << " ";
std::cout << "[" << _indent << "]" << node.libraryName()
<< "::" << node.className() << std::endl;
}
private:
int _indent;
};
该模型在unity3d中结构
该模型在3dmax中结构
osg::NodeVisitor example的更多相关文章
- osg::NodeVisitor中计算一个节点对应的世界变换矩阵、法向量、顶点坐标
class MyNodeVisitor:public osg::NodeVisitor { pulic: MyNodeVisitor():osg::NodeVisitor(osg::NodeVisit ...
- osg::NodeVisitor
[1]osg::Group [2]osg::PositionAttitudeTransform [2]osg::MatrixTransform [3]osg::Geode [2]osg::Matrix ...
- osg::NodeVisitor osg3.4.0
x:-89.4588 y:-12.1245 z:-11.7807x:-89.4588 y:-6.44823 z:-11.7807x:-89.2164 y:-9.07239 z:-11.811x:-89 ...
- OSG程序设计之osg::NodeVisitor
本文所有内容来自<OpenSceneGraph三维渲染引擎设计与实践>一书. 本文主要讨论的是OSG中节点的访问. 对于节点的访问是从节点接收一个访问器开始的,用户执行某个节点的accep ...
- OSG计时器与时间戳
static osg::Timer* sendMsgTimer = new osg::Timer; if (sendMsgTimer->time_m()>100)//100ms {// d ...
- OSG消息机制之事件处理概述
OSG的消息机制包括好多个头文件预定义及多个类. 首先,消息接收相关的类当属osgGA::GUIEventHandler和osgGA::GUIEventAdapter这两个类了.前者处理OSG程序与用 ...
- OSG中找到特定节点的方法
OSG中找到特定节点的方法 转自:http://38288890.blog.163.com/blog/static/19612845320072721549504/ 为了在OSG中找到需要的节点并对节 ...
- NodeVisitor的使用-遍历Geode节点下的Geometry并获取顶点、法向量等数据
struct Subset { std::vector<float> vertexs;//位置 std::vector<float> normals;//法向 std::vec ...
- NodeVisitor的使用-遍历Geode节点并在它与父节点之间添加一个LOD节点
#include <osg\NodeVisitor>#include <osg\MatrixTransform>#include <osg\PagedLOD>#in ...
随机推荐
- 使用LPCXpresso开发板调试外部的电路板
MCUXpresso IDE开发环境有一个主要的功能:支持LPC-Link2仿真调试器.通过这种方式,对于基于ARM的电路板,我可以使用这个功能强大的仿真调试器来调试.在NXP的众多LPCXpress ...
- Redis未授权访问漏洞复现及修复方案
首先,第一个复现Redis未授权访问这个漏洞是有原因的,在 2019-07-24 的某一天,我同学的服务器突然特别卡,卡到连不上的那种,通过 top,free,netstat 等命令查看后发现,CPU ...
- VGridControl 使用技巧
1. 让列的宽度自动填充 如果VGridControl的LayoutStyle属性为BandsView或SingleRecordView,那么把VGridControl的OptionsView.Aut ...
- P1363 幻象迷宫[搜索]
题目描述 (喵星人LHX和WD同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫.) WD:呜呜,肿么办啊-- LHX:momo...我们一定能走出去的! WD:嗯,+U+U ...
- vue 组件高级用法(递归组件,内联模板,动态组件,异步组件)
- canvas小球动画
绘制小球 我们将会画一个小球用于动画学习,所以首先在画布上画一个球.下面的代码帮助我们建立画布. <canvas id="></canvas> 跟平常一样,我们需要先 ...
- HR#7 题解
T1 签到题 #include<bits/stdc++.h> #define R register int using namespace std; inline int g() { R ...
- JZOJ 5870 地图
直接解释题解,记录一下.
- React重置非受控组件state的方法
如果想通过props来重置state的值.有3种方法: 1. 最好的方法:key属性 修改key属性的值,可以使组件卸载后重新加载.所有的状态全部重置. 这种情况可以给key设一个每次渲染都会改变的值 ...
- LOJ P10116 清点人数 题解
每日一题 day13 打卡 Analysis 用简单的树状数组维护单点修改和查询就行了 #include<iostream> #include<cstdio> #include ...