Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/management/include/G4VisExecutive.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /visualization/management/include/G4VisExecutive.hh (Version 11.3.0) and /visualization/management/include/G4VisExecutive.hh (Version 9.1.p2)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
                                                   >>  27 // $Id: G4VisExecutive.hh,v 1.6 2006/06/29 21:28:50 gunter Exp $
                                                   >>  28 // GEANT4 tag $Name: geant4-09-01-patch-02 $
 27 //                                                 29 //
 28 //                                                 30 // 
 29 // John Allison 2nd February 2005 (based on My     31 // John Allison 2nd February 2005 (based on MyVisManager, 24th January 1998).
 30 //                                                 32 //
 31 // Class description                               33 // Class description
 32 //                                                 34 //
 33 // Concrete Visualization Manager that impleme     35 // Concrete Visualization Manager that implements the virtual
 34 // functions RegisterGraphicsSystems and Regis     36 // functions RegisterGraphicsSystems and RegisterModelFactories.  This
 35 // is executed when you Initialise() or Initia     37 // is executed when you Initialise() or Initialize() the vis manager.
 36 // It exploits C-pre-processor variables G4VIS     38 // It exploits C-pre-processor variables G4VIS_USE_DAWN, etc., which
 37 // are set by the GNUmakefiles if environment      39 // are set by the GNUmakefiles if environment variables of the same
 38 // name are set.                                   40 // name are set.
 39 //                                                 41 //
 40 // Include this file and write code to instant     42 // Include this file and write code to instantiate G4VisExecutive just
 41 // once at beginning of operations.  Before yo <<  43 // once as beginning of operations.  Before you compile, set
 42 // appropriate environment variables (usually  <<  44 // appropriate environment variables.  If you change your environment
 43 // If you change your environment you must for <<  45 // you must force recompilation (the make files will not detect the
 44 // make files will not detect the need to do t <<  46 // need to do this).  Typically, your main program file will contain:
 45 //                                             << 
 46 // Typically, your main program file will cont << 
 47 //                                                 47 //
 48 // #ifdef G4VIS_USE                                48 // #ifdef G4VIS_USE
 49 // #include "G4VisExecutive.hh"                    49 // #include "G4VisExecutive.hh"
 50 // #endif                                          50 // #endif
 51 // ...                                             51 // ...
 52 // int main() {                                    52 // int main() {
 53 //   ...                                           53 //   ...
 54 // #ifdef G4VIS_USE                                54 // #ifdef G4VIS_USE
 55 //   // Instantiate and initialise Visualizati     55 //   // Instantiate and initialise Visualization Manager.
 56 //   G4VisManager* visManager = new G4VisExecu <<  56 //   G4VisManager* visManager = new G4VisExecutive;
 57 //   visManager -> SetVerboseLevel (verbosityS <<  57 //   //  visManager -> SetVerboseLevel (verbosityString);
 58 //   visManager -> RegisterGraphicsSystem (new <<  58 //   //  visManager -> RegisterGraphicsSystem (new G4XXX);
 59 //   visManager -> Initialize ();              <<  59 //   visManager -> Initialize ();
 60 // #endif                                          60 // #endif
 61 //   ...                                           61 //   ...
 62 // #ifdef G4VIS_USE                                62 // #ifdef G4VIS_USE
 63 //   G4cout << "Deleting vis manager..." << G4     63 //   G4cout << "Deleting vis manager..." << G4endl;
 64 //   delete visManager;                            64 //   delete visManager;
 65 //   G4cout << "Vis manager deleted." << G4end     65 //   G4cout << "Vis manager deleted." << G4endl;
 66 // #endif                                          66 // #endif
 67 //                                                 67 //
 68 // Notes:                                      << 
 69 // (a) After instantiation, all references to  << 
 70 //     a G4VisManager.  The functions Register << 
 71 //     RegisterModelFactories defined in G4Vis << 
 72 //     virtual functions of G4VisManager.  The << 
 73 //     G4VisManager::Initialise.  If you need  << 
 74 //     separate file, see advice below.        << 
 75 // (b) The verbosityString ("quiet", "errors", << 
 76 //     "confirmations", etc. - "help /vis/verb << 
 77 //     set here or with /vis/verbose.  Alterna << 
 78 //     with a verbosity string. e.g:           << 
 79 //       G4VisManager* visManager = new G4VisE << 
 80 // (c) You can register your own graphics syst << 
 81 // (d) Your can intialise like this with C++ c << 
 82 //                                             << 
 83 // If you need to perform the instantiation an << 
 84 // separate files, e.g., to establish the verb << 
 85 // initialisation, then the code that initiali << 
 86 // course, to the G4VisExecutive object, but t << 
 87 // G4VisManager object, i.e., #include "G4VisM << 
 88 // RegisterGraphicsSystems and RegisterModelFa << 
 89 // virtual methods of G4VisManager called from << 
 90 // First file:                                 << 
 91 // #include "G4VisExecutive.hh"                << 
 92 // ...                                         << 
 93 //   fpVisManager = new G4VisExecutive;        << 
 94 // where fpVisManager is a G4VisManager*.      << 
 95 // Second file:                                << 
 96 // #include "G4VisManager.hh"                  << 
 97 // ...                                         << 
 98 //   fpVisManager -> Initialize ();            << 
 99 // where there is some mechanism for getting a << 
