Changeset 1228 for trunk/source/visualization/HepRep
- Timestamp:
- Jan 8, 2010, 11:56:51 AM (14 years ago)
- Location:
- trunk/source/visualization/HepRep
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/visualization/HepRep/History
r1140 r1228 1 .$Id: History,v 1.13 1 2009/10/21 15:13:36 allisonExp $1 .$Id: History,v 1.132 2009/11/23 05:42:28 perl Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 20 20 History file for visualization/HepRep sub-category 21 21 -------------------------------------------------- 22 23 22nd November 2009 Joseph Perl (vis-HepRep-V09-02-03) 24 - Changed messenger to a singleton. 25 - Added messenger commands to HepRepFile. 26 - Render G4Tubs as polygons if G4Tubs is not at a standard angle. 22 27 23 28 21st October 2009 John Allison (vis-HepRep-V09-02-02 coworks greps-V09-02-02) -
trunk/source/visualization/HepRep/include/G4HepRep.hh
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRep.hh,v 1.1 7 2006/06/29 21:17:04 gunterExp $26 // $Id: G4HepRep.hh,v 1.18 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 36 36 //G4 37 37 #include "G4VGraphicsSystem.hh" 38 39 class G4HepRepMessenger;40 38 41 39 class G4HepRep: public G4VGraphicsSystem { … … 52 50 G4VSceneHandler* sceneHandler; 53 51 G4VViewer* viewer; 54 G4HepRepMessenger* messenger;55 52 }; 56 53 -
trunk/source/visualization/HepRep/include/G4HepRepMessenger.hh
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepMessenger.hh,v 1. 7 2006/06/29 21:17:14 gunterExp $26 // $Id: G4HepRepMessenger.hh,v 1.8 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 40 40 41 41 public: 42 G4HepRepMessenger(); 42 static G4HepRepMessenger* GetInstance(); // Singleton constructor. 43 43 virtual ~G4HepRepMessenger(); 44 44 … … 46 46 virtual void SetNewValue(G4UIcommand * command, G4String newValue); 47 47 48 // Used by HepRepFile 49 virtual G4String getFileDir(); 50 virtual G4String getFileName(); 51 virtual G4bool getOverwrite(); 52 virtual G4bool getCullInvisibles(); 53 54 // Used by HepRepXML 48 55 virtual G4String getEventNumberSuffix(); 49 56 virtual G4bool appendGeometry(); … … 53 60 54 61 private: 62 G4HepRepMessenger(); // Private constructor. 63 static G4HepRepMessenger* fpInstance; 64 55 65 G4UIdirectory* heprepDirectory; 66 67 G4String fileDir; 68 G4UIcmdWithAString* setFileDirCommand; 69 70 G4String fileName; 71 G4UIcmdWithAString* setFileNameCommand; 72 73 G4bool overwrite; 74 G4UIcmdWithABool* setOverwriteCommand; 75 76 G4bool cullInvisibles; 77 G4UIcmdWithABool* setCullInvisiblesCommand; 56 78 57 79 G4String suffix; … … 66 88 G4bool solids; 67 89 G4UIcmdWithABool* useSolidsCommand; 68 90 69 91 G4bool invisibles; 70 92 G4UIcmdWithABool* writeInvisiblesCommand; -
trunk/source/visualization/HepRep/include/G4HepRepSceneHandler.hh
r1140 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepSceneHandler.hh,v 1.4 3 2009/10/21 15:08:35 allisonExp $26 // $Id: G4HepRepSceneHandler.hh,v 1.44 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 63 63 #include "G4PhysicalVolumeModel.hh" 64 64 65 #include "G4HepRepMessenger.hh"66 67 65 class G4HepRepSceneHandler: public G4VSceneHandler { 68 66 69 67 public: 70 G4HepRepSceneHandler (G4VGraphicsSystem& system, G4HepRepMessenger& messenger,const G4String& name = "");68 G4HepRepSceneHandler (G4VGraphicsSystem& system, const G4String& name = ""); 71 69 virtual ~G4HepRepSceneHandler (); 72 70 … … 187 185 188 186 // initialized Member Variables 189 G4HepRepMessenger& messenger;190 187 G4String geometryLayer, eventLayer, calHitLayer; 191 188 G4String trajectoryLayer, hitLayer; -
trunk/source/visualization/HepRep/include/G4HepRepViewer.hh
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepViewer.hh,v 1.1 8 2006/06/29 21:17:18 gunterExp $26 // $Id: G4HepRepViewer.hh,v 1.19 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 41 41 #include "G4VViewer.hh" 42 42 43 #include "G4HepRepMessenger.hh"44 45 43 class G4HepRepViewer: public G4VViewer { 46 44 public: 47 G4HepRepViewer (G4VSceneHandler& scene, G4HepRepMessenger& messenger,const G4String& name = "");45 G4HepRepViewer (G4VSceneHandler& scene, const G4String& name = ""); 48 46 virtual ~G4HepRepViewer (); 49 47 void SetView (); … … 57 55 private: 58 56 bool geometryIncluded; 59 G4HepRepMessenger& messenger;60 57 }; 61 58 -
trunk/source/visualization/HepRep/src/G4HepRep.cc
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRep.cc,v 1.2 2 2006/06/29 21:17:20 gunterExp $26 // $Id: G4HepRep.cc,v 1.23 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 54 54 sceneHandler(NULL), 55 55 viewer(NULL) { 56 messenger = new G4HepRepMessenger();56 G4HepRepMessenger::GetInstance(); 57 57 } 58 58 59 59 G4HepRep::~G4HepRep () { 60 delete messenger;61 60 } 62 61 … … 66 65 return NULL; 67 66 } 68 sceneHandler = new G4HepRepSceneHandler (*this, *messenger,name);67 sceneHandler = new G4HepRepSceneHandler (*this, name); 69 68 return sceneHandler; 70 69 } … … 75 74 return NULL; 76 75 } 77 viewer = new G4HepRepViewer ((G4HepRepSceneHandler&)scene, *messenger,name);76 viewer = new G4HepRepViewer ((G4HepRepSceneHandler&)scene, name); 78 77 return viewer; 79 78 } -
trunk/source/visualization/HepRep/src/G4HepRepFile.cc
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepFile.cc,v 1.1 1 2007/05/22 17:05:26 allisonExp $26 // $Id: G4HepRepFile.cc,v 1.12 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 38 38 #include "G4HepRepFileSceneHandler.hh" 39 39 #include "G4HepRepFileViewer.hh" 40 #include "G4HepRepMessenger.hh" 40 41 41 42 static G4HepRepFileXMLWriter* hepRepXMLWriter; … … 46 47 "A HepRep (format 1) ascii file driver", 47 48 G4VGraphicsSystem::threeD) { 49 G4HepRepMessenger::GetInstance(); 48 50 hepRepXMLWriter = new G4HepRepFileXMLWriter(); 49 51 } -
trunk/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepFileSceneHandler.cc,v 1.6 6 2008/01/04 22:11:31 allisonExp $26 // $Id: G4HepRepFileSceneHandler.cc,v 1.68 2009/12/16 17:51:21 gunter Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 34 34 #include "G4HepRepFileSceneHandler.hh" 35 35 #include "G4HepRepFile.hh" 36 #include "G4HepRepMessenger.hh" 37 #include "G4UIcommand.hh" 36 38 37 39 #include "G4Version.hh" … … 71 73 hepRepXMLWriter = ((G4HepRepFile*)(&system))->GetHepRepXMLWriter(); 72 74 fileCounter = 0; 73 int length;74 75 if (getenv("G4HEPREPFILE_DIR") == NULL)76 strcpy(fileDir, "");77 else78 length = sprintf (fileDir, "%s%s", getenv("G4HEPREPFILE_DIR"),"/");79 80 if (getenv("G4HEPREPFILE_NAME") == NULL)81 strcpy(fileName, "G4Data");82 else83 strcpy(fileName, getenv("G4HEPREPFILE_NAME"));84 85 if (getenv("G4HEPREPFILE_OVERWRITE") == NULL)86 fileOverwrite = false;87 else88 fileOverwrite = strcmp(getenv("G4HEPREPFILE_OVERWRITE"),"0");89 90 if (getenv("G4HEPREPFILE_CULL") == NULL)91 cullInvisibleObjects = false;92 else93 cullInvisibleObjects = strcmp(getenv("G4HEPREPFILE_CULL"),"0");94 75 95 76 inPrimitives2D = false; … … 180 161 AddHepRepInstance("Prism", NULL); 181 162 182 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 163 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 164 165 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 183 166 return; 184 167 … … 243 226 AddHepRepInstance("Cylinder", NULL); 244 227 245 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 228 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 229 230 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 246 231 return; 247 232 … … 278 263 #endif 279 264 265 // HepRApp does not correctly represent the end faces of cylinders at 266 // non-standard angles, let the base class convert these solids to polygons. 267 CLHEP::HepRotation r = fpObjectTransformation->getRotation(); 268 G4bool linedUpWithAnAxis = (std::fabs(r.phiX())<=.001 || 269 std::fabs(r.phiY())<=.001 || 270 std::fabs(r.phiZ())<=.001 || 271 std::fabs(r.phiX()-pi)<=.001 || 272 std::fabs(r.phiY()-pi)<=.001 || 273 std::fabs(r.phiZ()-pi)<=.001); 274 //G4cout << "Angle X:" << r.phiX() << ", Angle Y:" << r.phiY() << ", Angle Z:" << r.phiZ() << G4endl; 275 //G4cout << "linedUpWithAnAxis:" << linedUpWithAnAxis << G4endl; 276 280 277 // HepRep does not have a primitive for a cut cylinder, 281 278 // so if this cylinder is cut, let the base class convert this 282 279 // solid to polygons. 283 if (tubs.GetDeltaPhiAngle() < twopi) { 280 if (tubs.GetDeltaPhiAngle() < twopi || !linedUpWithAnAxis) 281 { 284 282 G4VSceneHandler::AddSolid(tubs); // Invoke default action. 285 283 } else { … … 294 292 AddHepRepInstance("Cylinder", NULL); 295 293 296 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 294 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 295 296 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 297 297 return; 298 298 … … 340 340 AddHepRepInstance("Prism", NULL); 341 341 342 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 342 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 343 344 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 343 345 return; 344 346 … … 1004 1006 #endif 1005 1007 1006 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 1008 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1009 1010 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 1007 1011 return; 1008 1012 … … 1042 1046 #endif 1043 1047 1044 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 1048 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1049 1050 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 1045 1051 return; 1046 1052 … … 1144 1150 #endif 1145 1151 1146 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 1152 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1153 1154 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 1147 1155 return; 1148 1156 … … 1188 1196 #endif 1189 1197 1190 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 1198 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1199 1200 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 1191 1201 return; 1192 1202 … … 1231 1241 #endif 1232 1242 1233 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 1243 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1244 1245 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 1234 1246 return; 1235 1247 … … 1430 1442 hepRepXMLWriter->addInstance(); 1431 1443 1432 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) 1444 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1445 1446 if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && messenger->getCullInvisibles()) 1433 1447 return; 1434 1448 … … 1512 1526 1513 1527 if (!hepRepXMLWriter->isOpen) { 1514 char* newFileSpec; 1515 newFileSpec = new char [256]; 1516 int length; 1517 1518 if (fileOverwrite) 1519 length = sprintf (newFileSpec, "%s%s%s",fileDir,fileName,".heprep"); 1520 else 1521 length = sprintf (newFileSpec, "%s%s%d%s",fileDir,fileName,fileCounter,".heprep"); 1528 G4String newFileSpec; 1529 1530 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1531 1532 if (messenger->getOverwrite()) { 1533 newFileSpec = messenger->getFileDir()+messenger->getFileName()+".heprep"; 1534 } else { 1535 newFileSpec = messenger->getFileDir()+messenger->getFileName()+G4UIcommand::ConvertToString(fileCounter)+".heprep"; 1536 } 1537 1522 1538 G4cout << "HepRepFile writing to " << newFileSpec << G4endl; 1523 1539 1524 1540 hepRepXMLWriter->open(newFileSpec); 1525 fileCounter++; 1541 1542 if (!messenger->getOverwrite()) 1543 fileCounter++; 1526 1544 1527 1545 hepRepXMLWriter->addAttDef("Generator", "HepRep Data Generator", "Physics",""); -
trunk/source/visualization/HepRep/src/G4HepRepMessenger.cc
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepMessenger.cc,v 1.1 0 2006/06/29 21:17:30 gunterExp $26 // $Id: G4HepRepMessenger.cc,v 1.11 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // 29 29 #include "G4HepRepMessenger.hh" 30 30 31 G4HepRepMessenger* 32 G4HepRepMessenger::fpInstance = 0; 33 34 G4HepRepMessenger* 35 G4HepRepMessenger::GetInstance() 36 { 37 if (!fpInstance) fpInstance = new G4HepRepMessenger; 38 return fpInstance; 39 } 40 31 41 G4HepRepMessenger::G4HepRepMessenger() : 42 fileDir(""), 43 fileName("G4Data"), 44 overwrite(false), 45 cullInvisibles(false), 32 46 suffix (""), 33 47 geometry(true), … … 37 51 heprepDirectory = new G4UIdirectory("/vis/heprep/"); 38 52 heprepDirectory->SetGuidance("HepRep commands."); 39 53 54 setFileDirCommand = new G4UIcmdWithAString("/vis/heprep/setFileDir", this); 55 setFileDirCommand->SetGuidance("Set directory for output."); 56 setFileDirCommand->SetGuidance("This command is used by HepRepFile, not by HepRepXML."); 57 setFileDirCommand->SetParameterName("directory",false); 58 if ( getenv( "G4HEPREPFILE_DIR" ) == NULL ) { 59 setFileDirCommand->SetDefaultValue(""); 60 } else { 61 setFileDirCommand->SetDefaultValue(getenv("G4HEPREPFILE_DIR")); 62 fileDir = getenv("G4HEPREPFILE_DIR"); 63 } 64 setFileDirCommand->AvailableForStates(G4State_Idle); 65 66 setFileNameCommand = new G4UIcmdWithAString("/vis/heprep/setFileName", this); 67 setFileNameCommand->SetGuidance("Set file name for output."); 68 setFileNameCommand->SetGuidance("This command is used by HepRepFile, not by HepRepXML."); 69 setFileNameCommand->SetParameterName("directory",false); 70 if ( getenv( "G4HEPREPFILE_NAME" ) == NULL ) { 71 setFileNameCommand->SetDefaultValue("G4Data"); 72 } else { 73 setFileNameCommand->SetDefaultValue(getenv("G4HEPREPFILE_NAME")); 74 fileName = getenv("G4HEPREPFILE_NAME"); 75 } 76 setFileNameCommand->AvailableForStates(G4State_Idle); 77 78 setOverwriteCommand = new G4UIcmdWithABool("/vis/heprep/setOverwrite", this); 79 setOverwriteCommand->SetGuidance("Set true to write all output to exact same file name."); 80 setOverwriteCommand->SetGuidance("Set false to increment the file name for each new output."); 81 setOverwriteCommand->SetGuidance("This command is used by HepRepFile, not by HepRepXML."); 82 setOverwriteCommand->SetParameterName("flag",false); 83 if ( getenv( "G4HEPREPFILE_OVERWRITE" ) == NULL ) { 84 setOverwriteCommand->SetDefaultValue(false); 85 } else { 86 setOverwriteCommand->SetDefaultValue(getenv("G4HEPREPFILE_OVERWRITE")); 87 overwrite = setOverwriteCommand->ConvertToBool(getenv("G4HEPREPFILE_OVERWRITE")); 88 } 89 setOverwriteCommand->AvailableForStates(G4State_Idle); 90 91 setCullInvisiblesCommand = new G4UIcmdWithABool("/vis/heprep/setCullInvisibles", this); 92 setCullInvisiblesCommand->SetGuidance("Remove invisible objects from output file."); 93 setCullInvisiblesCommand->SetGuidance("This command is used by HepRepFile, not by HepRepXML."); 94 setCullInvisiblesCommand->SetParameterName("flag",false); 95 if ( getenv( "G4HEPREPFILE_CULL" ) == NULL ) { 96 setCullInvisiblesCommand->SetDefaultValue(false); 97 } else { 98 setCullInvisiblesCommand->SetDefaultValue(getenv("G4HEPREPFILE_CULL")); 99 cullInvisibles = setCullInvisiblesCommand->ConvertToBool(getenv("G4HEPREPFILE_CULL")); 100 } 101 setCullInvisiblesCommand->AvailableForStates(G4State_Idle); 102 40 103 setEventNumberSuffixCommand = new G4UIcmdWithAString("/vis/heprep/setEventNumberSuffix", this); 41 104 setEventNumberSuffixCommand->SetGuidance("Write separate event files, appended with given suffix."); 42 105 setEventNumberSuffixCommand->SetGuidance("Define the suffix with a pattern such as '-0000'."); 106 setEventNumberSuffixCommand->SetGuidance("This command is used by HepRepXML, not by HepRepFile."); 43 107 setEventNumberSuffixCommand->SetParameterName("suffix",false); 44 108 setEventNumberSuffixCommand->SetDefaultValue(""); … … 47 111 appendGeometryCommand = new G4UIcmdWithABool("/vis/heprep/appendGeometry", this); 48 112 appendGeometryCommand->SetGuidance("Appends copy of geometry to every event."); 113 appendGeometryCommand->SetGuidance("This command is used by HepRepXML, not by HepRepFile."); 49 114 appendGeometryCommand->SetParameterName("flag",false); 50 115 appendGeometryCommand->SetDefaultValue(true); … … 53 118 addPointAttributesCommand = new G4UIcmdWithABool("/vis/heprep/addPointAttributes", this); 54 119 addPointAttributesCommand->SetGuidance("Adds point attributes to the points of trajectories."); 120 addPointAttributesCommand->SetGuidance("This command is used by HepRepXML, not by HepRepFile."); 55 121 addPointAttributesCommand->SetParameterName("flag",false); 56 122 addPointAttributesCommand->SetDefaultValue(false); … … 59 125 useSolidsCommand = new G4UIcmdWithABool("/vis/heprep/useSolids", this); 60 126 useSolidsCommand->SetGuidance("Use HepRep Solids, rather than Geant4 Primitives."); 127 useSolidsCommand->SetGuidance("This command is used by HepRepXML, not by HepRepFile."); 61 128 useSolidsCommand->SetParameterName("flag",false); 62 129 useSolidsCommand->SetDefaultValue(true); 63 130 useSolidsCommand->AvailableForStates(G4State_Idle); 64 65 /* Not Enabled Yet66 writeInvisiblesCommand = new G4UIcmdWithABool("/vis/heprep/writeInvisibles", this);67 writeInvisiblesCommand->SetGuidance("Write invisible objects.");68 writeInvisiblesCommand->SetParameterName("flag",false);69 writeInvisiblesCommand->SetDefaultValue(true);70 writeInvisiblesCommand->AvailableForStates(G4State_Idle);71 */72 131 } 73 132 74 133 G4HepRepMessenger::~G4HepRepMessenger() { 134 delete setFileDirCommand; 135 delete setFileNameCommand; 136 delete setOverwriteCommand; 137 delete setCullInvisiblesCommand; 75 138 delete setEventNumberSuffixCommand; 76 139 delete appendGeometryCommand; 77 140 delete addPointAttributesCommand; 78 141 delete useSolidsCommand; 79 // delete writeInvisiblesCommand;80 142 delete heprepDirectory; 81 143 } 82 144 83 145 G4String G4HepRepMessenger::GetCurrentValue(G4UIcommand * command) { 84 if (command==setEventNumberSuffixCommand) { 85 return suffix; 146 if (command==setFileDirCommand) { 147 return fileDir; 148 } else if (command==setFileNameCommand) { 149 return fileName; 150 } else if (command==setOverwriteCommand) { 151 return overwrite; 152 } else if (command==setCullInvisiblesCommand) { 153 return cullInvisibles; 154 } else if (command==setEventNumberSuffixCommand) { 155 return suffix; 86 156 } else if (command==appendGeometryCommand) { 87 157 return appendGeometryCommand->ConvertToString(geometry); … … 90 160 } else if (command==useSolidsCommand) { 91 161 return useSolidsCommand->ConvertToString(solids); 92 // } else if (command==writeInvisiblesCommand) {93 // return writeInvisiblesCommand->ConvertToString(invisibles);94 162 } else { 95 163 return ""; … … 98 166 99 167 void G4HepRepMessenger::SetNewValue(G4UIcommand * command, G4String newValue) { 100 if (command==setEventNumberSuffixCommand) { 168 if (command==setFileDirCommand) { 169 fileDir = newValue; 170 } else if (command==setFileNameCommand) { 171 fileName = newValue; 172 } else if (command==setOverwriteCommand) { 173 overwrite = setOverwriteCommand->GetNewBoolValue(newValue); 174 } else if (command==setCullInvisiblesCommand) { 175 cullInvisibles = setCullInvisiblesCommand->GetNewBoolValue(newValue); 176 } else if (command==setEventNumberSuffixCommand) { 101 177 suffix = newValue; 102 178 } else if (command==appendGeometryCommand) { … … 106 182 } else if (command==useSolidsCommand) { 107 183 solids = useSolidsCommand->GetNewBoolValue(newValue); 108 // } else if (command==writeInvisiblesCommand) {109 // invisibles = writeInvisiblesCommand->GetNewBoolValue(newValue);110 184 } 185 } 186 187 G4String G4HepRepMessenger::getFileDir() { 188 return fileDir; 189 } 190 191 G4String G4HepRepMessenger::getFileName() { 192 return fileName; 193 } 194 195 G4bool G4HepRepMessenger::getOverwrite() { 196 return overwrite; 197 } 198 199 G4bool G4HepRepMessenger::getCullInvisibles() { 200 return cullInvisibles; 111 201 } 112 202 -
trunk/source/visualization/HepRep/src/G4HepRepSceneHandler.cc
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepSceneHandler.cc,v 1.10 1 2007/11/16 20:29:04perl Exp $26 // $Id: G4HepRepSceneHandler.cc,v 1.102 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 45 45 //HepRep 46 46 #include "HEPREP/HepRep.h" 47 #include "G4HepRepMessenger.hh" 47 48 48 49 //G4 … … 90 91 //#define PDEBUG 1 91 92 92 G4HepRepSceneHandler::G4HepRepSceneHandler (G4VGraphicsSystem& system, G4HepRepMessenger& heprepMessenger,const G4String& name)93 G4HepRepSceneHandler::G4HepRepSceneHandler (G4VGraphicsSystem& system, const G4String& name) 93 94 : G4VSceneHandler (system, sceneIdCount++, name), 94 messenger (heprepMessenger),95 95 geometryLayer ("Geometry"), 96 96 eventLayer ("Event"), … … 247 247 writeMultipleFiles = false; 248 248 int startDigit = -1; int endDigit = -1; 249 string suffix = messenger.getEventNumberSuffix(); 249 250 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 251 252 string suffix = messenger->getEventNumberSuffix(); 250 253 if (suffix != "") { 251 254 // look for 0000 pattern in suffix … … 331 334 } 332 335 } else { 336 337 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 333 338 334 339 // add geometry to the heprep if there is an event (separate geometries are written … … 338 343 339 344 // couple geometry 340 if (messenger.appendGeometry()) { 345 346 if ( messenger->appendGeometry()) { 341 347 // couple geometry to event if geometry was written 342 348 if ((_geometryInstanceTree != NULL)) { … … 374 380 375 381 // write out separate geometry 376 if (! messenger.appendGeometry() && (_heprepGeometry != NULL)) {382 if (! messenger->appendGeometry() && (_heprepGeometry != NULL)) { 377 383 if (writeMultipleFiles) { 378 384 char fileName[128]; … … 493 499 494 500 if (dontWrite()) return; 495 496 if (!messenger.useSolids()) { 501 502 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 503 504 if (! messenger->useSolids()) { 497 505 G4VSceneHandler::AddSolid(box); 498 506 return; … … 547 555 548 556 if (dontWrite()) return; 549 550 if (!messenger.useSolids() || (cons.GetDeltaPhiAngle() < twopi)) { 557 558 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 559 560 if (! messenger->useSolids() || (cons.GetDeltaPhiAngle() < twopi)) { 551 561 G4VSceneHandler::AddSolid(cons); 552 562 return; … … 609 619 610 620 if (dontWrite()) return; 611 612 if (!messenger.useSolids() || (tubs.GetDeltaPhiAngle() < twopi)) { 621 622 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 623 624 if (! messenger->useSolids() || (tubs.GetDeltaPhiAngle() < twopi)) { 613 625 G4VSceneHandler::AddSolid(tubs); 614 626 return; … … 666 678 #endif 667 679 if (dontWrite()) return; 668 669 if (!messenger.useSolids()) { 680 681 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 682 683 if (! messenger->useSolids()) { 670 684 G4VSceneHandler::AddSolid(trd); 671 685 return; … … 994 1008 995 1009 996 G4bool G4HepRepSceneHandler::dontWrite() { 997 return !(messenger.writeInvisibles() || (fpVisAttribs ? (bool)fpVisAttribs->IsVisible() : true)); 1010 G4bool G4HepRepSceneHandler::dontWrite() { 1011 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1012 return !( messenger->writeInvisibles() || (fpVisAttribs ? (bool)fpVisAttribs->IsVisible() : true)); 998 1013 } 999 1014 … … 1367 1382 type->addAttDef( "PointUnit", "Length", "Physics", ""); 1368 1383 type->addAttValue("PointUnit", G4String("m")); 1384 1385 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1369 1386 1370 1387 type->addAttDef( "UseSolids", "Use HepRep Solids rather than Geant4 Primitives", "Draw", ""); 1371 type->addAttValue("UseSolids", messenger .useSolids());1388 type->addAttValue("UseSolids", messenger->useSolids()); 1372 1389 1373 1390 type->addAttDef( "WriteInvisibles", "Write Invisible Objects", "Draw", ""); 1374 type->addAttValue("WriteInvisibles", messenger .writeInvisibles());1391 type->addAttValue("WriteInvisibles", messenger->writeInvisibles()); 1375 1392 } 1376 1393 … … 1409 1426 // Create the Geometry InstanceTree. 1410 1427 _geometryInstanceTree = factory->createHepRepInstanceTree("G4GeometryData", "1.0", getGeometryTypeTree()); 1411 if (messenger.appendGeometry()) { 1428 1429 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1430 if ( messenger->appendGeometry()) { 1412 1431 getHepRep()->addInstanceTree(_geometryInstanceTree); 1413 1432 } else { … … 1476 1495 HepRepTreeID* geometryTreeID = factory->createHepRepTreeID("G4GeometryTypes", "1.0"); 1477 1496 _geometryTypeTree = factory->createHepRepTypeTree(geometryTreeID); 1478 if (messenger.appendGeometry()) { 1497 1498 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 1499 if ( messenger->appendGeometry()) { 1479 1500 getHepRep()->addTypeTree(_geometryTypeTree); 1480 1501 } else { -
trunk/source/visualization/HepRep/src/G4HepRepViewer.cc
r944 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HepRepViewer.cc,v 1.2 6 2006/06/29 21:17:34 gunterExp $26 // $Id: G4HepRepViewer.cc,v 1.27 2009/11/23 05:42:28 perl Exp $ 27 27 // GEANT4 tag $Name: $ 28 28 // … … 40 40 #include "G4Scene.hh" 41 41 #include "G4HepRep.hh" 42 #include "G4HepRepMessenger.hh" 42 43 #include "G4HepRepSceneHandler.hh" 43 44 //This … … 47 48 using namespace std; 48 49 49 G4HepRepViewer::G4HepRepViewer (G4VSceneHandler& sceneHandler, G4HepRepMessenger& heprepMessenger,const G4String& name)50 G4HepRepViewer::G4HepRepViewer (G4VSceneHandler& sceneHandler, const G4String& name) 50 51 : G4VViewer (sceneHandler, sceneHandler.IncrementViewCount(), name), 51 geometryIncluded(false), 52 messenger(heprepMessenger) { 52 geometryIncluded(false) { 53 53 54 54 #ifdef SDEBUG … … 111 111 if (sceneHandler->closeHepRep()) { 112 112 sceneHandler->openHepRep(); 113 if (messenger.appendGeometry()) geometryIncluded = false; 113 114 G4HepRepMessenger* messenger = G4HepRepMessenger::GetInstance(); 115 if (messenger->appendGeometry()) geometryIncluded = false; 114 116 } 115 117 }
Note: See TracChangeset
for help on using the changeset viewer.