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

From Slicer Wiki
Jump to: navigation, search
Line 2: Line 2:
 
= Command Line Interface (CLI) =
 
= 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.
 
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 [[http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/CLI/|existing module]].
 
* Shared lib or executable
 
* Shared lib or executable
 
* GUI automatically generated
 
* GUI automatically generated

Revision as of 21:43, 16 December 2011

Home < Documentation < 4.0 < Developers < Modules

Slicer 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 [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.

  • C++ shared library
  • Full control over the GUI (Qt) and Slicer internals (MRML, logics, display managers...)
  • Optimized for heavy computations
  • Links:

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: