Difference between revisions of "Documentation/4.1/Developers"

From Slicer Wiki
Jump to: navigation, search
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887)
 
(110 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
<noinclude>{{documentation/versioncheck}}</noinclude>
 
__NOTOC__
 
__NOTOC__
== 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=
+
<big><big>If you are a newcomer, you should probably check these '''[[{{FULLPAGENAME}}/StartHere|instructions]]''' !</big></big>
* The module is '''feature complete''', i.e. it does everything that it advertises
+
*If you need to cite Slicer, please use [http://www.slicer.org/pages/UserOrientation these references].
* 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 25: Line 15:
 
|-  
 
|-  
 
|valign="top"|
 
|valign="top"|
 +
----
 +
<span style="color: #555555; font-size: 18px; font-weight: bold;">Getting involved</span>
 +
----
  
===Introduction===
+
* [[{{FULLPAGENAME}}/Meetings|Developer meetings]]
 +
: It is open to everyone, feel free to join.
 +
 
 +
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list] / [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Sign-up] / [http://slicer-devel.65872.n3.nabble.com/ Browse archives]
 +
: Intended for discussion of programming related questions
 
----
 
----
 +
<span style="color: #555555; font-size: 18px; font-weight: bold;">Resources</span>
 +
----
 +
* [http://na-mic.org/Mantis/roadmap_page.php Roadmap]{{new}}
 +
: What's next ? What's the plan ?
  
* [[Documentation/{{documentation/version}}/Developers/Overview | Overview]]
+
* [http://slicer.cdash.org/index.php?project=Slicer4 CDash Quality Dashboard] / [[{{FULLPAGENAME}}/Tutorials/DashboardSetup|Setup a dashboard]]
: Overview of the development process.
+
: Nightly, continuous and experimental dashboards.
  
===Mailing List & Developer meetings ===
+
* [http://na-mic.org/Mantis Bug tracker] / [http://na-mic.org/Mantis/signup_page.php Register] / [http://na-mic.org/Mantis/bug_report_page.php Report a bug]
----
+
: Web-based bug tracking system
* [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
 
* [[Developer_Meetings|Developer meetings]]
 
: It is open to everyone, feel free to join.
 
  
===Miscellaneous===
+
* [http://slicer.org/doc/html/classes.html Doxygen]
----
+
: Source code API documentation.
* [[Documentation/4.0/Developers/ImageGallery|Image gallery]]
 
: Set of screenshots showing the different Slicer components.
 
  
* [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Style Guidelines]]
+
* [[{{FULLPAGENAME}}/Style Guide|Slicer Style Guidelines]]{{new}}
 
: 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]]
 
: This page serves as a MediaWiki sandbox.
 
  
 
* [[Slicer4:Developers|Developer Projects]]
 
* [[Slicer4:Developers|Developer Projects]]
 
: Pages for the developer projects.
 
: Pages for the developer projects.
  
 +
* [[Release Details|Change logs and release details]]
 +
: Informations about Slicer releases
  
<!--
+
----
* [[Documents and links]]
+
<span style="color: #555555; font-size: 18px; font-weight: bold;">Bookmarks</span>
: A set of presentations made on Slicer and document talking about it.
+
----
 +
* [http://marklodato.github.com/visual-git-guide/index-en.html A Visual Git Reference]
  
* [[Documentation/4.0/FAQ]]
 
: A set of common questions/answer on Slicer goal and possibility.
 
-->
 
  
 
|bgcolor="#CCCCCC"|
 
|bgcolor="#CCCCCC"|
 
|valign="top"|
 
|valign="top"|
 
===Source Code===
 
 
----
 
----
* [http://svn.slicer.org/Slicer4/trunk SVN repository]
+
<span style="color: #555555; font-size: 18px; font-weight: bold;">Build instructions</span>
: <code>svn checkout http://svn.slicer.org/Slicer4/trunk</code>
+
----
 +
* [https://github.com/Slicer/Slicer Git repository] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit] / [[Documentation/{{documentation/version}}/Developers/Build_Instructions#Using_git-svn|git-svn setup]]
 +
: <code>git clone git://github.com/Slicer/Slicer.git</code>
  
* [http://slicer.org/doc/html/classes.html Doxygen]
+
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Build Slicer application]]
: Source code API documentation.
+
: Compiling and installing Slicer from source.
  
* [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] ([http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit])
+
* [[Documentation/{{documentation/version}}/Developers/Build Module|Build Module]]{{new}}
: Web-based code repository viewer.
+
: Compiling slicer modules outside of the slicer source tree.
  
===Compile/Install===
 
 
----
 
----
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Building instructions]]
+
<span style="color: #555555; font-size: 18px; font-weight: bold;">Design & Implementation</span>
: Compiling and installing Slicer from source.
 
 
 
* [http://slicer.cdash.org/index.php?project=Slicer4 CDash (Quality Dashboard)]
 
: Nightly, continuous and experimental dashboards.
 
 
 
* [[Slicer4:QtPort/Releases|Releases]]
 
: Informations of Slicer releases
 
 
 
===Design & Implementation===
 
 
----
 
----
  
* [[Documentation/{{documentation/version}}/Developers/Modules | Modules]]
+
* [[{{FULLPAGENAME}}/Modules | Modules]]{{updated}}
: Comparison between the different module types supported by Slicer
+
: Comparison between the different supported module types
  
* [[Documentation/{{documentation/version}}/Developers/MRML | Data Model - MRML]]
+
* Internals
: Objects and their organization. MRML Library provides API for managing medical image data type.
+
** [[{{FULLPAGENAME}}/MRML | Data Model / MRML]] - Objects and their organization. MRML Library provides API for managing medical image data type
 +
** [[{{FULLPAGENAME}}/Logics | Logics]] - Details the role of MRML/Slicer/Application/Modules logics and Displayable managers
 +
** [[{{FULLPAGENAME}}/IO | IO Mechanism]] - How to read or write nodes from file
  
* [[Documentation/{{documentation/version}}/Developers/Logics | Logics]]
+
* [[{{FULLPAGENAME}}/Python scripting | Python scripting]]
: Details the role of logics in Slicer and lists the different types such as [[Documentation/{{documentation/version}}/Developers/DisplayableManagers | displayable managers]].
+
: Presents the underlying infrastructure.
  
* [[Documentation/{{documentation/version}}/Developers/Python scripting | Python scripting]]
+
* [[{{FULLPAGENAME}}/Charts | Charts]]
: Presents the underlying infrastructure.
+
: Description of the Charting architecture.
  
* [[Documentation/{{documentation/version}}/Developers/Build system | Build system]]
+
* [[{{FULLPAGENAME}}/Build system | Build system]] / [[Release_Details | Release details]]
: Details how Slicer is built and packaged.
+
: Details how Slicer is built, packaged and released.
  
 
|bgcolor="#CCCCCC"|
 
|bgcolor="#CCCCCC"|
 
|valign="top"|
 
|valign="top"|
 
===HOW TO===
 
 
----
 
----
* An introduction into plug-ins and extensions in Slicer
+
{{:{{FULLPAGENAME}}/Tutorials}}
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/QtCreator|Use QtCreator]]
+
|}
: 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]]
+
<hr>
: 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 {{documentation/version}}
 
  
* [[Documentation/{{documentation/version}}/Developers/Tutorials/Debug Instructions|Debug]] or [[Documentation/{{documentation/version}}/Developers/Tutorials/Troubleshooting|Troubleshoot Slicer]]
+
[[{{collaborator|logo|slicer4}}|x300px|center]]
: Hints for debugging or 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/{{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]
 
 
 
|}
 

Latest revision as of 07:27, 14 June 2013

Home < Documentation < 4.1 < Developers


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



If you are a newcomer, you should probably check these instructions !


Getting involved


It is open to everyone, feel free to join.
Intended for discussion of programming related questions

Resources


What's next ? What's the plan ?
Nightly, continuous and experimental dashboards.
Web-based bug tracking system
Source code API documentation.
Consistency and Readability for a manageable code base
Pages for the developer projects.
Informations about Slicer releases

Bookmarks




Build instructions


git clone git://github.com/Slicer/Slicer.git
Compiling and installing Slicer from source.
Compiling slicer modules outside of the slicer source tree.

Design & Implementation


Comparison between the different supported module types
  • Internals
    • Data Model / MRML - Objects and their organization. MRML Library provides API for managing medical image data type
    • Logics - Details the role of MRML/Slicer/Application/Modules logics and Displayable managers
    • IO Mechanism - How to read or write nodes from file
Presents the underlying infrastructure.
Description of the Charting architecture.
Details how Slicer is built, packaged and released.

How To










Slicer4Announcement-HiRes.png