RTK/Developers: Difference between revisions

From Openrtk
Jump to navigation Jump to search
No edit summary
(Redirected page to Main Page)
 
(11 intermediate revisions by one other user not shown)
Line 1: Line 1:
== Developer's guide ==
#REDIRECT [[Main_Page]]


This section is aimed to assist in the development of RTK.
This section is aimed to assist in the development of RTK.


=== Source Code ===
== Download and compilation ==


==== Download repository ====
The RTK source code can be retrieved from RTK's git repository using the following command:


The RTK source code can be retrieved from RTK's GIT repository using the following command:
  git clone git@github.com:SimonRit/RTK.git <sourcePath>


  git clone git@github.com:SimonRit/RTK.git <sourcePath>
In order to compile RTK you need the following third party software:


==== Compiling ====
* Mandatory:  
 
In order to compile RTK you need the following third party software:
#[http://www.cmake.org/ CMake >= 2.4]
#[http://www.cmake.org/ CMake >= 2.4]
#[http://www.itk.org/ ITK >= 3.20]
#[http://www.itk.org/ ITK >= 3.20]
Line 22: Line 19:
#[http://www.nvidia.com/Download/index.aspx?lang=en-us CUDA drivers]
#[http://www.nvidia.com/Download/index.aspx?lang=en-us CUDA drivers]


===== CMake =====
=== CMake ===
CMake is a family of tools designed to build, test and package software.
CMake is a family of tools designed to build, test and package software.


