• 3D Slicer Module-ExtensionWizard & Build & Install


    1.前言

    Slicer模块典型包含几种不同类型的模块,如CMake文件、Source文件、资源文件。
    在大多数情况下,为了方便编译,文件名称和文件中文本字符串的名称需要保持一致。
    ExtensionWizard是一个简化创建流程的工具。

    2.使用GUI进入Extension

    开启Slicer,选择ExtensionWizard即可。
    创建Extension:
    ExtensionWizard利用Template机制创建Module和Extension。GUI会自动创建相关文件并产生代码。
    • 点击“Create Extension”:
    为我们的Extension/Module指定一个名字,和一个空的文件夹作为目标目录。OK
    • 可选择地指定Extension/Module的细节描述:
    • 点击“Add module to extension”
    指定名字和模块的类型。首次开发情况下都会选用“scripted”作为模块类型,因为只有Python的scripted模块可以不经过Slicer自定义地Build,就可以创建并使用。OK。
    • 勾选“Add selected module to search paths”
    • 从Module列表中打开我们创建的模块

    3.命令行中2的创建过程

    从上面我们可以得出以下结论:
    • 从源码中拷贝模板文件夹,并修改名称为ScriptTest,创建相应的CMakeList.txt文件和ScriptTest.png图标文件
    • 从源码中拷贝Scripted类型的模板,并修改名字为ScriptTest,创建相应的CMakeList.txt文件、ScriptTest.py文件、Resource/Icon/ScriptTest.png文件、Testing/CMakeList.txt文件、Testing/Python/CMakeList.txt文件
    再次区别三个模块的定位:
    • cli:提供自定义命令行接口
    • loadable:在Slicer中提供一个新的功能/C++
    • scripted:在Slicer中提供一个新的功能/Python

    4.Build Extension

    如果我们的程序不是使用“Pure Python”编写的,若想使用这个模块,那么我们就必须要先学会编译它。
    Notice:若想Build Extension,我们必须已经在本机上编译过源码了。
    我的Extension源代码位于D:Slicer4DSlicer-buildModuleTestmyLoadable
    通用编译步骤:
    • CMake:
      • 选择源代码文件和目标文件(例如:myLoadable-build)
      • 在CMake中设置Slicer_DIR(例如:D:/Slicer4D/Slicer-build)
      • configure & generate
    • VisualStudio
      • 打开myLoadable.sln,选择Debug(Debug or Release要根据Slicer-build的版本选取)
      • Project->Build Solution

    5.Install Extension

    对于Slicer而言,并没有“Install”的说法,因为Slicer采用的Plug-in机制,所以我们可以理解为注册就好:

    3DSlicer->Edit->Application Setting Dialog->Module->Add Additional Path:

    • ~/code/MyExtension/build/lib/Slicer-<version>/qt-loadable-modules
    • ~/code/MyExtension/build/lib/Slicer-<version>/qt-scripted-modules
    • ~/code/MyExtension/MyPythonModule (因为Pure Python 无需编译可以直接使用)

    6.参考文献

    1.ExtensionWizard:https://www.slicer.org/wiki/Documentation/Nightly/Developers/ExtensionWizard
    2.BuildExtension:https://www.slicer.org/wiki/Documentation/Nightly/Developers/FAQ#How_to_build_an_extension_.3F
    3.InstallExtension:https://www.slicer.org/wiki/Documentation/Nightly/Developers/ExtensionWizard
  • 相关阅读:
    006_01XML简介
    005_01文档对象模型DOM
    004_01浏览器对象模型BOM
    SpringBoot的学习【4.快速实现一个SpringBoo的应用】
    SpringBoot的学习【3.HelloWorld配置细节】
    年中总结
    由一次报错引发的对于Spring创建对象的理解
    SpringBoot的学习【2.分析HelloWorld的依赖】
    SpringBoot的学习【1.初学之HelloWorld】
    IllegalStateException
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14235572.html
Copyright © 2020-2023  润新知