Difference between revisions of "Documentation/4.0/Developers/Modules"

From Slicer Wiki
Jump to: navigation, search
m
Line 9: Line 9:
 
* Links:
 
* Links:
 
** [[Slicer3:Execution_Model_Documentation|Slicer3 execution model]] (Slicer4 is very similar)
 
** [[Slicer3:Execution_Model_Documentation|Slicer3 execution model]] (Slicer4 is very similar)
** CLI in Slicer4 [http://www.na-mic.org/Wiki/index.php/File:Slicer4_CLI.ppt presentation] (2012_01_11)
+
** [http://www.na-mic.org/Wiki/index.php/File:Slicer4_CLI.ppt CLI in Slicer4] (presentation of 2012 NAMIC AHM)
  
 
= Loadable Modules =
 
= Loadable Modules =
Line 17: Line 17:
 
* Optimized for heavy computations
 
* Optimized for heavy computations
 
* Links:
 
* Links:
**[http://www.na-mic.org/Wiki/index.php/File:LoadableModules.pptx Loadable modules presentation]
+
**[http://www.na-mic.org/Wiki/index.php/File:LoadableModules.pptx Loadable modules] (presentation of 2012 NAMIC AHM)
 
**[[Documentation/4.0/Developers/Tutorials/ModuleWriting|How to write a loadable module]]
 
**[[Documentation/4.0/Developers/Tutorials/ModuleWriting|How to write a loadable module]]
  

Revision as of 16:59, 11 January 2012

Home < Documentation < 4.0 < Developers < Modules

Back to Developers Information

Slicer 4 supports 3 types of modules. While the developer has to choose between one of the 3 types to implement its module, the end user won't notice a difference as they all share the look&feel. The choice for a given type of module is usually based on the type of inputs/parameters for a given module.

Command Line Interface (CLI)

CLIs are standalone executables with a limited input/output arguments complexity (simple argument types, no user interactions...). They are typically implemented using ITK. The recommended way to write your own CLI is to copy an existing module.

Loadable Modules

Loadable modules are C++ plugins that are built against Slicer. They define custom GUIs for their specific behavior as they have full control over the application.

Scripted Modules

Scripted modules are written in Python and typically but not necessarily use the high level API of Slicer and toolkits.

  • Python Console
  • Full access to the API: VTK, ITK, MRML, Qt and Slicer are fully wrapped
  • Recommended for fast prototyping
  • Links: