Difference between revisions of "Documentation/4.0/Developers"

From Slicer Wiki
Jump to: navigation, search
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887)
 
(48 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
<noinclude>{{documentation/versioncheck}}</noinclude>
 
__NOTOC__
 
__NOTOC__
[[Documentation|Documentation]]/[[Documentation/{{documentation/version}}|{{documentation/version}}]]&larr;
 
 
== Developers Information ==
 
== Developers Information ==
 +
{|
 +
|
 +
 +
{{note}} Slicer4 developer documentation is under development with the idea that tutorials and related information will be available to support work at the [http://na-mic.org NA-MIC] [http://www.na-mic.org/Wiki/index.php/2012_Winter_Project_Week 2012 Project Week].
 +
 +
=Requirements for Modules=
 +
* The module is '''feature complete''', i.e. it does everything that it advertises
 +
* The module has a '''test'''. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing '''here'''] for more information.
 +
* The module is fully documented. [[Documentation/{{documentation/version}}/Modules/YOURMODULENAME|Template]] and [[Documentation/{{documentation/version}}/HowTo|How-to]] for the end user documentation.
 +
* The module complies with [[Documentation-Rons-Rules-For-Tools|Rons rules for tool]] and the [[Documentation/{{documentation/version}}/Developers/Style Guide|style guidelines]], including [[Slicer3:Human_Interface_and_Style_Guide_for_Developers#Colors:_application_palettes|color palette]].
 +
*Use the logos in the [[Template:Collaborator|List of Collaborators]]
 +
|
 +
[[{{collaborator|logo|slicer4}}|x300px|right]]
 +
|}
 +
 
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"
 
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"
 
|-
 
|-
Line 12: Line 27:
 
|valign="top"|
 
|valign="top"|
  
===Compile/Install===
+
===Introduction===
 
----
 
----
<!--
+
 
* [[Documentation/{{documentation/version}}/Developers/Git| Git Instructions]]
+
* [[Documentation/{{documentation/version}}/Developers/Overview | Overview]]
: Git is the revision control system that Slicer uses. If you would like to have the bleeding edge version of Slicer, or you would like to contribute code, this link describes the method you must use to get the code.
+
: Overview of the development process.
-->
 
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Building instructions]]
 
: Compiling and installing Slicer from source.
 
  
 
===Mailing List===
 
===Mailing List===
Line 25: Line 37:
 
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list]
 
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list]
 
: Intended for the discussion of programming related questions.
 
: Intended for the discussion of programming related questions.
 +
* [http://slicer-devel.65872.n3.nabble.com/ Developers mailing list archives]
 +
: Search for priorly posted questions and answers on nabble.com
  
===HOW TO===
+
===Miscellaneous===
 
----
 
----
* [[Documentation/{{documentation/version}}/Developers/Tutorials/QtCreator|Use QtCreator]]
+
* [[Documentation/4.0/Developers/ImageGallery|Image gallery]]
: Setup QtCreator with Slicer
+
: Set of screenshots showing the different Slicer components.
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Style Guidelines]]
 +
: Consistency and Readability for a manageable code base
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Sandbox|MediaWiki Extensions testing page]]
 +
: This page serves as a MediaWiki sandbox.
 +
 
 +
* [[Slicer4:Developers|Developer Projects]]
 +
: Pages for the developer projects.
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ModuleWriting|Create a loadable module]]
 
: See also presentation [[Media:QtPortInSlicer.ppt|QtPortInSlicer - How to write a module]]
 
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ExternalModuleWriting|Create an external loadable module]]
+
<!--
: Describes how to make a (Slicer / Qt) loadable module that is compiled outside of the slicer build tree.
+
* [[Documents and links]]
 +
: A set of presentations made on Slicer and document talking about it.
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ExtensionWriting|Create an extension]]
+
* [[Documentation/4.0/FAQ]]
 +
: A set of common questions/answer on Slicer goal and possibility.
 +
-->
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/Debug Instructions|Debug]]
+
|bgcolor="#CCCCCC"|
: How to debug Slicer.
+
|valign="top"|
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/WidgetWriting|Write a Widget for Slicer and Qt Designer]]
+
===Source Code===
: Prerequisites, Notes, Coding style and step-by-step
+
----
 +
* [http://svn.slicer.org/Slicer4/trunk SVN repository]
 +
: <code>svn checkout http://svn.slicer.org/Slicer4/trunk</code>
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/QtDesigner|Use custom widgets in Qt Designer]]
+
* [http://slicer.org/doc/html/classes.html Doxygen]
 +
: Source code API documentation. 
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/PythonAndUIFile|Use UI file from Slicer python]]
+
* [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] ([http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit])
 +
: Web-based code repository viewer.
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/DashboardSetup|Setup a dashboard]]
+
===Compile/Install===
 +
----
 +
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Building instructions]]
 +
: Compiling and installing Slicer from source.
  
 +
* [http://slicer.cdash.org/index.php?project=Slicer4 CDash (Quality Dashboard)]
 +
: Nightly, continuous and experimental dashboards.
  
|bgcolor="#CCCCCC"|
+
* [[Release Details|Releases]]
|valign="top"|
+
: Informations of Slicer releases
  
 
===Design & Implementation===
 
===Design & Implementation===
 
----
 
----
* [[Slicer3:Data_Model|Data Model - MRML]]
+
 
 +
* [[Documentation/{{documentation/version}}/Developers/Modules | Modules]]
 +
: Comparison between the different module types supported by Slicer
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/MRML | Data Model - MRML]]
 
: Objects and their organization. MRML Library provides API for managing medical image data type.
 
: Objects and their organization. MRML Library provides API for managing medical image data type.
  
* [[Documentation/{{documentation/version}}/Developers/Displayable Manager | Displayable Manager]]
+
* [[Documentation/{{documentation/version}}/Developers/Logics | Logics]]
: Details how displayable manager works.
+
: Details the role of logics in Slicer and lists the different types such as [[Documentation/{{documentation/version}}/Developers/DisplayableManagers | displayable managers]].
  
 
* [[Documentation/{{documentation/version}}/Developers/Python scripting | Python scripting]]
 
* [[Documentation/{{documentation/version}}/Developers/Python scripting | Python scripting]]
Line 68: Line 105:
 
* [[Documentation/{{documentation/version}}/Developers/Build system | Build system]]
 
* [[Documentation/{{documentation/version}}/Developers/Build system | Build system]]
 
: Details how Slicer is built and packaged.
 
: Details how Slicer is built and packaged.
 
  
 
|bgcolor="#CCCCCC"|
 
|bgcolor="#CCCCCC"|
 
|valign="top"|
 
|valign="top"|
  
===Miscellaneous===
+
===HOW TO===
 
----
 
----
* [[Documentation/4.0/Developers/ImageGallery|Image gallery]]
+
* [[Documentation/{{documentation/version}}/Developers/Tutorials/QtCreator|Use QtCreator]]
: Set of screenshots showing the different Slicer components.
+
: Setup QtCreator with Slicer
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ModuleWriting|Create a loadable module]]
 +
: Step by step tutorial to write C++ module
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ExternalModuleWriting|Create an external loadable module]]
 +
: Describes how to make a (Slicer / Qt) loadable module that is compiled outside of the slicer build tree.
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ExtensionWriting|Create an extension]]
 +
: Describes how to take your command line module or loadable module and turn it into an extension for Slicer 4.0
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/Debug Instructions|Debug]]
 +
: How to debug Slicer.
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/Troubleshooting|Troubleshooting Slicer]]
 +
: Hints for narrowing down run time issues.
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/WidgetWriting|Write a Widget for Slicer and Qt Designer]]
 +
: Prerequisites, Notes, Coding style and step-by-step
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/QtDesigner|Use custom widgets in Qt Designer]]
 +
 
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/PythonAndUIFile|Use UI file from Slicer python]]
  
* [[Documentation/4.0/Developers/Slicer C++ Style Guide|Slicer C++ Style Guide]]
+
* [[Documentation/{{documentation/version}}/Developers/Tutorials/DashboardSetup|Setup a dashboard]]
: Consistency and Readability for a manageable code base :)
 
  
* [[Documentation/{{documentation/version}}/Developers/Sandbox|MediaWiki Extensions testing page]]
+
* [[Documentation/{{documentation/version}}/Developers/Tutorials/MemoryManagement|Avoid memory leaks]]
: This page serves as a MediaWiki sandbox.
 
  
<!--
+
* [http://www.na-mic.org/Wiki/index.php/Projects:MATLABSlicerExampleModule Pass data between Slicer and Matlab]
* [[Documents and links]]
 
: Set of presentations made on Slicer and document talking about it.
 
  
* [[FAQ]]
 
: Set of common questions/answer on Slicer goal and possibility.
 
-->
 
 
|}
 
|}

Latest revision as of 07:36, 14 June 2013

Home < Documentation < 4.0 < Developers


For the latest Slicer documentation, visit the read-the-docs.


Developers Information

Note Slicer4 developer documentation is under development with the idea that tutorials and related information will be available to support work at the NA-MIC 2012 Project Week.

Requirements for Modules

Slicer4Announcement-HiRes.png

Introduction


Overview of the development process.

Mailing List


Intended for the discussion of programming related questions.
Search for priorly posted questions and answers on nabble.com

Miscellaneous


Set of screenshots showing the different Slicer components.
Consistency and Readability for a manageable code base
This page serves as a MediaWiki sandbox.
Pages for the developer projects.


Source Code


svn checkout http://svn.slicer.org/Slicer4/trunk
Source code API documentation.
Web-based code repository viewer.

Compile/Install


Compiling and installing Slicer from source.
Nightly, continuous and experimental dashboards.
Informations of Slicer releases

Design & Implementation


Comparison between the different module types supported by Slicer
Objects and their organization. MRML Library provides API for managing medical image data type.
Details the role of logics in Slicer and lists the different types such as displayable managers.
Presents the underlying infrastructure.
Details how Slicer is built and packaged.

HOW TO


Setup QtCreator with Slicer
Step by step tutorial to write C++ module
Describes how to make a (Slicer / Qt) loadable module that is compiled outside of the slicer build tree.
Describes how to take your command line module or loadable module and turn it into an extension for Slicer 4.0
How to debug Slicer.
Hints for narrowing down run time issues.
Prerequisites, Notes, Coding style and step-by-step