[IGSTK-Developers] tracking and video

David Gobbi dgobbi at atamai.com
Tue Jan 30 11:23:11 EST 2007


Ziv Yaniv wrote:
> Hi all,
>
> Some questions/comments related to the IGSTK video and tracking components:
>
> 1. While the micronTracker is a tracking device it does provide a video stream, should it inherit both from igstk::Tracker and igstk::RealtimeImager (made up generic name for all devices that produce image/volume streams)?
>   

If possible there should be two separate classes, an 
igstk::MicronTracker and an igstk::MicronImager.  Note that I still 
don't like the word "Imager" but I don't have anything better to suggest...

The MicronTracker class would be the class that would control the 
device, but it could have special methods that the MicronImager could 
call to access the video features of the device.  Either that, or the 
MicronImager could simply get a device handle for the micron tracker 
from the MicronTracker class, and could use the micron tracker's API to 
directly access the video.

Multiple inheritance should always be avoided.

> David, as it is a stereo system, do you get to choose which image it streams or does it stream both?
>   
It streams both.

> 2. Is there a policy with regard to including GPL code as part of IGSTK, not the core, but utilities/add ons directory?
>   

It's a no-no, even in a Utilities directory.  Any GPL code should go in 
a separate repository (e.g. if we had a Contrib repository, that's where 
it would go).

> It would be nice to have the ARToolkit (http://www.hitl.washington.edu/artoolkit/) or ARToolkitPlus (http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php)in a utilities directory. This way students can use IGSTK as part of a course on IGS with webcam trackers or, believe it or not, in real IGS applications (S. Nicolau et al., "A complete augmented reality guidance system for liver punctures: First clinical evaluation",MICCAI'05).
>
> This also raises the previous question, a web cam is both a RealtimeImager and a Tracker.
>   

But as two separate classes that talk to the same device, ideally!  Not 
as one multiple-inherited class.

I think of it in the same way that I think of a multi-function printer: 
it prints, and it scans, and as far as Windows is concerned it is two 
separate devices, rather than one device with multiple functions.  When 
you're using it to print you don't want to see any bits of the interface 
that are related to scanning, and vice-versa.
> If including GPL'd code in a utilities directory is not a problem I may try to enlist some outside help from people not currently involved in the project, although I'm not too sure if they will bite.
>   
The idea of an "IGSTKContributions" repository as come up before.  
Kitware would probably be willing to add such a repository.  Either 
that, or we could add a "Contributions" directory to the IGSTKSandbox.

 - David






More information about the IGSTK-Developers mailing list