osganimationviewer例子

本文介绍了osganimationviewer示例,这是一个简单的骨骼动画查看器,使用AnimationManagerBase和AnimtkViewerModelController进行交互操作。文章重点讲解了如何根据drawBone参数绘制bone坐标轴,以及osgWidget库在操作界面中的应用,同时探讨了NodeVisitor的NodeMask机制在节点显隐控制中的作用。
摘要由CSDN通过智能技术生成

这个例子是一个简单的骨骼动画查看器。
"--drawbone"是否显示每个bone的坐标轴,通过AnimationManagerFinder获取到AnimationManagerBase

然后给了跟节点的UpdateCallback和AnimtkViewerModelController::setModel,
AnimtkViewerModelController是什么呢,是一个controller,界面和AnimationManagerBase之间的互操

作类,stop、play等等操作AnimationManagerBase的,注意一下 typedef std::map<std::string,

osg::ref_ptr<osgAnimation::Animation> > AnimationMap; 这里定义一个AnimationMap是操作了所有

的Animation,也就是Animation是一个动画的基本单位。
if (drawBone) {
        osg::notify(osg::INFO) << "Add Bones Helper" << std::endl;
       

AddHelperBone addHelper;
        node->accept(addHelper);
    }
根据drawBone为每个bone绘制一个坐标轴。
AnimtkViewerGUI封装了WindowManager实现了一个操作按钮,这里面就是调用上面

AnimtkViewerModelController中的内容,这里设计很巧妙,
addChild(_buttonBox.get());
    addChild(_labelBox.get());
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值