Difference between revisions of "Slicer-IGT/For Developers"

From Slicer Wiki
Jump to: navigation, search
m (1 revision)
Line 1: Line 1:
 
Back to [[Slicer-IGT|Slicer-IGT]]
 
Back to [[Slicer-IGT|Slicer-IGT]]
  
==Summery==
+
=Summary=
‘’’Slicer for IGT’’’ is an extension of 3D Slicer designed and customized for Image Guided Therapy. 3D Slicer is comprehensive medical image processing and visualization software for medical image computing.  There are many technical advantages to use Slicer for IGT research.
+
'''Slicer for IGT''' is an extension of 3D Slicer designed and customized for Image Guided Therapy. 3D Slicer is comprehensive medical image processing and visualization software for medical image computing.  There are many technical advantages to use Slicer for IGT research.
  
 
*Access to state of art medical image-to-image registration and segmentation algorithm
 
*Access to state of art medical image-to-image registration and segmentation algorithm
Line 13: Line 13:
 
*Access to tracking and registration data from a commercial navigation system (not yet available)
 
*Access to tracking and registration data from a commercial navigation system (not yet available)
  
==Objective==
+
=Objective=
 
The objective of this page is to understand the architecture of Slicer IGT and build your own module using on Slicer.
 
The objective of this page is to understand the architecture of Slicer IGT and build your own module using on Slicer.
  
 
+
=Architecture=
==Architecture==
+
==Inside Slicer for IGT==
 
 
 
 
 
 
===Inside Slicer for IGT===
 
 
[[Image:Slicer3-IGT-Architecture.png|300px|thumb| Blockdiagram of the IGT module]]
 
[[Image:Slicer3-IGT-Architecture.png|300px|thumb| Blockdiagram of the IGT module]]
  
