Difference between revisions of "Slicer3:Extensions"

From Slicer Wiki
Jump to: navigation, search
Line 2: Line 2:
  
  
*We are using NITRC as the primary repository for contributed extensions. As a general rule, we do not test the extensions ourselves. Use them at your own risk.
+
*We are using [http://www.nitrc.org NITRC] as the primary repository for contributed extensions, however any subversion or cvs repository can be used. As a general rule, the slicer team does not test the extensions. Use them at your own risk.
*Click [http://www.nitrc.org/search/?type_of_search=soft&words=slicer3&Search.x=0&Search.y=0&Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.
+
*Look at the Associations section of [http://www.nitrc.org/projects/slicer the slicer project page on NITRC] for other software that can be used to extend slicer. [http://www.nitrc.org/search/?type_of_search=soft&words=slicer3&Search.x=0&Search.y=0&Search=Search  here] to see a listing of Slicer 3 extensions on NITRC.
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team.
+
*Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team (provide a .s3ext file as described below).
*Below is a list of some of the example modules for developers
 
** ExampleCommandLine (Jim Miller)
 
**ExampleLoadableGuiLessModule (Steve Pieper)
 
**|ExampleLoadableModule (Steve Pieper)
 
**PythonSampleScriptedModule (Steve Pieper)
 
**TclSampleScriptedModule (Steve Pieper)
 
 
*In order to start your own extension, you can look at the sources for these examples and copy one that looks similar:
 
*In order to start your own extension, you can look at the sources for these examples and copy one that looks similar:
 
http://viewvc.slicer.org/viewcvs.cgi/trunk/Extensions/  
 
http://viewvc.slicer.org/viewcvs.cgi/trunk/Extensions/  
*Several [http://www.nitrc.org/projects/slicer3examples/ example modules] are hosted on the nitrc.org site and can be used as a template.
+
*Several [http://www.nitrc.org/projects/slicer3examples/ example modules] are hosted on the nitrc.org site and can be used as a template.  These include the major types of loadable and scripted modules.
 
*Here is a link to [[Documentation-3.6#Slicer_Extensions| user documentation on extensions]].
 
*Here is a link to [[Documentation-3.6#Slicer_Extensions| user documentation on extensions]].
  

Revision as of 17:19, 1 June 2010

Home < Slicer3:Extensions

3D Slicer now supports extensions. Extensions are available from an extension server. This allows end-users to select the extensions useful to them, without having to download the entire extension archive.


  • We are using NITRC as the primary repository for contributed extensions, however any subversion or cvs repository can be used. As a general rule, the slicer team does not test the extensions. Use them at your own risk.
  • Look at the Associations section of the slicer project page on NITRC for other software that can be used to extend slicer. here to see a listing of Slicer 3 extensions on NITRC.
  • Extensions are compiled as part of the nightly build. In order to have your extension compiled nightly and made available to end users, please contact the Slicer team (provide a .s3ext file as described below).
  • In order to start your own extension, you can look at the sources for these examples and copy one that looks similar:

http://viewvc.slicer.org/viewcvs.cgi/trunk/Extensions/

This work was sponsored in part by the collaboration between NA-MIC and NITRC.

FOR DEVELOPERS

Extensions must follow the appropriate architecture and must meet minimum documentation requirements for them to be made available to end users. See Slicer3:Loadable_Modules for an example of how to make GUI and GUI-less Loadable Modules. Command Line and Scripted Modules will also work with this framework.

You can choose the version of your code that you want to make available to end users by having the Subversion repository URL in the s3ext script point to either the trunk of your code base or to a stable branch.

To enable your Command Line, Scripted, or Loadable module, add an "s3ext" script to the /Slicer3/Extensions directory of the source repository:

PythonSampleScriptedModule.s3ext:

#
# first token of each non-comment line is the keyword and the rest of the line 
# (including spaces) is the value.
# - the value can be blank
#

# scm is source code manager (i.e. svn)
scm       svn
svnpath   https://www.nitrc.org/svn/slicer3examples/trunk/Slicer3ExampleModules/Scripted/PythonSampleScriptedModule
svnusername slicerbot
svnpassword slicer

# list dependencies 
# - these should be names of other modules that have .s3ext files 
# - the dependencies will be built first
depends ScriptedModule

# homepage
homepage  http://www.slicer.org

# match category in the xml description of the module (where it shows up in Modules menu)
category  Developer Tools

# give people an idea what to expect from this code 
# - is it just a test or something you stand beind?
status    Beta

# One line description of what the module does
description This is an example of an extension module written in python

Support in Slicer 3.4

Development in the slicer3 trunk through early August 2009 has led to a version that works well and is being migrated to the 3.4 release branch for use in patch version 3.4.1. Fixes from the following files are being migrated:

  • Applications/GUI/Slicer3.{cxx,xml}
  • Base/GUI/vtkSlicerApplication.{h,cxx}
  • Base/GUI/vtkSlicerApplicationSettingsInterface.{h,cxx}
  • Base/GUI/vtkSlicerModulesWizardDialog.{h,cxx}
  • Base/GUI/vtkSlicerModulesStep.{h,cxx}
  • Base/GUI/vtkSlicerModulesConfigurationStep.{h,cxx}
  • Scripts/extend.tcl
  • launch.tcl.in

Support in Slicer 3.5

VMTK is available from http://ext.slicer.org/ext/trunk/10813-linux-x86_64

Slicer3.5 Extension Manager VMTK.jpg