Osgearth2.10之添加指北针

基于Osgearth对象使用osgEarth::Util::Controls::ImageControl添加指北针,代码如下:

osg::ref_ptr pCompass = osgDB::readImageFile(“指北针图像”);

if (pCompass.valid())

{

        osg::ref_ptr pCS = osgEarth::Util::Controls::ControlCanvas::getOrCreate(m_MainViewer);

        m_ImageControl = new osgEarth::Util::Controls::ImageControl(pCompass.get());

        m_ImageControl->setHorizAlign(osgEarth::Util::Controls::Control::ALIGN_RIGHT);

        m_ImageControl->setVertAlign(osgEarth::Util::Controls::Control::ALIGN_TOP);

        m_ImageControl->setFixSizeForRotation(true);//指北针旋转过程中保持尺寸不变

        m_ImageControl->setMargin(osgEarth::Util::Gutter(40,40,40,40));

        pCS->addControl(m_ImageControl.get());

}


继承osgGA::GUIEventHandler实现自定义类,通过m_MainViewer->addEventHandler(),当ViewPoint发生变化时,使用m_ImageControl->setRotation()旋转指北针。

你可能感兴趣的:(C++,Qt5,Osgearth)