3DSlicer29:Debug or Dev-170918
生活随笔
收集整理的這篇文章主要介紹了
3DSlicer29:Debug or Dev-170918
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.the relationship between module & extension?
Slicer的plus-in機制不必多談。下面僅初步談論Module和Extension的關系,并就創建和調試過程中的一些細節問題進行總結。- Extension是實現一個功能的實體,可以包括若干的module
- 每一個module都是實現某種特定功能的單位
2.如何創建Extension及module?
仍然遵循之前的規則:- 利用ExtensionWizard
- 在Extension基礎之上添加module
- 僅研究Loadable Module(可加載模塊)
2.2 利用Extension Edit向Extension中添加Module ? ? ? ? ??
2.3 可以通過select Extension查看其中的內容
2.4 通過Extension頂層的CMakeLists.txt文件體會管理各個module cmake_minimum_required(VERSION 3.5) project(IGSdev) #----------------------------------------------------------------------------- # Extension meta-information set(EXTENSION_HOMEPAGE "http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/IGSdev ") set(EXTENSION_CATEGORY "IGSdevTest") set(EXTENSION_CONTRIBUTORS "John Doe (AnyWare Corp.)") set(EXTENSION_DESCRIPTION "This is an example of a simple extension") set(EXTENSION_ICONURL "http://www.example.com/Slicer/Extensions/IGSdev.png ") set(EXTENSION_SCREENSHOTURLS "http://www.example.com/Slicer/Extensions/IGSdev/Screenshots/1.png ") set(EXTENSION_DEPENDS "NA") # Specified as a space separated string, a list or 'NA' if any#----------------------------------------------------------------------------- # Extension dependencies find_package(Slicer REQUIRED) include(${Slicer_USE_FILE})#----------------------------------------------------------------------------- # Extension modules add_subdirectory(IGSReader) add_subdirectory(IGSWritter) ## NEXT_MODULE#----------------------------------------------------------------------------- include(${Slicer_EXTENSION_GENERATE_CONFIG}) include(${Slicer_EXTENSION_CPACK}) 我們可以知道兩個事: 1.Extension依賴項(slicer,將獨立拓展與主框架聯系在一起)。 2.Extension管理模塊就是通過簡單的add_subdirectory實現的。
3.如何調試Extension及module?
生成*.sln仍然采用之前的方法:- CMake構建項目,生成解決方案*.sln。(后面我也會介紹到,這里的解決方案是指Extension整個功能,其內部包含獨立的項目module)
- Slicer.exe --VisualStudio打開*.sln文件,生成解決方案。(頂層Extension+bin+CMakefile+Modules...+lib+Test+x64文件夾。其中,各個module都有自己獨立的文件夾,lib是應用Plus-in機制的指定文件夾)
在解決方案中,大概可以分為兩類qSlicer(name)Module(func)、vtkSlicer(name)Module(func): 3.1?qSlicer(name)Module(func) ? ??
初步看,qSlicer部分用于圖形框架搭建。 3.2?vtkSlicer(name)Module(func) ??
初步看,vtkSlicer部分用于實現功能算法。三個項目實際上說的是一個事,就是Logic~~
總結
以上是生活随笔為你收集整理的3DSlicer29:Debug or Dev-170918的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20岁MM和25岁MM的区别(非原创,分
- 下一篇: 谈谈软件工程设计的艺术