IGT developer should focus on writing codes in two subcomponents in Slicer: '''Modules''' and '''IGT library.''' Deteiled instruction to make your own software on the top of Slicer can be found http://wiki.na-mic.org/Wiki/index.php/Slicer3:Developers. We also provide '''vtkSlicerIGTLogic''' class in Base component of the Slicer to provide basic function for IGT applications.  However, you should be working only in two most important parts (a Module and IGT library) your will be mainly adding/creating codes.
+
IGT developer should focus on writing codes in two subcomponents in Slicer: '''Modules''' and '''IGT library.''' See detailed [[Slicer3:Developers |instructions]] to make your own software on the top of Slicer. We also provide '''vtkSlicerIGTLogic''' class in Base component of the Slicer to provide basic function for IGT applications.  However, you should be working only in two most important parts (a Module and IGT library) your will be mainly adding/creating codes.
 
 
 
 
 
 
'''Module''' represents a page window in Slicer, where developers can design appliation specific GUI and associated C++ codes. The codes are usually stored in one directory under Module directory of Slicer, and self-containing for one application. One application directory have one Gui class and Logic class. Instruction to build a module can be found at [[Slicer3:Interface_Design#First_steps:_How_to_build_a_Slicer3_Module_GUI | How to add an interactive module]].
 
  
 +
'''Module''' represents a page window in Slicer, where developers can design application specific GUI and associated C++ codes. The codes are usually stored in one directory under Module directory of Slicer, and self-containing for one application. One application directory have one Gui class and Logic class. Instructions to [[Slicer3:Interface_Design#First_steps:_How_to_build_a_Slicer3_Module_GUI |build a module]].
  
 
'''IGT library''' is part of the library in the Lib directory of the codes. This is the library where people should contribute codes to share among IGT applications. The application specific codes should go into a '''Module'''.  As a starting set of shared codes, we developed three groups of classes in the IGT library. Those are classes for interfacing to tracker and imaging devices, patient-to-image registration, and tool calibration. UML description of each group of classes can be found here.
 
'''IGT library''' is part of the library in the Lib directory of the codes. This is the library where people should contribute codes to share among IGT applications. The application specific codes should go into a '''Module'''.  As a starting set of shared codes, we developed three groups of classes in the IGT library. Those are classes for interfacing to tracker and imaging devices, patient-to-image registration, and tool calibration. UML description of each group of classes can be found here.
  
==Download source code and Build Slicer IGT==
+
=Download source code and Build Slicer IGT=
  
 
In Oct 2007, Slicer IGT was fully migrated into main SVN trunk of Slicer 3. Please follow instruction in Slicer 3 page to download and compile Slicer (and Slicer IGT).
 
In Oct 2007, Slicer IGT was fully migrated into main SVN trunk of Slicer 3. Please follow instruction in Slicer 3 page to download and compile Slicer (and Slicer IGT).
  
 +
* [[Slicer3:Build_Instructions| Slicer3-IGT downloading and building instruction]]
 +
* [http://www.na-mic.org/Dart/Slicer3/Dashboard/ Slicer3 Dashboard/SVN/Doxigen]
 +
* [http://www.na-mic.org/Slicer/Documentation/Slicer3/html/  Doxygen-generated documentation]
  
* [http://www.na-mic.org/Wiki/index.php/Slicer3:Build_Instructions Slicer3-IGT downloading and building instruction]
+
=Links=
 
 
 
 
[http://www.na-mic.org/Dart/Slicer3/Dashboard/ Slicer3 Dashboard/SVN/Doxgen]
 
 
 
[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/  Doxygen-generated documentation ]
 
 
 
==Links==
 
 
 
[http://wiki.na-mic.org/Wiki/index.php/Slicer3 Slicer3 main page]
 
  
[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/index.html Slicer 3 Documentation]
+
*[http://www.slicer.org/slicerWiki/index.php/Main_Page Slicer3 main page]
 +
*[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/index.html Slicer 3 Documentation]
  
==FAQ==
+
=FAQ=
  
==HowTo==
+
=HowTo=
  
 
* add pre-processor flags inside CMake
 
* add pre-processor flags inside CMake
  with ADD_DEFINITIONS() it is possible to add new definitions to the gcc - commandline. Thus it is possible to influence the code compiling directly out of CMakeLists.txt.
+
  with ADD_DEFINITIONS() it is possible to add new definitions to the gcc - command line. Thus it is possible to influence the code compiling directly out of CMakeLists.txt.
 
  e.g.: ADD_DEFINITIONS(-DFLAGTOADD)
 
  e.g.: ADD_DEFINITIONS(-DFLAGTOADD)

Revision as of 23:04, 12 June 2008

Home < Slicer-IGT < For Developers

Back to Slicer-IGT

Summary

Slicer for IGT is an extension of 3D Slicer designed and customized for Image Guided Therapy. 3D Slicer is comprehensive medical image processing and visualization software for medical image computing. There are many technical advantages to use Slicer for IGT research.

  • Access to state of art medical image-to-image registration and segmentation algorithm
  • Interface for commercial tracking device available in the market
  • State-of-art patient-to-image registration methods
  • Multi-platform support (Linux, Windows, Mac OS)
  • Add your own software as command-line-based C or C++ program without binding it to specific toolkit or language
  • Active discussion and collaboration with Image Guided Therapy researchers
  • Real-time image transfer from MRI/CT/US (partially available)
  • Access to tracking and registration data from a commercial navigation system (not yet available)

Objective

The objective of this page is to understand the architecture of Slicer IGT and build your own module using on Slicer.

Architecture

Inside Slicer for IGT

Blockdiagram of the IGT module

IGT developer should focus on writing codes in two subcomponents in Slicer: Modules and IGT library. See detailed instructions to make your own software on the top of Slicer. We also provide vtkSlicerIGTLogic class in Base component of the Slicer to provide basic function for IGT applications. However, you should be working only in two most important parts (a Module and IGT library) your will be mainly adding/creating codes.

Module represents a page window in Slicer, where developers can design application specific GUI and associated C++ codes. The codes are usually stored in one directory under Module directory of Slicer, and self-containing for one application. One application directory have one Gui class and Logic class. Instructions to build a module.

IGT library is part of the library in the Lib directory of the codes. This is the library where people should contribute codes to share among IGT applications. The application specific codes should go into a Module. As a starting set of shared codes, we developed three groups of classes in the IGT library. Those are classes for interfacing to tracker and imaging devices, patient-to-image registration, and tool calibration. UML description of each group of classes can be found here.

Download source code and Build Slicer IGT

In Oct 2007, Slicer IGT was fully migrated into main SVN trunk of Slicer 3. Please follow instruction in Slicer 3 page to download and compile Slicer (and Slicer IGT).

Links

FAQ

HowTo

  • add pre-processor flags inside CMake
with ADD_DEFINITIONS() it is possible to add new definitions to the gcc - command line. Thus it is possible to influence the code compiling directly out of CMakeLists.txt.
e.g.: ADD_DEFINITIONS(-DFLAGTOADD)