[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