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)
 
(21 intermediate revisions by 4 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].
+
{{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=
Line 11: Line 11:
 
* 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 38: Line 38:
 
: 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]
 
* [http://slicer-devel.65872.n3.nabble.com/ Developers mailing list archives]
: Search for prior posted questions and answers on nabble.com
+
: Search for priorly posted questions and answers on nabble.com
  
 
===Miscellaneous===
 
===Miscellaneous===
Line 45: Line 45:
 
: Set of screenshots showing the different Slicer components.
 
: Set of screenshots showing the different Slicer components.
  
* [[Documentation/4.0/Developers/Slicer C++ Style Guide|Slicer C++ Style Guide]]
+
* [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Style Guidelines]]
: Consistency and Readability for a manageable code base :)
+
: Consistency and Readability for a manageable code base
  
 
* [[Documentation/{{documentation/version}}/Developers/Sandbox|MediaWiki Extensions testing page]]
 
* [[Documentation/{{documentation/version}}/Developers/Sandbox|MediaWiki Extensions testing page]]
 
: This page serves as a MediaWiki sandbox.
 
: This page serves as a MediaWiki sandbox.
  
* [[Documentation/{{documentation/version}}]]
+
* [[Slicer4:Developers|Developer Projects]]
: End user documentation
+
: Pages for the developer projects.
 +
 
  
 
<!--
 
<!--
Line 74: Line 75:
  
 
* [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] ([http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit])
 
* [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.
+
: Web-based code repository viewer.
  
 
===Compile/Install===
 
===Compile/Install===
Line 81: Line 82:
 
: Compiling and installing Slicer from source.
 
: Compiling and installing Slicer from source.
  
* [http://cdash.org/CDash/index.php?project=Slicer4 CDash (Quality Dashboard)]
+
* [http://slicer.cdash.org/index.php?project=Slicer4 CDash (Quality Dashboard)]
 
: Nightly, continuous and experimental dashboards.
 
: Nightly, continuous and experimental dashboards.
 +
 +
* [[Release Details|Releases]]
 +
: Informations of Slicer releases
  
 
===Design & Implementation===
 
===Design & Implementation===
 
----
 
----
 +
 +
* [[Documentation/{{documentation/version}}/Developers/Modules | Modules]]
 +
: Comparison between the different module types supported by Slicer
 +
 
* [[Documentation/{{documentation/version}}/Developers/MRML | Data Model - MRML]]
 
* [[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 107: 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 117: 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 126: Line 137:
  
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/DashboardSetup|Setup a dashboard]]
 
* [[Documentation/{{documentation/version}}/Developers/Tutorials/DashboardSetup|Setup a dashboard]]
 +
 +
* [[Documentation/{{documentation/version}}/Developers/Tutorials/MemoryManagement|Avoid memory leaks]]
  
 
* [http://www.na-mic.org/Wiki/index.php/Projects:MATLABSlicerExampleModule Pass data between Slicer and Matlab]
 
* [http://www.na-mic.org/Wiki/index.php/Projects:MATLABSlicerExampleModule Pass data between Slicer and Matlab]
  
 
|}
 
|}

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