osg.Billboard
是用于将图像或文本保持始终接向观察者的类。 在场景中,为了使场景更逼真,会希望某些物体或文本能始终面向观察者。 这个类的设计就是为了实现这个目的。
osg::ref_ptr<osg::Billboard>
将一个 osg.Billboard
对象指针包装为 osg::ref_ptr
智能指针类型。
osg::Billboard::Billboard()
构造一个 osg.Billboard
对象。
osg::Billboard::Billboard(const osg::Billboard& bb, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY)
构造一个 osg.Billboard
对象,并从给定的对象复制属性。
void osg::Billboard::setMode(Mode mode)
设置 BillBoard 对齐模式。
参数:
osg::Billboard::AXIAL_ROT
代表轴向旋转模式。void osg::Billboard::setImage(Image* image)
设置 BillBoard 的图像。
参数:
void osg::Billboard::setFont(const std::string& fontName, float characterHeight=24.0f, float characterAspectRatio=0.5f)
设置 BillBoard 的字体。
参数:
osg::Billboard::Mode osg::Billboard::getMode() const
获取 BillBoard 对齐模式。
返回值:
osg::Image* osg::Billboard::getImage() const
获取 BillBoard 图像。
返回值:
std::string osg::Billboard::getFont(float characterHeight, float characterAspectRatio) const
获取 BillBoard 字体名称。
参数:
返回值:
osg::ref_ptr<osg::Billboard> billboard = new osg::Billboard;
billboard->setMode(osg::Billboard::POINT_ROT_EYE);
billboard->setImage( osgDB::readImageFile("Images/lz.rgb") );
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
geode->addDrawable(billboard.get());
osg::ref_ptr<osg::Group> root = new osg::Group;
root->addChild(geode.get());
使用 osg::ref_ptr
包装 osg.Billboard
对象,设置对齐模式为 "POINT_ROT_EYE",并设置图像。然后,将 osg::Billboard
对象添加到 osg::Geode
对象中,并将该 osg::Geode
对象添加到 osg::Group
对象中,最终形成一个场景图。