Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

THIS WEBPAGE IS DEPRECATED - please visit our new website

Lab Course SS 2004: Intra-operative Imaging & Visualization


Bastian Seehaus
David Flade
Frederik Bender
Henning Herbers

General Discussions

  • General Discussion Forum Go ahead - Take a look!
  • Our work is sustained by good Documentation. Still there are some variables and methods not documented.



July 22nd

  • added quick hack to enable and disable the SliceInteraction during runtime
  • now all m_renderer[] are recomputed after update (better documentation in SliceViewGL would have made this a 1 minute job...)
  • as allways: added documentation for those coming after us smile
  • last and definately not least: made some testing for presentation and tagged this running version in cvs as "presentationSliceinteraction" (so now we can still work on it and be sure to have a running version tomorrow morning no matter what big grin )

July 21st later at night or early in the morning wink

  • added more Interface methods to Slice and VolumeViewGL and Mainframe
  • started on concept for handling Images and Views

July 21st

  • added Interaction functionality (only for Sliceview::m_renpose, but works nicely allready, try 4 different sliceviews on a head and use different views in each one (cubeview, fullview etc.)) to be continued...
  • changed menustructure
  • added autoload again (/home/shared/data/MR/headbla)

July 19th - a little bit later... good fight, good night

  • some kind of multi-view mode added. to be continued...

July 19th

  • moved all Slice / VolumeViewGL specifics out of ViewGL; ViewGL is now a base class for all GL outputs, not only renderers
  • reworked most of the MainframeUI and Mainframe to integrate Multiple View Support (not finished)
  • research in this $@$#@%^# matter of not drawing at start

July 16th

  • All bugs should be removed now, new version stable as old version
  • All buttons work in Fullview mode
  • New image is automatically selected in browser after loading
  • Views are part of a tile, its size is dynamic and adapts on window size. This is all done in MainFrame.cpp
  • You don't have to set the 4 parameters in SliceViewUI.cxx and VolumeViewUI.cxx manually anymore to make them a subwindow after a "make clean"!!!

July 15th

  • Again, goal achieved. a running version is in the cvs.

July 14th

  • WOHOO! Goal achieved, a yes-it-compiles-again version was created (next goal will be a linking version wink )
  • That is due to GREAT TEAMWORK! and effort from everybody. Good work guys!
  • restructuring complete, now we can finish the edges (mainframe) and tidy up a bit (viewgl and sliceviewgl are woven together too much)
  • a lot of documentation was added


Next Meeting

generally every Monday 13 o'clock
but next Monday is cancelled; afternoon on Tuesday then

Links, Tutorials

FLTK Reference
OpenGL Reference
Doxygen Manual
gnu make doc
gnu make tutorial
Design Patterns
Script about Design Patterns

astyle (code formatter)
Eclipse project
Eclipse C Development Tools

Medcyclopedia, tons of information on medical imaging/technology
Osirix, Multidimensional DICOM Viewer for MacOS X. Check the screenshots!
Introduction to some popular GUI Toolkits
The Fast Light Toolkit
Insight Registration and Segmentation Toolkit
The Visualization Toolkit
SGI OpenInventor Main Page
FL-Inventor, OpenInventor stuff in fltk
Coin, another implementation of the OpenInventor API

Time schedule

Week 1 2 3 4 5 6 7
Problem ### ###          
Enviroment ### ###          
Implementation   ## ### ###      
Documentation     ### ### ###    
Combination         ### ###  
Testing         ### ###  
Final presentation             ###

Assignments (more Details)

Recent objectives include:
  • Development of various OpenGL Views and appropriate widgets. (for integration of all renderer included in framework)
  • Design of a cool and flexible alignement in the main frame.
  • First thoughts on concept and interface for the controller.
  • Sketch the model class. (beyond use of Wolfgang's image class)
  • Development of a basic view class to be extended by fluid interfaces.
Wolfgang encourages us to meet on a regular basis and get going on programming.

For further, more specific assignments, also check the meeting minutes.

Meeting Minutes



  • Erich Gamma: Design Patterns (Tonnen davon in der Bib verfuegbar)

Remarks to the development environment

Code Format mit astyle

astyle can be downloaded here(linux/w32)
Documentation and Installation (easy)
Easiest way is to put the astyle binary in your PraktSS04 dir or somewhere accessible.
Create ".astylerc" in your home with following content:
--style=kr -c -C -T
astyle bla.cpp bla.h
astyle *.cpp *.h
Then the file(s) will be reformatted and a backup is made to bla.cpp.orig


For using cvs, you have to set an environment variable. This can be done automatically by adding a line in the file .bashrc (begins with a dot and thus is hidden in the normal file view) in your home directory: export CVSROOT=/home/shared/cvs
If you wanna do the same over the internet:
export CVS_RSH=ssh

(the last line tells that the Remote SHell for the connection is ssh)
If you are annoyed by the editor that comes up if you do changes:
export CVS_EDITOR=/usr/bin/yourfavoriteeditor

CVS and Eclipse

Fürs CVS bei Eclipse ist folgendes nötig:
Unterm Menu Window/Preferences/Team/CVS/ext Connection Method:
CVS_RSH unter Linux: ssh
CVS_RSH unter Windows: Pfad\plink.exe
Parameters: ""
CVS_SERVER: /usr/bin/cvs
Unter den Properties des Repositorys:
repository path: /home/shared/cvs
connection type: ext
user: usernamehalt
password: blank (if you have the ssh key)

Edit | Attach | Refresh | Diffs | More | Revision r1.53 - 22 Jul 2004 - 17:57 - BastianSeehaus