Difference between revisions of "Documentation/4.0/Developers/Modules"
(→Command Line Interface (CLI): Add link) |
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) | ||
− | ** | + | ** [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 < ModulesBack 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.
- Shared lib or executable
- GUI automatically generated
- Links:
- Slicer3 execution model (Slicer4 is very similar)
- CLI in Slicer4 (presentation of 2012 NAMIC AHM)
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.
- C++ shared library
- Full control over the GUI (Qt) and Slicer internals (MRML, logics, display managers...)
- Optimized for heavy computations
- Links:
- Loadable modules (presentation of 2012 NAMIC AHM)
- How to write a loadable module
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: