1.什么是拓展?
拓展,Extension,可以视为捆绑了一个或者多个模块module的封装包(delivery package)。安装一个拓展功能之后,相关的模块将会以内置模块形式呈现给用户。
Slicer目前拥有相当数量的拓展,具体参见如下网址:
https://www.slicer.org/wiki/Documentation/Nightly/Extensions
Slicer社区负责维护Extension网页,该网页支持用户寻找、下载、安装Extension功能。
Extension:http://slicer.kitware.com/midas3/slicerappstore
Extension 安装:ExtensionsManager#Installing_an_extension
2.什么是拓展目录?
拓展目录为Slicer用户提供了一个便利的方法访问拓展功能。
3.为什么没有可以利用的win32拓展应用?
- win32对于应用程序的可利用内存极其有限;
- 在win32平台上,对于大体量数据,很多配准、分割算法会因为内存不足而崩溃;
4.我是否应该安装Nightly Version进而应用最新的拓展更新?
如果Extension开发者为当前的稳定版本贡献了更新,那就没有安装Nightly Version,更新Extension就好。
5.如何更新一个已经安装的Extension?
假设对于当前Slicer版本Extension是可以更新的,那么Extension就可以通过人工或自动进行更新。
关于更新Extension的更详细内容,可以参考如下:
https://www.slicer.org/wiki/Documentation/Nightly/SlicerApplication/ExtensionsManager#Updating_installed_extensions
6.如何手动下载一个Extension Package?
1.获得安装/组建Slicer的版本号(Menu->Help->About)。例如,如果完整的版本号字符串是 4.3.1-2014-09-14 r23677 ,那么版本代号就是 23677;
2.打开扩展目录(Extension Catalog);
3.输入操作系统、位数、版本号。如果没有输入版本号会出现提示信息“ No extensions found message”;
4.选择应用,下载Package 。
7.如何手动地安装一个Extension?
https://www.slicer.org/wiki/Documentation/Nightly/Developers/FAQ#Developer_FAQ:_MRML
8.什么是扩展描述文件?
https://www.slicer.org/wiki/Documentation/Nightly/Developers/Extensions/DescriptionFile
9.扩展应用可以包含不同的模块吗?
Extension打包了各种各样的Slicer Module。
10.扩展索引Index是什么?
Think of the ExtensionsIndex as a repository containing a list of extension description files *.s4ext used by the Slicer extensions build system to build, test, package and upload extensions on the extensions server.
Once uploaded on an extensions server, within Slicer, extensions can be installed using the extensions manager.
The extensions catalog provides Slicer users with a convenient way to access the extensions previously uploaded.
11.如何组建一个拓展程序?
1.从 WinStartMenu 运行 CMake
- 选择源目录和组建目录;
- Add Slicer_DIR entry to the cache;
- 点击‘Configure’,选择 generator,然后点击‘Genere’。
2.启动Window浏览器
- 利用VisualStudio打开MyExtension.sln;
- 选择Release;
- Project->Build Solution。
12.如何运行扩展测试?
假设扩展程序已经组建好了,并存放在了MyExtension-built文件夹,然后:
https://www.slicer.org/wiki/Documentation/Nightly/Developers/FAQ#How_to_update_an_already_installed_extension.3F
13.一个拓展程序可能依赖其他的拓展程序吗?
可能。
14.Nightly/Modules和Nightly/Extensions有什么不同?
For example, if an an extension named DoSomethingGreat bundles three modules ModuleA, ModuleB and ModuleC. The following pages should be created:
Documentation/Nightly/Extensions/DoSomethingGreat
Documentation/Nightly/Modules/ModuleA
Documentation/Nightly/Modules/ModuleB
Documentation/Nightly/Modules/ModuleC
15.依赖性的扩展程序如何配置及组建?
If an ExtensionB depends on an ExtensionA, ExtensionA should be listed as dependency in the metadata of ExtensionB.
This can be done setting EXTENSION_DEPENDS in the CMakeLists.txt or by specifying depends field in the description file.
Doing so will ensure that:
(1) the extension build system configure the extensions in the right order
(2) ExtensionB is configured with option ExtensionA_DIR.