1321       G4cerr << 
"ERROR: No current scene.  Please create one." << 
G4endl;
 
 1328   << 
"ERROR: Scene has no extent. Add volumes or use \"/vis/scene/add/extent\"." 
 1339     "ERROR: G4VisCommandSceneAddLogo::SetNewValue: no viewer." 
 1340     "\n  Auto direction needs a viewer." 
 1346   G4double userHeight, red, green, blue, xmid, ymid, zmid;
 
 1347   G4String userHeightUnit, direction, auto_manual, positionUnit;
 
 1348   std::istringstream is (newValue);
 
 1349   is >> userHeight >> userHeightUnit >> direction
 
 1350      >> red >> green >> blue
 
 1352      >> xmid >> ymid >> zmid >> positionUnit;
 
 1356   if (userHeightUnit == 
"auto") {
 
 1363   xmid *= unit; ymid *= unit; zmid *= unit;
 
 1365   Direction logoDirection = X;  
 
 1366   if (direction == 
"auto") {
 
 1370     if (vp.
x() > vp.
y() && vp.
x() > vp.
z()) logoDirection = X;
 
 1371     else if (vp.
x() < vp.
y() && vp.
x() < vp.
z()) logoDirection = minusX;
 
 1372     else if (vp.
y() > vp.
x() && vp.
y() > vp.
z()) logoDirection = Y;
 
 1373     else if (vp.
y() < vp.
x() && vp.
y() < vp.
z()) logoDirection = minusY;
 
 1374     else if (vp.
z() > vp.
x() && vp.
z() > vp.
y()) logoDirection = Z;
 
 1375     else if (vp.
z() < vp.
x() && vp.
z() < vp.
y()) logoDirection = minusZ;
 
 1377   else if (direction(0) == 
'x') logoDirection = X;
 
 1378   else if (direction(0) == 
'y') logoDirection = Y;
 
 1379   else if (direction(0) == 
'z') logoDirection = Z;
 
 1380   else if (direction(0) == 
'-') {
 
 1381     if (direction(1) == 
'x') logoDirection = minusX;
 
 1382     else if (direction(1) == 
'y') logoDirection = minusY;
 
 1383     else if (direction(1) == 
'z') logoDirection = minusZ;
 
 1386       G4cerr << 
"ERROR: Unrecogniseed direction: \"" 
 1387          << direction << 
"\"." << 
G4endl;
 
 1392   G4bool autoPlacing = 
false; 
if (auto_manual == 
"auto") autoPlacing = 
true;
 
 1409     "WARNING: Existing scene does not yet have any extent." 
 1410     "\n  Maybe you have not yet added any geometrical object." 
 1416   const G4double halfHeight(height / 2.);
 
 1418   const G4double freeHeightFraction (1. + 2. * comfort);
 
 1422   switch (logoDirection) {
 
 1425     if (freeHeightFraction * (xmax - xmin) < height) room = 
false;
 
 1429     if (freeHeightFraction * (ymax - ymin) < height) room = 
false;
 
 1433     if (freeHeightFraction * (zmax - zmin) < height) room = 
false;
 
 1440     "WARNING: Not enough room in existing scene.  Maybe logo is too large." 
 1447     "WARNING: The logo you have asked for is bigger than the existing" 
 1448     "\n  scene.  Maybe you have added it too soon.  It is recommended that" 
 1449     "\n  you add the logo last so that it can be correctly auto-positioned" 
 1450     "\n  so as not to be obscured by any existing object and so that the" 
 1451     "\n  view parameters can be correctly recalculated." 
 1456   G4double sxmid(xmid), symid(ymid), szmid(zmid);
 
 1460     const G4double xComfort = comfort * (xmax - xmin);
 
 1461     const G4double yComfort = comfort * (ymax - ymin);
 
 1462     const G4double zComfort = comfort * (zmax - zmin);
 
 1463     switch (logoDirection) {
 
 1465       sxmid = xmax + halfHeight + xComfort;
 
 1466       symid = ymin - yComfort;
 
 1467       szmid = zmin - zComfort;
 
 1470       sxmid = xmin - halfHeight - xComfort;
 
 1471       symid = ymin - yComfort;
 
 1472       szmid = zmax + zComfort;
 
 1475       sxmid = xmin - xComfort;
 
 1476       symid = ymax + halfHeight + yComfort;
 
 1477       szmid = zmin - zComfort;
 
 1480       sxmid = xmax + xComfort;
 
 1481       symid = ymin - halfHeight - yComfort;
 
 1482       szmid = zmin - zComfort;
 
 1485       sxmid = xmax + xComfort;
 
 1486       symid = ymin - yComfort;
 
 1487       szmid = zmax + halfHeight + zComfort;
 
 1490       sxmid = xmin - xComfort;
 
 1491       symid = ymin - yComfort;
 
 1492       szmid = zmin - halfHeight - zComfort;
 
 1498   switch (logoDirection) {
 
 1521   visAtts.SetForceSolid(
true);         
 
 1523   G4Logo* logo = 
new G4Logo(height,visAtts);
 
 1538   const G4String& currentSceneName = pScene -> GetName ();
 
 1539   G4bool successful = pScene -> AddRunDurationModel (model, warn);
 
 1542       G4cout << 
"G4 Logo of height " << userHeight << 
' ' << userHeightUnit
 
 1543          << 
", " << direction << 
"-direction, added to scene \"" 
 1544          << currentSceneName << 
"\"";
 
 1546     G4cout << 
"\n  with extent " << extent
 
void SetGlobalTag(const G4String &)
 
void UpdateVisManagerScene(const G4String &sceneName="")
 
const G4ViewParameters & GetViewParameters() const 
 
void SetExtent(const G4VisExtent &)
 
void SetTransformation(const G4Transform3D &)
 
static void G4VisCommandsSceneAddUnsuccessful(G4VisManager::Verbosity verbosity)
 
G4double GetExtentRadius() const 
 
const G4Vector3D & GetViewpointDirection() const 
 
G4GLOB_DLL std::ostream G4cout
 
const G4VisExtent & GetExtent() const 
 
void SetType(const G4String &)
 
static G4double ValueOf(const char *unitName)
 
static Verbosity GetVerbosity()
 
static constexpr double pi
 
G4VViewer * GetCurrentViewer() const 
 
static constexpr double halfpi
 
const XML_Char XML_Content * model
 
void SetGlobalDescription(const G4String &)
 
G4Scene * GetCurrentScene() const 
 
G4GLOB_DLL std::ostream G4cerr
 
static G4VisManager * fpVisManager