Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc

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/FukuiRenderer/src/G4DAWNFILESceneHandler.cc (Version 11.3.0) and /visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc (Version 11.0)


  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 //                                                 27 //
 28 // Satoshi TANAKA                                  28 // Satoshi TANAKA
 29 // DAWNFILE scene.                                 29 // DAWNFILE scene.
 30                                                    30 
 31 #define __G_ANSI_C__                               31 #define __G_ANSI_C__
 32                                                    32 
 33 // #define DEBUG_FR_SCENE                          33 // #define DEBUG_FR_SCENE
 34                                                    34 
 35 //----- header files                               35 //----- header files
 36 #include <fstream>                                 36 #include <fstream>
 37 #include <stdlib.h>                                37 #include <stdlib.h>
 38 #include <string.h>                                38 #include <string.h>
 39 #include <sstream>                                 39 #include <sstream>
 40 #include <iomanip>                                 40 #include <iomanip>
 41 #include "globals.hh"                              41 #include "globals.hh"
 42 #include "G4VisManager.hh"                         42 #include "G4VisManager.hh"
 43 #include "G4FRConst.hh"                            43 #include "G4FRConst.hh"
 44 #include "G4DAWNFILE.hh"                           44 #include "G4DAWNFILE.hh"
 45 #include "G4DAWNFILESceneHandler.hh"               45 #include "G4DAWNFILESceneHandler.hh"
 46 #include "G4DAWNFILEViewer.hh"                     46 #include "G4DAWNFILEViewer.hh"
 47 #include "G4Point3D.hh"                            47 #include "G4Point3D.hh"
 48 #include "G4VisAttributes.hh"                      48 #include "G4VisAttributes.hh"
 49 #include "G4Scene.hh"                              49 #include "G4Scene.hh"
 50 #include "G4Transform3D.hh"                        50 #include "G4Transform3D.hh"
 51 #include "G4Polyhedron.hh"                         51 #include "G4Polyhedron.hh"
 52 #include "G4Box.hh"                                52 #include "G4Box.hh"
 53 #include "G4Cons.hh"                               53 #include "G4Cons.hh"
 54 #include "G4Polyline.hh"                           54 #include "G4Polyline.hh"
 55 #include "G4Trd.hh"                                55 #include "G4Trd.hh"
 56 #include "G4Tubs.hh"                               56 #include "G4Tubs.hh"
 57 #include "G4Trap.hh"                               57 #include "G4Trap.hh"
 58 #include "G4Torus.hh"                              58 #include "G4Torus.hh"
 59 #include "G4Sphere.hh"                             59 #include "G4Sphere.hh"
 60 #include "G4Para.hh"                               60 #include "G4Para.hh"
 61 #include "G4Text.hh"                               61 #include "G4Text.hh"
 62 #include "G4Circle.hh"                             62 #include "G4Circle.hh"
 63 #include "G4Square.hh"                             63 #include "G4Square.hh"
 64 #include "G4VPhysicalVolume.hh"                    64 #include "G4VPhysicalVolume.hh"
 65                                                    65 
 66 //----- constants                                  66 //----- constants
 67 const char FR_ENV_CULL_INVISIBLE_OBJECTS[] = "     67 const char FR_ENV_CULL_INVISIBLE_OBJECTS[] = "G4DAWN_CULL_INVISIBLE_OBJECTS";
 68 const char G4PRIM_FILE_HEADER[]            = "     68 const char G4PRIM_FILE_HEADER[]            = "g4_";
 69 const char DEFAULT_G4PRIM_FILE_NAME[]      = "     69 const char DEFAULT_G4PRIM_FILE_NAME[]      = "g4_0000.prim";
 70 const int FR_MAX_FILE_NUM = 100;                   70 const int FR_MAX_FILE_NUM = 100;
 71                                                    71 
 72 ///////////////////////////                        72 ///////////////////////////
 73 // Driver-dependent part //                        73 // Driver-dependent part //
 74 ///////////////////////////                        74 ///////////////////////////
 75                                                    75 
 76 //----- G4DAWNFILESceneHandler, constructor        76 //----- G4DAWNFILESceneHandler, constructor
 77 G4DAWNFILESceneHandler::G4DAWNFILESceneHandler     77 G4DAWNFILESceneHandler::G4DAWNFILESceneHandler(G4DAWNFILE& system,
 78                                                    78                                                const G4String& name)
 79   : G4VSceneHandler(system, fSceneIdCount++, n     79   : G4VSceneHandler(system, fSceneIdCount++, name)
 80   , fSystem(system)                                80   , fSystem(system)
 81   , fPrimDest()                                    81   , fPrimDest()
 82   , FRflag_in_modeling(false)                      82   , FRflag_in_modeling(false)
 83   , flag_saving_g4_prim(false)                     83   , flag_saving_g4_prim(false)
 84   , COMMAND_BUF_SIZE(G4FRofstream::SEND_BUFMAX     84   , COMMAND_BUF_SIZE(G4FRofstream::SEND_BUFMAX)
 85   , fPrec(9)                                       85   , fPrec(9)
 86   , fPrec2(16)                                     86   , fPrec2(16)
 87 {                                                  87 {
 88   // g4.prim filename and its directory            88   // g4.prim filename and its directory
 89   if(std::getenv("G4DAWNFILE_DEST_DIR") == NUL     89   if(std::getenv("G4DAWNFILE_DEST_DIR") == NULL)
 90   {                                                90   {
 91     strcpy(fG4PrimDestDir, "");                    91     strcpy(fG4PrimDestDir, "");                         // output dir
 92     strcpy(fG4PrimFileName, DEFAULT_G4PRIM_FIL     92     strcpy(fG4PrimFileName, DEFAULT_G4PRIM_FILE_NAME);  // filename
 93   }                                                93   }
 94   else                                             94   else
 95   {                                                95   {
 96     strcpy(fG4PrimDestDir, std::getenv("G4DAWN     96     strcpy(fG4PrimDestDir, std::getenv("G4DAWNFILE_DEST_DIR"));  // output dir
 97     strcpy(fG4PrimFileName, DEFAULT_G4PRIM_FIL     97     strcpy(fG4PrimFileName, DEFAULT_G4PRIM_FILE_NAME);           // filename
 98   }                                                98   }
 99                                                    99 
100   // maximum number of g4.prim files in the de    100   // maximum number of g4.prim files in the dest directory
101   fMaxFileNum = FR_MAX_FILE_NUM;  // initializ    101   fMaxFileNum = FR_MAX_FILE_NUM;  // initialization
102   if(std::getenv("G4DAWNFILE_MAX_FILE_NUM") !=    102   if(std::getenv("G4DAWNFILE_MAX_FILE_NUM") != NULL)
103   {                                               103   {
104     sscanf(std::getenv("G4DAWNFILE_MAX_FILE_NU    104     sscanf(std::getenv("G4DAWNFILE_MAX_FILE_NUM"), "%d", &fMaxFileNum);
105   }                                               105   }
106   else                                            106   else
107   {                                               107   {
108     fMaxFileNum = FR_MAX_FILE_NUM;                108     fMaxFileNum = FR_MAX_FILE_NUM;
109   }                                               109   }
110   if(fMaxFileNum < 1)                             110   if(fMaxFileNum < 1)
111   {                                               111   {
112     fMaxFileNum = 1;                              112     fMaxFileNum = 1;
113   }                                               113   }
114                                                   114 
115   //----- precision control                       115   //----- precision control
116   if(std::getenv("G4DAWNFILE_PRECISION") != NU    116   if(std::getenv("G4DAWNFILE_PRECISION") != NULL)
117   {                                               117   {
118     sscanf(std::getenv("G4DAWNFILE_PRECISION")    118     sscanf(std::getenv("G4DAWNFILE_PRECISION"), "%d", &fPrec);
119   }                                               119   }
120   else                                            120   else
121   {                                               121   {
122     fPrec = 9;                                    122     fPrec = 9;
123   }                                               123   }
124   fPrec2 = fPrec + 7;                             124   fPrec2 = fPrec + 7;
125 }                                                 125 }
126                                                   126 
127 //----- G4DAWNFILESceneHandler, destructor        127 //----- G4DAWNFILESceneHandler, destructor
128 G4DAWNFILESceneHandler::~G4DAWNFILESceneHandle    128 G4DAWNFILESceneHandler::~G4DAWNFILESceneHandler()
129 {                                                 129 {
130 #if defined DEBUG_FR_SCENE                        130 #if defined DEBUG_FR_SCENE
131   if(G4VisManager::GetVerbosity() >= G4VisMana    131   if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
132     G4cout << "***** ~G4DAWNFILESceneHandler"     132     G4cout << "***** ~G4DAWNFILESceneHandler" << G4endl;
133 #endif                                            133 #endif
134   if(fPrimDest.IsOpen())                          134   if(fPrimDest.IsOpen())
135   {                                               135   {
136     //----- End of modeling                       136     //----- End of modeling
137     // !EndModeling, !DrawAll, !CloseDevice,      137     // !EndModeling, !DrawAll, !CloseDevice,
138     // close g4.prim                              138     // close g4.prim
139     FREndModeling();                              139     FREndModeling();
140   }                                               140   }
141 }                                                 141 }
142                                                   142 
143 //-----                                           143 //-----
144 void G4DAWNFILESceneHandler::SetG4PrimFileName    144 void G4DAWNFILESceneHandler::SetG4PrimFileName()
145 {                                                 145 {
146   // g4_0000.prim, g4_0001.prim, ..., g4_MAX_F    146   // g4_0000.prim, g4_0001.prim, ..., g4_MAX_FILE_INDEX.prim
147   const int MAX_FILE_INDEX = fMaxFileNum - 1;     147   const int MAX_FILE_INDEX = fMaxFileNum - 1;
148                                                   148 
149   // dest directory (null if no environmental     149   // dest directory (null if no environmental variables is set)
150   strcpy(fG4PrimFileName, fG4PrimDestDir);        150   strcpy(fG4PrimFileName, fG4PrimDestDir);
151                                                   151 
152   // create full path name (default)              152   // create full path name (default)
153   strcat(fG4PrimFileName, DEFAULT_G4PRIM_FILE_    153   strcat(fG4PrimFileName, DEFAULT_G4PRIM_FILE_NAME);
154                                                   154 
155   // Automatic updation of file names             155   // Automatic updation of file names
156   for(int i = 0; i < fMaxFileNum; i++)            156   for(int i = 0; i < fMaxFileNum; i++)
157   {                                               157   {
158     // Message in the final execution             158     // Message in the final execution
159     if(i == MAX_FILE_INDEX)                       159     if(i == MAX_FILE_INDEX)
160     {                                             160     {
161       if(G4VisManager::GetVerbosity() >= G4Vis    161       if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
162       {                                           162       {
163         G4cout << "===========================    163         G4cout << "===========================================" << G4endl;
164         G4cout << "WARNING MESSAGE from DAWNFI    164         G4cout << "WARNING MESSAGE from DAWNFILE driver:      " << G4endl;
165         G4cout << "  This file name is the fin    165         G4cout << "  This file name is the final one in the   " << G4endl;
166         G4cout << "  automatic updation of the    166         G4cout << "  automatic updation of the output file name." << G4endl;
167         G4cout << "  You may overwrite existin    167         G4cout << "  You may overwrite existing files, i.e.   " << G4endl;
168         G4cout << "  g4_XXXX.prim and g4_XXXX.    168         G4cout << "  g4_XXXX.prim and g4_XXXX.eps             " << G4endl;
169         G4cout << "===========================    169         G4cout << "===========================================" << G4endl;
170       }                                           170       }
171     }                                             171     }
172                                                   172 
173     // re-determine file name as G4DAWNFILE_DE    173     // re-determine file name as G4DAWNFILE_DEST_DIR/g4_XXXX.prim
174     std::ostringstream filename;                  174     std::ostringstream filename;
175     filename << fG4PrimDestDir << G4PRIM_FILE_    175     filename << fG4PrimDestDir << G4PRIM_FILE_HEADER << std::setw(4)
176              << std::setfill('0') << i << ".pr    176              << std::setfill('0') << i << ".prim";
177     strncpy(fG4PrimFileName, filename.str().c_    177     strncpy(fG4PrimFileName, filename.str().c_str(),
178             sizeof(fG4PrimFileName) - 1);         178             sizeof(fG4PrimFileName) - 1);
179     fG4PrimFileName[sizeof(fG4PrimFileName) -     179     fG4PrimFileName[sizeof(fG4PrimFileName) - 1] = '\0';
180                                                   180 
181     // check validity of the file name            181     // check validity of the file name
182     std::ifstream fin;                            182     std::ifstream fin;
183     fin.open(fG4PrimFileName);                    183     fin.open(fG4PrimFileName);
184     if(!fin)                                      184     if(!fin)
185     {                                             185     {
186       // new file                                 186       // new file
187       fin.close();                                187       fin.close();
188       break;                                      188       break;
189     }                                             189     }
190     else                                          190     else
191     {                                             191     {
192       // already exists (try next)                192       // already exists (try next)
193       fin.close();                                193       fin.close();
194     }                                             194     }
195                                                   195 
196   }  // for                                       196   }  // for
197                                                   197 
198   G4cout << "=================================    198   G4cout << "===========================================    " << G4endl;
199   G4cout << "Output file: " << fG4PrimFileName    199   G4cout << "Output file: " << fG4PrimFileName << G4endl;
200   G4cout << "Destination directory (current di    200   G4cout << "Destination directory (current dir if NULL): " << fG4PrimDestDir
201          << G4endl;                               201          << G4endl;
202   G4cout << "Maximal number of files in the de    202   G4cout << "Maximal number of files in the destination directory: "
203          << fMaxFileNum << G4endl;                203          << fMaxFileNum << G4endl;
204   G4cout << "Note:                                204   G4cout << "Note:                                                " << G4endl;
205   G4cout << "  * The maximal number is customi    205   G4cout << "  * The maximal number is customizable as:           " << G4endl;
206   G4cout << "       % setenv  G4DAWNFILE_MAX_F    206   G4cout << "       % setenv  G4DAWNFILE_MAX_FILE_NUM  number " << G4endl;
207   G4cout << "  * The destination directory is     207   G4cout << "  * The destination directory is customizable as:" << G4endl;
208   G4cout << "       % setenv  G4DAWNFILE_DEST_    208   G4cout << "       % setenv  G4DAWNFILE_DEST_DIR  dir_name/  " << G4endl;
209   G4cout << "     ** Do not forget \"/\" at th    209   G4cout << "     ** Do not forget \"/\" at the end of the    " << G4endl;
210   G4cout << "        dir_name, e.g. \"./tmp/\"    210   G4cout << "        dir_name, e.g. \"./tmp/\".  " << G4endl;
211   G4cout << "=================================    211   G4cout << "===========================================      " << G4endl;
212                                                   212 
213 }  // G4DAWNFILESceneHandler::SetG4PrimFileNam    213 }  // G4DAWNFILESceneHandler::SetG4PrimFileName()
214                                                   214 
215 //-----                                           215 //-----
216 void G4DAWNFILESceneHandler::BeginSavingG4Prim    216 void G4DAWNFILESceneHandler::BeginSavingG4Prim(void)
217 {                                                 217 {
218 #if defined DEBUG_FR_SCENE                        218 #if defined DEBUG_FR_SCENE
219   if(G4VisManager::GetVerbosity() >= G4VisMana    219   if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
220     G4cout << "***** BeginSavingG4Prim (called    220     G4cout << "***** BeginSavingG4Prim (called)\n";
221 #endif                                            221 #endif
222                                                   222 
223   if(!IsSavingG4Prim())                           223   if(!IsSavingG4Prim())
224   {                                               224   {
225 #if defined DEBUG_FR_SCENE                        225 #if defined DEBUG_FR_SCENE
226     if(G4VisManager::GetVerbosity() >= G4VisMa    226     if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
227     {                                             227     {
228       G4cout << "*****                   (star    228       G4cout << "*****                   (started) ";
229       G4cout << "(open g4.prim, ##)" << G4endl    229       G4cout << "(open g4.prim, ##)" << G4endl;
230     }                                             230     }
231 #endif                                            231 #endif
232     SetG4PrimFileName();  // result set to fG4    232     SetG4PrimFileName();  // result set to fG4PrimFileName
233     fPrimDest.Open(fG4PrimFileName);              233     fPrimDest.Open(fG4PrimFileName);
234                                                   234 
235     SendStr(FR_G4_PRIM_HEADER);                   235     SendStr(FR_G4_PRIM_HEADER);
236     flag_saving_g4_prim = true;                   236     flag_saving_g4_prim = true;
237   }                                               237   }
238 }                                                 238 }
239                                                   239 
240 void G4DAWNFILESceneHandler::EndSavingG4Prim(v    240 void G4DAWNFILESceneHandler::EndSavingG4Prim(void)
241 {                                                 241 {
242 #if defined DEBUG_FR_SCENE                        242 #if defined DEBUG_FR_SCENE
243   if(G4VisManager::GetVerbosity() >= G4VisMana    243   if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
244     G4cout << "***** EndSavingG4Prim (called)\    244     G4cout << "***** EndSavingG4Prim (called)\n";
245 #endif                                            245 #endif
246                                                   246 
247   if(IsSavingG4Prim())                            247   if(IsSavingG4Prim())
248   {                                               248   {
249 #if defined DEBUG_FR_SCENE                        249 #if defined DEBUG_FR_SCENE
250     if(G4VisManager::GetVerbosity() >= G4VisMa    250     if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
251       G4cout << "*****                 (starte    251       G4cout << "*****                 (started) (close g4.prim)" << G4endl;
252 #endif                                            252 #endif
253     fPrimDest.Close();                            253     fPrimDest.Close();
254     flag_saving_g4_prim = false;                  254     flag_saving_g4_prim = false;
255   }                                               255   }
256 }                                                 256 }
257                                                   257 
258 //-----                                           258 //-----
259 void G4DAWNFILESceneHandler::FRBeginModeling(v    259 void G4DAWNFILESceneHandler::FRBeginModeling(void)
260 {                                                 260 {
261   if(!FRIsInModeling())                           261   if(!FRIsInModeling())
262   {                                               262   {
263 #if defined DEBUG_FR_SCENE                        263 #if defined DEBUG_FR_SCENE
264     if(G4VisManager::GetVerbosity() >= G4VisMa    264     if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
265       G4cout                                      265       G4cout
266         << "***** G4DAWNFILESceneHandler::FRBe    266         << "***** G4DAWNFILESceneHandler::FRBeginModeling (called & started)"
267         << G4endl;                                267         << G4endl;
268 #endif                                            268 #endif
269                                                   269 
270     //----- Send saving command and heading co    270     //----- Send saving command and heading comment
271     BeginSavingG4Prim();                          271     BeginSavingG4Prim();
272                                                   272 
273     //----- Send bounding box command             273     //----- Send bounding box command
274     SendBoundingBox();                            274     SendBoundingBox();
275                                                   275 
276     //----- send SET_CAMERA command               276     //----- send SET_CAMERA command
277 #if defined DEBUG_FR_SCENE                        277 #if defined DEBUG_FR_SCENE
278     if(G4VisManager::GetVerbosity() >= G4VisMa    278     if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
279       G4cout << "*****   (!SetCamera in FRBegi    279       G4cout << "*****   (!SetCamera in FRBeginModeling())" << G4endl;
280 #endif                                            280 #endif
281     SendStr(FR_SET_CAMERA);                       281     SendStr(FR_SET_CAMERA);
282                                                   282 
283     //----- open device                           283     //----- open device
284 #if defined DEBUG_FR_SCENE                        284 #if defined DEBUG_FR_SCENE
285     if(G4VisManager::GetVerbosity() >= G4VisMa    285     if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
286       G4cout << "*****   (!OpenDevice in FRBeg    286       G4cout << "*****   (!OpenDevice in FRBeginModeling())" << G4endl;
287 #endif                                            287 #endif
288     SendStr(FR_OPEN_DEVICE);                      288     SendStr(FR_OPEN_DEVICE);
289                                                   289 
290     //----- begin sending primitives              290     //----- begin sending primitives
291 #if defined DEBUG_FR_SCENE                        291 #if defined DEBUG_FR_SCENE
292     if(G4VisManager::GetVerbosity() >= G4VisMa    292     if(G4VisManager::GetVerbosity() >= G4VisManager::errors)
293       G4cout << "*****   (!BeginModeling in FR    293       G4cout << "*****   (!BeginModeling in FRBeginModeling())" << G4endl;
294 #endif                                            294 #endif
295     SendStr(FR_BEGIN_MODELING);                   295     SendStr(FR_BEGIN_MODELING);
296     FRflag_in_modeling = true;                    296     FRflag_in_modeling = true;
297                                                   297 
298   }  // if                                        298   }  // if
299 }                                                 299 }
300                                                   300 
301 /////////////////////////////////////////         301 /////////////////////////////////////////
302 // Common to DAWN and DAWNFILE drivers //         302 // Common to DAWN and DAWNFILE drivers //
303 /////////////////////////////////////////         303 /////////////////////////////////////////
304                                                   304 
305 #define G4FRSCENEHANDLER G4DAWNFILESceneHandle    305 #define G4FRSCENEHANDLER G4DAWNFILESceneHandler
306 #include "G4FRSceneFunc.icc"                      306 #include "G4FRSceneFunc.icc"
307 #undef G4FRSCENEHANDLER                           307 #undef G4FRSCENEHANDLER
308                                                   308 
309 //////////////////////                            309 //////////////////////
310 // static variables //                            310 // static variables //
311 //////////////////////                            311 //////////////////////
312                                                   312 
313 //----- static variables                          313 //----- static variables
314 G4int G4DAWNFILESceneHandler::fSceneIdCount =     314 G4int G4DAWNFILESceneHandler::fSceneIdCount = 0;
315                                                   315