100 // fpVisManager.                               << 
101 //                                             << 
102 // The implementation is included as an .icc f     68 // The implementation is included as an .icc file because - for those
103 // graphics systems that need external librari <<  69 //   graphics systems that need external libraries - only those
104 // that have been selected by the flags may be <<  70 //   systems that have been selected by the flags may be instantiated
105 // causing unresolved references (only the use <<  71 //   without causing unresolved references (only the user knows which
106 // are available on his/her computer).  It als <<  72 //   libraries are available on his/her computer).  It also ensures
107 // can be linked in the right order, without c <<  73 //   that libraries can be linked in the right order, without circular
108 // (Note that some graphics systems, notable t <<  74 //   dependencies.  (Note that some graphics systems, notable those
109 // for off-line viewing, do not suffer these r <<  75 //   that write files for off-line viewing, do not suffer these
110 // always registered.)                         <<  76 //   restrictions and are always registered.)  Additional graphics
                                                   >>  77 //   systems, XXX say, can be individually registered before
                                                   >>  78 //   invocation of Initialise() with RegisterGraphicsSystem(new XXX).
                                                   >>  79 //
                                                   >>  80 // Alternatively, you can implement an empty function here and just
                                                   >>  81 //   register the systems you want in your main(), e.g.:
                                                   >>  82 //   G4VisManager* visManager = new G4VisExecutive;
                                                   >>  83 //   visManager -> RegisterGraphicsSystem (new MyGraphicsSystem);
111 //                                                 84 //
112 // See class description of G4VisManager for m     85 // See class description of G4VisManager for more details.
113                                                    86 
114 #ifndef G4VISEXECUTIVE_HH                          87 #ifndef G4VISEXECUTIVE_HH
115 #define G4VISEXECUTIVE_HH                          88 #define G4VISEXECUTIVE_HH
116                                                    89 
117 #include "G4VisManager.hh"                         90 #include "G4VisManager.hh"
118                                                    91 
119 class G4VisExecutive: public G4VisManager {        92 class G4VisExecutive: public G4VisManager {
120                                                    93 
121 public: // With description                        94 public: // With description
122                                                    95 
123   G4VisExecutive(const G4String& verbosityStri <<  96   G4VisExecutive ();
124   G4VisExecutive(int argc, char** argv, const  << 
125                  const G4String& verbosityStri << 
126                                                    97 
127 private:                                           98 private:
128                                                    99 
129   const G4String& GetDefaultGraphicsSystemName << 100   void RegisterGraphicsSystems();
130   void SetDefaultsByArgument(const G4String& s << 101   void RegisterModelFactories();
131   void SetDefaultsByEnvironment();             << 
132   void SetDefaultsByFile(int argc, char** argv << 
133   void SetDefaultsByBatch();                   << 
134   void SetDefaultsByBuildFlags();              << 
135   int      fUserArgc;                          << 
136   char**   fUserArgv;                          << 
137   G4String fUserSpecifiedSystem;               << 
138   G4bool   fSelected;                          << 
139                                                << 
140   void RegisterGraphicsSystems() override;     << 
141   void RegisterModelFactories() override;      << 
142                                                   102 
143 };                                                103 };
144                                                   104 
145 #include "G4VisExecutive.icc"                     105 #include "G4VisExecutive.icc"
146                                                   106 
147 #endif                                            107 #endif
148                                                   108