"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 Tutorial
s. Also see the DWARF FAQ
(read this first) and the DWARF Glossary
(work in progress)
Service Manager Interfaces
Interfaces for implementing new Services.
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
- 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
- ServiceManagerInternal?: SMgrDescribeServices (newServiceDesc, ...), SMgrRegisterServices (registerService, unregisterService, registerServiceCallbacks)
- Service Manager Callbacks (method
- 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
- ServiceARTTracker: This service provides tracking data from the DTrack system by A.R.T.
- ARToolkit based:
- ServiceIntersenseTracker?: Provides tracking data from the IS600 system by Intersense.