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

From Slicer Wiki
Jump to: navigation, search
m
Line 12: Line 12:
 
* Optimized for heavy computations
 
* Optimized for heavy computations
 
* Links:
 
* Links:
**[http://www.slicer.org/slicerWiki/index.php/Documentation/4.0/Developers/Tutorials/ModuleWriting|How to write Loadable Modules]
+
**[http://www.slicer.org/slicerWiki/index.php/Documentation/4.0/Developers/Tutorials/ModuleWriting How to write Loadable Modules]
 +
 
 
= Scripted Modules =
 
= Scripted Modules =
 
Scripted modules are written in Python and typically but not necessarily use the high level API of Slicer and toolkits.   
 
Scripted modules are written in Python and typically but not necessarily use the high level API of Slicer and toolkits.   

Revision as of 20:18, 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.

  • Shared lib or executable
  • GUI automatically generated
  • Links:

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: