next up previous contents
Next: Applications Up: Overview of the software Previous: Scripting ability   Contents

Interface with Tcl/Tk

The use of Tcl/Tk is based on two reasons:

The interface between C++ and Tcl/Tk is performed manually (unlike VTK). It makes it painful to write but the syntax is easy to understand.

The librairies are used by the way (or not) of an interface, loaded dynamically depending of what we want to do. Most of the existing C++ functions are associated with a Tcl command whereas all the visualization is performed with Tk and OpenGL.

We also want to be able to use the libraries without Tcl/Tk and OpenGL. It means that our application doesn't need any graphical tools. By example, Tcl/Tk should not be mandatory to create console applications.

Therefore, we must provide ``basic'' and Tcl/Tk versions of each library. The idea of libraries vs modules comes from this need.

Figure 1: Library / Module
\begin{figure}\includegraphics[width=\linewidth]{images/lib_module.ps}
\end{figure}

We use naming convention.
For a basic concept named foo, the ``basic'' library will be libfoo_s.a for the static version and libfoo.so for the static version.
The module will be called tclfoo and the associated libraries will be libtclfoo_s.a for the static version and libtclfoo.so for the static version.
If a Tcl script is associated with the module, it will be called tclfoo.tcl.


next up previous contents
Next: Applications Up: Overview of the software Previous: Scripting ability   Contents
Jean-Didier Lemarechal 2002-02-14