1951 {
1952
1954
1955 const G4VViewer* currentViewer =
fpVisManager->GetCurrentViewer();
1956 if (!currentViewer) {
1959 "ERROR: G4VisCommandsViewerSave::SetNewValue: no current viewer."
1961 }
1962 return;
1963 }
1964
1966 if (!currentScene) {
1969 "ERROR: G4VisCommandsViewerSave::SetNewValue: no current scene."
1971 }
1972 return;
1973 }
1974
1975
1977
1978 const std::vector<G4ModelingParameters::VisAttributesModifier>*
1980 if (privateVAMs) {
1981 std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator i;
1982 for (i = privateVAMs->begin(); i != privateVAMs->end(); ++i) {
1984 }
1985 }
1987
1988 G4String filename = newValue;
1989
1990 if (newValue.length() == 0) {
1991
1992 const G4int maxNoOfFiles = 100;
1993 static G4int sequenceNumber = 0;
1994 if (sequenceNumber >= maxNoOfFiles) {
1997 << "ERROR: G4VisCommandsViewerSave::SetNewValue: Maximum number, "
1998 << maxNoOfFiles
1999 << ", of files exceeded."
2001 }
2002 return;
2003 }
2004 std::ostringstream oss;
2005 oss << std::setw(2) << std::setfill('0') << sequenceNumber++;
2006 filename = "g4_" + oss.str() + ".g4view";
2007 }
2008
2009 if (filename == "-") {
2010
2011 WriteCommands(
G4cout,vp,stp);
2012 } else {
2013
2015
2016 filename += ".g4view";
2017 }
2018 std::ofstream ofs(filename);
2019 if (!ofs) {
2022 "ERROR: G4VisCommandsViewerSave::SetNewValue: Trouble opening file \""
2023 << filename << "\"."
2025 }
2026 ofs.close();
2027 return;
2028 }
2029 WriteCommands(ofs,vp,stp);
2030 ofs.close();
2031 }
2032
2034 G4warn <<
"Viewer \"" << currentViewer -> GetName ()
2035 << "\"" << " saved to ";
2036 if (filename == "-") {
2038 } else {
2039 G4warn <<
"file \'" << filename <<
"\"." <<
2040 "\n Read the view back into this or any viewer with"
2041 "\n \"/control/execute " << filename << "\" or use"
2042 "\n \"/vis/viewer/interpolate\" if you have several saved files -"
2043 "\n see \"help /vis/viewer/interpolate\" for guidance.";
2044 }
2046 }
2047}
HepGeom::Point3D< G4double > G4Point3D
G4GLOB_DLL std::ostream G4cout
const G4Point3D & GetStandardTargetPoint() const
G4Scene * GetScene() const
const G4ViewParameters & GetViewParameters() const
virtual const std::vector< G4ModelingParameters::VisAttributesModifier > * GetPrivateVisAttributesModifiers() const
G4VSceneHandler * GetSceneHandler() const
static G4VisManager * fpVisManager
void AddVisAttributesModifier(const G4ModelingParameters::VisAttributesModifier &)
G4bool contains(const G4String &str, std::string_view ss)
Check if a string contains a given substring.