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)
 
(34 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=
 
=Requirements for Modules=
 
* The module is '''feature complete''', i.e. it does everything that it advertises
 
* 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 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 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 style guide lines, including [[Slicer3:Human_Interface_and_Style_Guide_for_Developers#Colors:_application_palettes|color palette]].
+
* 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]]
 
*Use the logos in the [[Template:Collaborator|List of Collaborators]]
 
|
 
|
Line 29: Line 32:
 
* [[Documentation/{{documentation/version}}/Developers/Overview | Overview]]
 
* [[Documentation/{{documentation/version}}/Developers/Overview | Overview]]
 
: Overview of the development process.
 
: Overview of the development process.
 +
 +
===Mailing List===
 +
----
 +
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list]
 +
: 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
 +
 +
===Miscellaneous===
 +
----
 +
* [[Documentation/4.0/Developers/ImageGallery|Image gallery]]
 +
: 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.
 +
 +
 +
<!--
 +
* [[Documents and links]]
 +
: A set of presentations made on Slicer and document talking about it.
 +
 +
* [[Documentation/4.0/FAQ]]
 +
: A set of common questions/answer on Slicer goal and possibility.
 +
-->
 +
 +
|bgcolor="#CCCCCC"|
 +
|valign="top"|
 +
 +
===Source Code===
 +
----
 +
* [http://svn.slicer.org/Slicer4/trunk SVN repository]
 +
: <code>svn checkout http://svn.slicer.org/Slicer4/trunk</code>
 +
 +
* [http://slicer.org/doc/html/classes.html Doxygen]
 +
: Source code API documentation. 
 +
 +
* [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.
  
 
===Compile/Install===
 
===Compile/Install===
 
----
 
----
* [[Documentation/{{documentation/version}}/Developers/Git | Git Instructions]]
 
: This page describes how to get code from Git.
 
 
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Building instructions]]
 
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Building instructions]]
 
: Compiling and installing Slicer from source.
 
: Compiling and installing Slicer from source.
  
===Mailing List===
+
* [http://slicer.cdash.org/index.php?project=Slicer4 CDash (Quality Dashboard)]
----
+
: Nightly, continuous and experimental dashboards.
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list]
 
: Intended for the discussion of programming related questions.
 
  
 +
* [[Release Details|Releases]]
 +
: 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 56: 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"|
 +
 
===HOW TO===
 
===HOW TO===
 
----
 
----
Line 64: Line 115:
  
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ModuleWriting|Create a loadable module]]
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ModuleWriting|Create a loadable module]]
: See also presentation [[Media:QtPortInSlicer.ppt|QtPortInSlicer - How to write a module]]
+
: Step by step tutorial to write C++ module
  
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ExternalModuleWriting|Create an external loadable module]]
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/ExternalModuleWriting|Create an external loadable module]]
Line 74: Line 125:
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/Debug Instructions|Debug]]
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/Debug Instructions|Debug]]
 
: How to debug Slicer.
 
: 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]]
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/WidgetWriting|Write a Widget for Slicer and Qt Designer]]
Line 84: Line 138:
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/DashboardSetup|Setup a dashboard]]
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/DashboardSetup|Setup a dashboard]]
  
|bgcolor="#CCCCCC"|
+
* [[Documentation/{{documentation/version}}/Developers/Tutorials/MemoryManagement|Avoid memory leaks]]
|valign="top"|
 
 
 
===Miscellaneous===
 
----
 
* [[Documentation/4.0/Developers/ImageGallery|Image gallery]]
 
: Set of screenshots showing the different Slicer components.
 
 
 
* [[Documentation/4.0/Developers/Slicer C++ Style Guide|Slicer C++ Style Guide]]
 
: Consistency and Readability for a manageable code base :)
 
  
* [[Documentation/{{documentation/version}}/Developers/Sandbox|MediaWiki Extensions testing page]]
+
* [http://www.na-mic.org/Wiki/index.php/Projects:MATLABSlicerExampleModule Pass data between Slicer and Matlab]
: This page serves as a MediaWiki sandbox.
 
  
<!--
 
* [[Documents and links]]
 
: A set of presentations made on Slicer and document talking about it.
 
 
* [[Documentation/4.0/FAQ]]
 
: A set of common questions/answer on Slicer goal and possibility.
 
 
* [[Documentation/4.0]]
 
: End user documentation
 
-->
 
 
|}
 
|}

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