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 | |
---|