1 | <!-- ******************************************************** --> |
---|
2 | <!-- Docbook Version: For Toolkit Developers Guide --> |
---|
3 | <!-- ******************************************************** --> |
---|
4 | |
---|
5 | <!-- ******************* Section (Level#1) ****************** --> |
---|
6 | <sect1 id="sect.DsgnFuncIntrCm"> |
---|
7 | <title> |
---|
8 | Intercoms |
---|
9 | </title> |
---|
10 | |
---|
11 | <!-- ******************* Section (Level#2) ****************** --> |
---|
12 | <sect2 id="sect.DsgnFuncIntrCm.DsgPhlsp"> |
---|
13 | <title> |
---|
14 | Design Philosophy |
---|
15 | </title> |
---|
16 | |
---|
17 | <para> |
---|
18 | The intercoms category implements an expandable command interpreter which |
---|
19 | is the key mechanism in Geant4 for realizing customizable and |
---|
20 | state-dependent user interactions with all categories without being |
---|
21 | perturbed by the dependencies among classes. The capturing of commands is |
---|
22 | handled by a C++ abstract class <emphasis role="italic">G4UIsession</emphasis>. |
---|
23 | Various concrete implementations of the command capturer are contained in |
---|
24 | the [user] interfaces category. Taking into account the rapid evolution |
---|
25 | of graphical user interface (GUI) technology and consequent dependence on |
---|
26 | external facilities, plural and extensible GUIs are offered. |
---|
27 | </para> |
---|
28 | |
---|
29 | <para> |
---|
30 | Programmers need only know how to register the commands and parameters |
---|
31 | appropriate to their problem domain; no knowledge of GUI programming is |
---|
32 | required to allow an application to use them through one of the available |
---|
33 | GUIs. |
---|
34 | </para> |
---|
35 | |
---|
36 | <para> |
---|
37 | The intercoms category also provides the virtual base classes |
---|
38 | |
---|
39 | <itemizedlist spacing="compact"> |
---|
40 | <listitem><para> |
---|
41 | G4VVisManager, |
---|
42 | </para></listitem> |
---|
43 | <listitem><para> |
---|
44 | G4VGraphicsScene, and |
---|
45 | </para></listitem> |
---|
46 | <listitem><para> |
---|
47 | G4VGlobalFastSimulationManager. |
---|
48 | </para></listitem> |
---|
49 | </itemizedlist> |
---|
50 | </para> |
---|
51 | |
---|
52 | </sect2> |
---|
53 | |
---|
54 | <!-- ******************* Section (Level#2) ****************** --> |
---|
55 | <sect2 id="sect.DsgnFuncIntrCm.ClassDsg"> |
---|
56 | <title> |
---|
57 | Class Design |
---|
58 | </title> |
---|
59 | |
---|
60 | <para> |
---|
61 | <itemizedlist spacing="compact"> |
---|
62 | <listitem><para> |
---|
63 | <emphasis role="bold">G4UISession</emphasis> - |
---|
64 | </para></listitem> |
---|
65 | <listitem><para> |
---|
66 | <emphasis role="bold">G4UIBatch</emphasis> - |
---|
67 | </para></listitem> |
---|
68 | <listitem><para> |
---|
69 | <emphasis role="bold">G4UICommand</emphasis> - |
---|
70 | </para></listitem> |
---|
71 | <listitem><para> |
---|
72 | <emphasis role="bold">G4UIparameter</emphasis> - |
---|
73 | </para></listitem> |
---|
74 | <listitem><para> |
---|
75 | <emphasis role="bold">G4UImessenger</emphasis> - |
---|
76 | </para></listitem> |
---|
77 | </itemizedlist> |
---|
78 | </para> |
---|
79 | |
---|
80 | <para> |
---|
81 | The object-oriented design of the 'user interface' related classes |
---|
82 | is shown in the class diagram <xref linkend="fig.DsgnFuncIntrCm_1" />. |
---|
83 | The diagram is described in the Booch notation. |
---|
84 | |
---|
85 | <figure id="fig.DsgnFuncIntrCm_1"> |
---|
86 | <title> |
---|
87 | Overview of intercom classes |
---|
88 | </title> |
---|
89 | <mediaobject> |
---|
90 | <imageobject role="fo"> |
---|
91 | <imagedata fileref="./AllResources/OOAnalysisDesign/UserInterface/classDgmUserInterface.jpg" |
---|
92 | format="JPG" contentwidth="10.0cm" align="center" /> |
---|
93 | </imageobject> |
---|
94 | <imageobject role="html"> |
---|
95 | <imagedata fileref="./AllResources/OOAnalysisDesign/UserInterface/classDgmUserInterface.jpg" |
---|
96 | format="JPG" contentwidth="120%" align="center" /> |
---|
97 | </imageobject> |
---|
98 | </mediaobject> |
---|
99 | </figure> |
---|
100 | </para> |
---|
101 | |
---|
102 | </sect2> |
---|
103 | |
---|
104 | <!-- ******* Bridgehead ******* --> |
---|
105 | <bridgehead role="revisionHistory" renderas='sect4'> |
---|
106 | [Status of this chapter] |
---|
107 | </bridgehead> |
---|
108 | |
---|
109 | <para> |
---|
110 | <simplelist type="var"> |
---|
111 | <member> |
---|
112 | 27.06.05 design philosophy (from Geant4 general paper) and class design |
---|
113 | sections added by D.H. Wright |
---|
114 | </member> |
---|
115 | <member> |
---|
116 | Dec. 2006 Conversion from latex to Docbook verson by K. Amako |
---|
117 | </member> |
---|
118 | </simplelist> |
---|
119 | </para> |
---|
120 | |
---|
121 | |
---|
122 | </sect1> |
---|