【OSG细节实现】节点围绕位于axisPos平行于axis的轴进行旋转
2024-10-13 22:06:34
//绕着与axis平行的任意轴旋转
void rotate(const std::string& name, float angle, osg::Vec3 axisPos, osg::Vec3 axis)
{
AniNodeMap::iterator itr = _anMap.find(name);
if(itr != _anMap.end())
{
osg::Quat quat;
quat.makeRotate(angle, axis); //先移动到axis,旋转,然后再移动到axisPos
osg::Matrix matrix = osg::Matrix::translate(axisPos) *
osg::Matrix::rotate(quat) *
osg::Matrix::translate(-axisPos); if(itr->second)
{
osg::Matrix matrix1 = dynamic_cast<osg::MatrixTransform*>(itr->second)->getMatrix();
matrix1 *= matrix;
dynamic_cast<osg::MatrixTransform*>(itr->second)->setMatrix(matrix1);
}
}
}
最新文章
- centos6.5下使用yum完美搭建LNMP环境(php5.6) 无脑安装
- sql server 导出表结构到 word
- eclipse添加js,html,jsp编辑输入补充提示
- Entity framework 级联删除注意事项
- label 与 input
- grep sed
- python challenge第1关--NoteBook上的“乱码”
- matplotlib 显示中文
- 浅谈C中的指针和数组(五)
- pull类型消息中间件-消息发布者(一)
- 框架和css基础
- Android开发——BroadcastReceiver广播的使用
- 解读经典《C#高级编程》第七版 Page100-107.继承.Chapter4
- altium designer 制作内部不铺铜的封装,如三极管下面禁止铺铜
- 联想ts550服务器安装windows2008R2系统
- koa和express对比
- python文件处理b模式
- hdu5335(bfs,贪心)
- 模版层Template layer
- c++builder 6 远程调试