要写一个插件类,首先选择一个插件接口,插件接口及其子接口如下:
可以直接子类化其中任意一个接口来创建我们的插件,但还是推荐子类化其 Shell 类,这些Shell类提供了插件需要的大部分接口,可以减少代码的编写量,Shell 类接口如下: 当写插件的时候,需要访问其他插件的API,这时就得用Opticks的服务,如下列出了所有的服务:- DesktopServices1
- ModelServices
- ApplicationServices
- UtilityServices
- AnimationServices
- PlugInManagerServices
最简单的方法是用 服务的模版特化,如:
#include "ConfigurationSettings.h"
#include <string>
void foo()
{
std::string version = Service<ConfigurationSettings>()->getVersion();
//从 ConfigurationSettings 服务中获取应用视图
Service<ConfigurationSettings> pConfSett;
std::string version = pConfSett->getVersion();
ConfigurationSettings* pConfPointer = pConfSett.get();
version = pConfPointer->getVersion();
}
这个例子就是用服务模版特化了每一个服务方法,这个服务类可以用在任何一个插件中(如 .dll, .so);
现在就完成了一个插件类的创建,接下来需要注册该插件,详见“Opticks插件创建--插件注册”。