osg学习(二十二)osg读写插件的注册过程

读写插件包括高层、影像等文件的读写插件

1、注册AnnotationLayer

osgEarthAnnotation/AnnotationLayer.cpp

REGISTER_OSGEARTH_LAYER(annotations, AnnotationLayer);
osgEarth/Layer
#define REGISTER_OSGEARTH_LAYER(NAME,CLASS) \
    extern "C" void osgdb_##NAME(void) {} \
    static osgEarth::RegisterPluginLoader< osgEarth::PluginLoader<CLASS, osgEarth::Layer> > g_proxy_##CLASS_##NAME( #NAME );
osgEarth/PluginLoader
template<class T>
class RegisterPluginLoader
{
    public:
        RegisterPluginLoader(const std::string& name)
        {
            if (osgDB::Registry::instance())
            {
                _rw = new T(name);
                osgDB::Registry::instance()->addReaderWriter(_rw.get());
            }
        }
};
template<typename T, typename U>
class PluginLoader : public osgDB::ReaderWriter
{
public: // Plugin stuff
    PluginLoader(const std::string& name) {
        supportsExtension( name, name );
    }
};

2、注册ElevationLayer

osgEarth/ElevationLayer.cpp
REGISTER_OSGEARTH_LAYER(elevation, osgEarth::ElevationLayer);

3、注册ImageLayer

osgEarth/ImageLayer.cpp
REGISTER_OSGEARTH_LAYER(image, ImageLayer);

4、注册LandCoverDictionary

osgEarth/LandCover.cpp
REGISTER_OSGEARTH_LAYER(land_cover_dictionary, LandCoverDictionary);

5、注册LandCoverLayer

osgEarth/LandCoverLayer.cpp
REGISTER_OSGEARTH_LAYER(land_cover, LandCoverLayer);

6、注册ModelLay

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值