You can download pre-compiled binaries and the source code [[http://www.cmake.org/cmake/resources/software.html|here]] or via git:
You can download pre-compiled binaries and the source code [http://www.cmake.org/cmake/resources/software.html here] or via git:


   git clone git://cmake.org/cmake.git
   git clone git://cmake.org/cmake.git


Installation instructions are available, [[http://www.cmake.org/Wiki/CMake here]].
Installation instructions are available, [http://www.cmake.org/Wiki/CMake here].


CMake is used to build ITK and RTK, among other platforms.
CMake is used to build ITK and RTK, among other platforms.


===== ITK =====
=== ITK ===
ITK is an open-source, cross-platform system that provides developers with an extensive suite of software tools for image analysis.
ITK is an open-source, cross-platform system that provides developers with an extensive suite of software tools for image analysis.


You can download the source code, [[http://www.itk.org/ITK/resources/software.html, here]]  
You can download the source code, [http://www.itk.org/ITK/resources/software.html here]  
or via git:
or via git:


    git clone git://itk.org/ITK.git <sourcePath>
  git clone git://itk.org/ITK.git <sourcePath>
    git checkout v3.20.0
  git checkout v3.20.0


Create a binary directory, i.e. itk-bin, get into it and run CMake:
Create a binary directory, i.e. itk-bin, get into it and run CMake:


    mkdir itk-bin
  mkdir itk-bin
    cd itk-bin
  cd itk-bin
    ccmake ../itk
  ccmake ../itk
    make
  make


Note: it is preferable to use the following options for registration:
Note: it is preferable to use the following options for registration:


    Set ITK_USE_REVIEW to ON
  Set ITK_USE_REVIEW to ON
    Set ITK_USE_OPTIMIZED_REGISTRATION_METHODS to ON
  Set ITK_USE_OPTIMIZED_REGISTRATION_METHODS to ON


===== Gengetopt =====
=== Gengetopt ===
Gengetopt is a tool to write command line option parsing code for C programs.
Gengetopt is a tool to write command line option parsing code for C programs.


On Windows, you can download the binary, [[http://gnuwin32.sourceforge.net/packages/gengetopt.htm here]].
*''Windows'', you can download the binary, [http://gnuwin32.sourceforge.net/packages/gengetopt.htm here].


On Linux, you can download the source code, [[ftp://ftp.gnu.org/gnu/gengetopt here]]  
*''Linux'', you can download the source code, [ftp://ftp.gnu.org/gnu/gengetopt here]  
or via git:
or via git:


    git clone git://git.sv.gnu.org/gengetopt.git
  git clone git://git.sv.gnu.org/gengetopt.git


Compilation:
Compilation:


    mkdir gengetopt-bin
  mkdir gengetopt-bin
    cd gengetopt-bin
  cd gengetopt-bin
    ../gengetopt/configure
  ../gengetopt/configure
    make
  make
    sudo make install
  sudo make install
 


=== RTK ===
Last step is to compile RTK and we also use CMake. Compilation process as follows:
Last step is to compile RTK and we also use CMake. Compilation process as follows:
   
   
    mkdir rtk-bin
  mkdir rtk-bin
    cd rtk-bin
  cd rtk-bin
    ccmake ../rtk
  ccmake ../rtk
    make
  make
 
== Coding style ==
 
=== RTK's coding convention  ===
 
RTK follows ITK's coding convention. As an ITK based platform, we decided to follow the same coding style as ITK, therefore any developer
should follow these conventions when submitting new code or contributions to the existing one.
 
If you wish to contribute code to RTK's platform, we strongly recommend you to read thoroughly ITK's coding standards which can be found, [http://www.vtk.org/Wiki/ITK/Coding_Style_Guide, here]. 
 
=== Code organization ===
 
The code is organized as follows:
 
*applications/
*cmake/
*code/
*documentation/
*Doxygen/
*examples/
*testing/
 
If you have any doubt where to locate your new code, do not hesitate to contact us by the mailing list, [http://www.openrtk.org/RTK/project/contactus.html contact].
 
== Geometry ==
 
The description of the geometry is based on the international standard IEC 61217 which has been designed for cone-beam imagers on isocentric
radiotherapy systems but it can be used for any 3D circular trajectory. The fixed coordinate system of RTK and the fixed coordinate system of
IEC 61217 are the same.
 
== API ==
 
The API of the toolkit can be found, [http://www.creatis.insa-lyon.fr/~srit/rtk/index.html here].


=== API ===
== Mailing list ==


=== Geometry ===
If you want to join our mailing list, just click on the link and fill in the subscription form:


=== Mailing list ===
[http://public.kitware.com/cgi-bin/mailman/listinfo/rtk-users RTK's mailing list]

Latest revision as of 09:10, 22 October 2012

Redirect to:

This section is aimed to assist in the development of RTK.

Download and compilation

The RTK source code can be retrieved from RTK's git repository using the following command:

  git clone git@github.com:SimonRit/RTK.git <sourcePath>

In order to compile RTK you need the following third party software:

  • Mandatory:
  1. CMake >= 2.4
  2. ITK >= 3.20
  3. Gengetopt >= 2.20
  • Optional:
  1. CUDA drivers

CMake

CMake is a family of tools designed to build, test and package software.

You can download pre-compiled binaries and the source code here or via git:

  git clone git://cmake.org/cmake.git

Installation instructions are available, here.

CMake is used to build ITK and RTK, among other platforms.

ITK

ITK is an open-source, cross-platform system that provides developers with an extensive suite of software tools for image analysis.

You can download the source code, here or via git:

  git clone git://itk.org/ITK.git <sourcePath>
  git checkout v3.20.0

Create a binary directory, i.e. itk-bin, get into it and run CMake:

  mkdir itk-bin
  cd itk-bin
  ccmake ../itk
  make

Note: it is preferable to use the following options for registration:

  Set ITK_USE_REVIEW to ON
  Set ITK_USE_OPTIMIZED_REGISTRATION_METHODS to ON

Gengetopt

Gengetopt is a tool to write command line option parsing code for C programs.

  • Windows, you can download the binary, here.
  • Linux, you can download the source code, here

or via git:

  git clone git://git.sv.gnu.org/gengetopt.git

Compilation:

  mkdir gengetopt-bin
  cd gengetopt-bin
  ../gengetopt/configure
  make
  sudo make install

RTK

Last step is to compile RTK and we also use CMake. Compilation process as follows:

  mkdir rtk-bin
  cd rtk-bin
  ccmake ../rtk
  make

Coding style

RTK's coding convention

RTK follows ITK's coding convention. As an ITK based platform, we decided to follow the same coding style as ITK, therefore any developer should follow these conventions when submitting new code or contributions to the existing one.

If you wish to contribute code to RTK's platform, we strongly recommend you to read thoroughly ITK's coding standards which can be found, here.

Code organization

The code is organized as follows:

  • applications/
  • cmake/
  • code/
  • documentation/
  • Doxygen/
  • examples/
  • testing/

If you have any doubt where to locate your new code, do not hesitate to contact us by the mailing list, contact.

Geometry

The description of the geometry is based on the international standard IEC 61217 which has been designed for cone-beam imagers on isocentric radiotherapy systems but it can be used for any 3D circular trajectory. The fixed coordinate system of RTK and the fixed coordinate system of IEC 61217 are the same.

API

The API of the toolkit can be found, here.

Mailing list

If you want to join our mailing list, just click on the link and fill in the subscription form:

RTK's mailing list