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

DWARF Documentation

"The only thing worse than no documentation is incorrect documentation."

Introduction, Tutorials, White Papers

There is a short introduction paper about the ideas and technology behind Dwarf. If you are only interested in Augmented Reality itself, read the Introduction to Augmented Reality. The documentation on this site is intended to be the developers documentation. For introduction into the design and ideas of DWARF, please refer to the PublicationList. For documentation about certain topics in context of the Dwarf deployment and developmentsee the Dwarf Tutorials. Also see the DWARF FAQ (read this first) and the DWARF Glossary (work in progress)

Service Manager Interfaces

Interfaces for implementing new Services. <YOUR_DWARF_DIR>src/idl/DWARF/Service.idl for the exact interface definitions.

The common libraries (see below) ease use of these interfaces. They provide TemplateServices and other classes (as event receivers, event senders, ...) that manage a lot of the Behavioral Interfaces, the Communication Interfaces (Protocols) and the ServiceManager Interfaces.

Behavioral Interfaces

  • SvcService: What every service must support to be a Service
  • SvcStartup: Starting and stopping a Service, to let a service know to what Communication Interfaces it will be connected.
  • SvcSession: For more explicit control (kowing about sessions) over communication partners. See DOC:group__middlewareidlsession.html
  • SvcSelection: Implementing a "picky" service, or let the user decide ("don't trust Asa"-interface). See DOC:group__middlewareidlselection.html

Communication Interfaces (Protocols)

  • SvcProtObjrefImporter?: Allows Corba method calls
  • ObjrefExporter?: no exporter interface, exporter object itself is exported
  • SvcProtPushSupplier?, SvcProtPullSupplier?, SvcProtPushConsumer: Corba Events using Notification Service; supplier gets consumer to push into; consumer's push method is called
  • SvcProtShmem?: Shared Memory; one interface for readers and writers

ServiceManager Interfaces

  • ServiceDescription
  • ServiceManagerInternal?: SMgrDescribeServices (newServiceDesc, ...), SMgrRegisterServices (registerService, unregisterService, registerServiceCallbacks)
  • Service Manager Callbacks (method ServiceManager.registerServiceCallbacks)
    • AttributesChanged: On ServiceDescription as well as Needs and Abilities
    • SvcLoad?: How a service is to be loaded (default: as separate process)
    • EventChannelFactory: How the event channels are created (default: as separate process per Need or Ability)
    • SvcInstantiation?: Deals with clones (templates of services)

Source Code Documentation

Doxygen API documentation (IDLs (distributed types) C++ and python)


The documentation is generated every day and can be found here: Doxygen Documentation

Doxygen documentation conventions:

For all those that contribute code to the cvs repository there are very few conventions that should be applied:

  • Only documented source files are used as doxygen input so if your sourcefiles are documented add them to the list of input files in
CVSROOT/doc/conf/dwarfdoxy.conf (INPUT key).
  • Document your code according to the doxygen Syntax.
  • Give a brief and a detailed description for each class.
  • Describe all methods of each class.
  • Describe all parameters of each method (use \param command).
  • Mark those methods that are buggy or those that are only used internal (use \bug or \warning command).
  • Define a meaningful group and cluster your classes in that group e.g. one group per service (use \defgroup and \ingroup command). Further have a look at DOC:modules.html and see if your classes fit into one of the existing groups.

Look here for detailed information about doxygen.

Javadoc API documentation

Browse Common Libraries:

The Java Documentation can be found at http://campar.in.tum.de/personal/fardemo/javadoc .
Same as Doxygen the Javadoc it is also generated every day.

Javadoc documentation conventions: see the DwarfJavaTutorial


Documentation of hopefully all services, grouped by some intelligence.

Each service (should) list(s) Intention, Required Libs and Jars, Information about Installation and Configuration.

Tools, Debug and Testing Subsystem

Well DocumentedSomehow DocumentedN.A.
  • ServiceMessageAlerter
  • ServiceMessageSender
  • ServiceCollisionReceiver
  • ServiceReceivePoseData
  • ServiceSendPoseData
  • ServiceFreeWRLTestScenes
  • ServiceImageViewer

Tracking Subsystem

  • ServiceARTTracker: This service provides tracking data from the DTrack system by A.R.T.
  • ARToolkit based:
    • ServiceMarkerConfiguration?
    • ServiceMarkerDetection?
  • ServiceObjectCalibration
  • ServiceIntersenseTracker?: Provides tracking data from the IS600 system by Intersense.
  • ServiceCalibration?
  • ServiceCollisionDetection?
  • ServiceMultiTracker?

Input Subsystem

Presentation Subsystem

Application Subsystems

Edit | Attach | Refresh | Diffs | More | Revision r1.59 - 14 Feb 2006 - 18:13 - MarcusToennis

Lehrstuhl für Computer Aided Medical Procedures & Augmented Reality    rss.gif