| 1 | \chapter{Intercoms}
|
|---|
| 2 |
|
|---|
| 3 | \section{Design Philosophy}
|
|---|
| 4 |
|
|---|
| 5 | The intercoms category implements an expandable command interpreter which
|
|---|
| 6 | is the key mechanism in {\sc Geant4} for realizing customizable and
|
|---|
| 7 | state-dependent user interactions with all categories without being
|
|---|
| 8 | perturbed by the dependencies among classes. The capturing of commands is
|
|---|
| 9 | handled by a C++ abstract class {\it G4UIsession}. Various concrete
|
|---|
| 10 | implementations of the command capturer are contained in the [user]
|
|---|
| 11 | interfaces category. Taking into account the rapid evolution of graphical
|
|---|
| 12 | user interface (GUI) technology and consequent dependence on external
|
|---|
| 13 | facilities, plural and extensible GUIs are offered.
|
|---|
| 14 |
|
|---|
| 15 | Programmers need only know how to register the commands and parameters
|
|---|
| 16 | appropriate to their problem domain; no knowledge of GUI programming is
|
|---|
| 17 | required to allow an application to use them through one of the available
|
|---|
| 18 | GUIs.
|
|---|
| 19 |
|
|---|
| 20 | The intercoms category also provides the virtual base classes
|
|---|
| 21 | \begin{itemize}
|
|---|
| 22 | \item G4VVisManager,
|
|---|
| 23 | \item G4VGraphicsScene, and
|
|---|
| 24 | \item G4VGlobalFastSimulationManager.
|
|---|
| 25 | \end{itemize}
|
|---|
| 26 |
|
|---|
| 27 | \section{Class Design}
|
|---|
| 28 |
|
|---|
| 29 | \begin{itemize}
|
|---|
| 30 | \item {\bf G4UISession} -
|
|---|
| 31 | \item {\bf G4UIBatch} -
|
|---|
| 32 | \item {\bf G4UICommand} -
|
|---|
| 33 | \item {\bf G4UIparameter} -
|
|---|
| 34 | \item {\bf G4UImessenger} -
|
|---|
| 35 | \end{itemize}
|
|---|
| 36 |
|
|---|
| 37 | The object-oriented design of the 'user interface' related classes
|
|---|
| 38 | is shown in the class diagram Fig. \ref{figure:userInt-1}.
|
|---|
| 39 | The diagram is described in the Booch notation.
|
|---|
| 40 | \newline
|
|---|
| 41 |
|
|---|
| 42 |
|
|---|
| 43 | \begin{figure}[h!]
|
|---|
| 44 | \includegraphics[angle=0,scale=0.55]{OOAnalysisDesign/UserInterface/classDgmUserInterface.eps}
|
|---|
| 45 | \vspace{10pt}
|
|---|
| 46 | \caption{Overview of intercom classes}
|
|---|
| 47 | \label{figure:userInt-1}
|
|---|
| 48 | \end{figure}
|
|---|
| 49 |
|
|---|
| 50 |
|
|---|
| 51 | \section{Status of this section}
|
|---|
| 52 |
|
|---|
| 53 | 27.06.05 design philosophy (from Geant4 general paper) and class design
|
|---|
| 54 | sections added by D.H. Wright \\
|
|---|
| 55 |
|
|---|