|
我现在需到这样一个问题,麻烦大家给我提提思路吧
我要完成一个“在数据手套的交互下实现零件的约束导航装配”毕业设计
在虚拟手拾取零件时,我采用的是《海军教程》中的交集测试的方法,得到的是碰撞检
检测后的世界坐标,现在问题是:如何实现在碰撞检查后 零件跟随着虚拟手一块运动
啊?
if(mhand!= NULL)
{
mt->setMatrix(*mhand);//mhand是获得的虚拟手的世界坐标指针
osg:ineSegment *handSegment=new osg::LineSegment();
osg::Vec3 start=osg::Vec3( 0.0, 0,15.0);
osg::Vec3 end=osg::Vec3( 0.0, -clen,15.0);
start=start*(*mhand);
end=end*(*mhand);
handSegment->set(start,end);
osgUtil::IntersectVisitor handVisitor;
handVisitor.addLineSegment(handSegment);
boxNode->accept(handVisitor);
osgUtil::IntersectVisitor::HitList handboxhits;
handboxhits= handVisitor.getHitList(handSegment);
osgUtil::Hit hitResults;
if (!handboxhits.empty())
{
hitResults=handboxhits.front();
mt1->setMatrix(*mhand);
} |
|