本文为本人原创,不敢有功劳,但是却是十分苦劳,因此如若转载,请注明转载地址,谢谢~
osg::AutoTransform派生自Transform,这个节点非常好用,比如它可以用在earth中始终显示label文本,可以很方便的定位到某个位置中,只要设置好osg::AutoTransform::AutoRotateMode,可以让文本始终面向用户,非常方便~
#include <osgUtil/Optimizer>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osg/Material>
#include <osg/Geode>
#include <osg/BlendFunc>
#include <osg/Depth>
#include <osg/Projection>
#include <osg/AutoTransform>
#include <osg/Geometry>
#include <osgDB/WriteFile>
#include <osgText/Text>
#include <iostream>
osg::Node* createLabel(const osg::Vec3& pos, float size, const std::string& label, osgText::Text::AxisAlignment axisAlignment)
{
osg::Geode* geode = new osg::Geode();
std::string timesFont("fonts/arial.ttf");
{
osgText::Text* text = new osgText::Text;
geode->addDrawable( text );
text->setFont(timesFont);
text->setPosition(pos);
text->setCharacterSize(size);
text->setAxisAlignment(axisAlignment);
text->setAlignment(osgText::Text::CENTER_CENTER);
text->setText(label);
}
return geode;
}
osg::Node* createLabel3(const osg::Vec3& pos, float size, const std::string& label)
{
osg::Geode* geode = new osg::Geode();
std::string timesFont