3DSlicer29:Debug or Dev-170918
生活随笔
收集整理的這篇文章主要介紹了
3DSlicer29:Debug or Dev-170918
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.the relationship between module & extension?
Slicer的plus-in機(jī)制不必多談。下面僅初步談?wù)揗odule和Extension的關(guān)系,并就創(chuàng)建和調(diào)試過(guò)程中的一些細(xì)節(jié)問(wèn)題進(jìn)行總結(jié)。- Extension是實(shí)現(xiàn)一個(gè)功能的實(shí)體,可以包括若干的module
- 每一個(gè)module都是實(shí)現(xiàn)某種特定功能的單位
2.如何創(chuàng)建Extension及module?
仍然遵循之前的規(guī)則:- 利用ExtensionWizard
- 在Extension基礎(chǔ)之上添加module
- 僅研究Loadable Module(可加載模塊)
2.2 利用Extension Edit向Extension中添加Module ? ? ? ? ??
2.3 可以通過(guò)select Extension查看其中的內(nèi)容
2.4 通過(guò)Extension頂層的CMakeLists.txt文件體會(huì)管理各個(gè)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}) 我們可以知道兩個(gè)事: 1.Extension依賴項(xiàng)(slicer,將獨(dú)立拓展與主框架聯(lián)系在一起)。 2.Extension管理模塊就是通過(guò)簡(jiǎn)單的add_subdirectory實(shí)現(xiàn)的。
3.如何調(diào)試Extension及module?
生成*.sln仍然采用之前的方法:- CMake構(gòu)建項(xiàng)目,生成解決方案*.sln。(后面我也會(huì)介紹到,這里的解決方案是指Extension整個(gè)功能,其內(nèi)部包含獨(dú)立的項(xiàng)目module)
- Slicer.exe --VisualStudio打開(kāi)*.sln文件,生成解決方案。(頂層Extension+bin+CMakefile+Modules...+lib+Test+x64文件夾。其中,各個(gè)module都有自己獨(dú)立的文件夾,lib是應(yīng)用Plus-in機(jī)制的指定文件夾)
在解決方案中,大概可以分為兩類qSlicer(name)Module(func)、vtkSlicer(name)Module(func): 3.1?qSlicer(name)Module(func) ? ??
初步看,qSlicer部分用于圖形框架搭建。 3.2?vtkSlicer(name)Module(func) ??
初步看,vtkSlicer部分用于實(shí)現(xiàn)功能算法。三個(gè)項(xiàng)目實(shí)際上說(shuō)的是一個(gè)事,就是Logic~~
總結(jié)
以上是生活随笔為你收集整理的3DSlicer29:Debug or Dev-170918的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 20岁MM和25岁MM的区别(非原创,分
- 下一篇: 谈谈软件工程设计的艺术