Difference between revisions of "OpenIGTLink/Library"

From NAMIC Wiki
Jump to: navigation, search
(→‎License: Fix link to New BSD license. The link directed to the 2-Clause license, rather than the 3-Clause license. The 3-Clause license is "new BSD".)
 
(34 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[OpenIGTLink | << OpenIGTLink]]
 
[[OpenIGTLink | << OpenIGTLink]]
#<div class="floatright">__TOC__</div>
 
  
=Three ways to implement Open IGT Link in your application=
+
=General Information=
===Implement by yourself===
+
<hr/>
*Writing applications in non-C or C++ language
+
== Supported platforms ==
 +
* Microsoft Windows (tested on XP and 7 (32-bit and 64-bit))
 +
* Linux (Tested on Ubuntu 10.10 (32-bit and 64-bit))
 +
* Mac OS X 10.5/6/7/8/9 (Intel 64-bit)
 +
* Sun Solaris (GNU CC and Sun CC) (tested on Solaris 8 and 10)
 +
* QNX (Not tested well -- feedbacks from QNX users are greatly appreciated)
  
===Use simple C code===
+
== License ==
*The code provides C structures for the generic header, image header and transform header, and supporting functions to create a message packet.
+
This code is distributed under the [http://opensource.org/licenses/BSD-3-Clause new BSD License].
*Suitable for applications written in C and C++
 
*You can just copy the files into your source directory. You never have any linking problems.
 
  
===Use the Open IGT Link Library===
+
=Instruction=
*The library supports
+
<hr/>
**Classes to create Open IGT Link message
+
==Downloading Source Code with Example Programs==
**TCP/IP Socket
+
Since December 2011, the source code repository is hosted by GitHub. The code can be obtained from:
**Thread and Mutex useful to make server program
+
git@github.com:openigtlink/OpenIGTLink.git
 +
or
 +
git://github.com/openigtlink/OpenIGTLink.git
 +
If you would like to have read/write access to participate the development, please send your SSH public key to [[User:Tokuda| Junichi Tokuda]]. The source code is also available in the following Subversion repository.
 +
http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink
  
= Source code =
+
==Building the Library==
 +
* [[OpenIGTLink/Library/Build | How to build the library]]
  
An Open Source implementation of the OpenIGTLink protocol is available at
+
== Tutorial==
 +
* [[OpenIGTLink/Library/Tutorial | The Open IGT Link Library Tutorial]]
 +
* [[OpenIGTLink/Approaches | What is the best way to build your OpenIGTLink application?]]
  
http://www.na-mic.org/svn/NAMICSandBox/trunk/OpenIGTLink/
 
  
= License =
+
= Acknowledgements =
This code is distributed under the [http://www.opensource.org/licenses/bsd-license.php new BSD License].
+
<hr/>
 +
*Attila Nagy has been helping the team to support Sun OS.
 +
*Dominique Belhachemi contributed to make the OpenIGTLink library available as a Debian Package.
  
= Design =
+
= Contact =
 +
<hr/>
 +
*Please contact [[User:Tokuda| Junichi Tokuda]] at Brigham and Women's Hospital
  
* [[OpenIGTLink/Library/Design | Design ]]
+
=Seoul=
* [http://wiki.ncigt.org/index.php/U41:Prostate:BRP:Events:Meeting_5Feb08 Weekly Meeting: February 5th]
+
making change.
 
 
= Building instructions =
 
* [[OpenIGTLink/Library/Build | How to build the library?]]
 
 
 
 
 
= Tutorial =
 
==C-code implementation (w/o socket)==
 
 
 
The library contains c codes in the Source/igtlutil directory to generate Open IGT Link message byte stream.
 
The followings are core parts of source codes to create Open IGT Link message.
 
 
 
Include declarations for transformation data:
 
  #include "igtl_util.h"
 
  #include "igtl_header.h"
 
  #include "igtl_transform.h"
 
 
 
Transform package creation:
 
  /********** pack data body **********/
 
  igtl_float32 transform[12];
 
 
 
  transform[0] = tx;
 
  transform[1] = ty;
 
  transform[2] = tz;
 
  transform[3] = sx;
 
  transform[4] = sy;
 
  transform[5] = sz;
 
  transform[6] = nx;
 
  transform[7] = ny;
 
  transform[8] = nz;
 
  transform[9] = px;
 
  transform[10] = py;
 
  transform[11] = pz;
 
 
 
  igtl_transform_convert_byte_order(transform);  /* convert endian if necessary */
 
 
 
  /********** general header **********/ 
 
  igtl_header header;
 
  igtl_uint64 crc = crc64(0, 0, 0LL);          /* initial crc */
 
  header.version  = IGTL_HEADER_VERSION;
 
  header.timestamp = 0;
 
  header.body_size = IGTL_TRANSFORM_SIZE;
 
  header.crc      = crc64((unsigned char*)transform, IGTL_TRANSFORM_SIZE, crc);
 
 
 
  strncpy(header.name, "TRANSFORM", 12);      /* Device Type: should be "TRANSFORM" */
 
  strncpy(header.device_name, "Tracker", 20);    /* Device name */
 
 
 
  igtl_header_convert_byte_order(h);  /* convert endian if necessary */
 
 
 
Then send package (in case of BSD socket)
 
  send(sock, (void*) &header, IGTL_HEADER_SIZE, 0);
 
  send(sock, (void*) transform, IGTL_TRANSFORM_SIZE, 0);
 

Latest revision as of 16:53, 17 February 2015

Home < OpenIGTLink < Library

<< OpenIGTLink

General Information


Supported platforms

  • Microsoft Windows (tested on XP and 7 (32-bit and 64-bit))
  • Linux (Tested on Ubuntu 10.10 (32-bit and 64-bit))
  • Mac OS X 10.5/6/7/8/9 (Intel 64-bit)
  • Sun Solaris (GNU CC and Sun CC) (tested on Solaris 8 and 10)
  • QNX (Not tested well -- feedbacks from QNX users are greatly appreciated)

License

This code is distributed under the new BSD License.

Instruction


Downloading Source Code with Example Programs

Since December 2011, the source code repository is hosted by GitHub. The code can be obtained from:

git@github.com:openigtlink/OpenIGTLink.git

or

git://github.com/openigtlink/OpenIGTLink.git

If you would like to have read/write access to participate the development, please send your SSH public key to Junichi Tokuda. The source code is also available in the following Subversion repository.

http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink

Building the Library

Tutorial


Acknowledgements


  • Attila Nagy has been helping the team to support Sun OS.
  • Dominique Belhachemi contributed to make the OpenIGTLink library available as a Debian Package.

Contact


Seoul

making change.