0
我有一個小小的功能來創建一個WorldObject的新實例。osg :: Quat不旋轉
我想用
OSG :: ref_ptr < OSG :: PositionAttitudeTransform>
的平移和旋轉但我無法弄清楚的一個問題。
我使用setTranslation與Vec3女巫工作很vell。 但是,使用旋轉方式的Quat什麼都不做。
還有就是代碼:
osg::ref_ptr <osg::PositionAttitudeTransform> getWorldObjectClone(const char* name, osg::Vec3 position = osg::Vec3(0, 0, 0), osg::Vec3 rotation = osg::Vec3(0, 0, 0))
{
osg::ref_ptr <osg::PositionAttitudeTransform> tmp = new osg::PositionAttitudeTransform;
osg::Quat q(0, osg::Vec3(0, 0, 0));
tmp = dynamic_cast<osg::PositionAttitudeTransform*>(WorldObjects[name]->clone(osg::CopyOp::DEEP_COPY_ALL));
tmp->setPosition(position);
q.makeRotate(rotation.x(), 1, 0, 0);
q.makeRotate(rotation.y(), 0, 1, 0);
q.makeRotate(rotation.z(), 0, 0, 1);
tmp->setAttitude(q);
return tmp;
}
我試圖旋轉= {90,0,0}(度)和旋轉= {1,0,0}(弧度),但既沒有任何效果。
使用四元組是否存在錯誤?
Dropye