57     (
"Copies view parameters.");
 
   59     (
"Copies view parameters (except the autoRefresh status) from" 
   60      "\nfrom-viewer to current viewer.");
 
   64     (
"/vis/viewer/set/autoRefresh",
this);
 
   65   fpCommandAutoRefresh->
SetGuidance(
"Sets auto-refresh.");
 
   67     (
"If true, view is automatically refreshed after a change of" 
   68      "\nview parameters.");
 
   73     (
"/vis/viewer/set/auxiliaryEdge",
this);
 
   74   fpCommandAuxEdge->
SetGuidance(
"Sets visibility of auxiliary edges");
 
   76     (
"Auxiliary edges, i.e., those that are part of a curved surface," 
   77      "\nsometimes called soft edges, become visible/invisible.");
 
   82     (
"/vis/viewer/set/background",
this);
 
   84     (
"Set background colour and transparency (default black and opaque).");
 
   86     (
"Accepts (a) RGB triplet. e.g., \".3 .4 .5\", or" 
   87      "\n(b) string such as \"white\", \"black\", \"grey\", \"red\"..." 
   88      "\n(c) an additional number for opacity, e.g., \".3 .4 .5 .6\"" 
   89      "\n    or \"grey ! ! .6\" (note \"!\"'s for unused green and blue parameters)," 
   90      "\n    e.g. \"! ! ! 0.\" for a transparent background.");
 
   91   parameter = 
new G4UIparameter(
"red_or_string", 
's', omitable = 
true);
 
   92   parameter -> SetDefaultValue (
"0.");
 
   93   fpCommandBackground -> SetParameter (parameter);
 
   95   parameter -> SetDefaultValue (0.);
 
   96   fpCommandBackground -> SetParameter (parameter);
 
   98   parameter -> SetDefaultValue (0.);
 
   99   fpCommandBackground -> SetParameter (parameter);
 
  100   parameter = 
new G4UIparameter (
"opacity", 
'd', omitable = 
true);
 
  101   parameter -> SetDefaultValue (1.);
 
  102   fpCommandBackground -> SetParameter (parameter);
 
  104   fpCommandCulling = 
new G4UIcommand(
"/vis/viewer/set/culling",
this);
 
  105   fpCommandCulling->
SetGuidance (
"Set culling options.");
 
  107     (
"\"global\": enables/disables all other culling options.");
 
  109     (
"\"coveredDaughters\": culls, i.e., eliminates, volumes that would not" 
  110      "\nbe seen because covered by ancester volumes in surface drawing mode," 
  111      "\nand then only if the ancesters are visible and opaque, and then only" 
  112      "\nif no sections or cutaways are in operation.  Intended solely to" 
  113      "\nimprove the speed of rendering visible volumes.");
 
  115     (
"\"invisible\": culls objects with the invisible attribute set.");
 
  117     (
"\"density\": culls volumes with density lower than threshold.  Useful" 
  118      "\nfor eliminating \"container volumes\" with no physical correspondence," 
  119      "\nwhose material is usually air.  If this is selected, provide threshold" 
  120      "\ndensity and unit (g/cm3 mg/cm3 or kg/m3)." 
  122   parameter = 
new G4UIparameter(
"culling-option",
's',omitable = 
false);
 
  124     (
"global coveredDaughters invisible density");
 
  129   parameter = 
new G4UIparameter(
"density-threshold",
'd',omitable = 
true);
 
  137   fpCommandCutawayMode =
 
  140     (
"Sets cutaway mode - add (union) or multiply (intersection).");
 
  142   fpCommandCutawayMode->
SetCandidates (
"add union multiply intersection");
 
  146     (
"/vis/viewer/set/defaultColour",
this);
 
  148     (
"Set defaultColour colour and transparency (default white and opaque).");
 
  150     (
"Accepts (a) RGB triplet. e.g., \".3 .4 .5\", or" 
  151      "\n(b) string such as \"white\", \"black\", \"grey\", \"red\"..." 
  152      "\n(c) an additional number for opacity, e.g., \".3 .4 .5 .6\"" 
  153      "\n    or \"grey ! ! .6\" (note \"!\"'s for unused green and blue parameters)," 
  154      "\n    e.g. \"! ! ! 0.\" for a transparent colour.");
 
  155   parameter = 
new G4UIparameter(
"red_or_string", 
's', omitable = 
true);
 
  156   parameter -> SetDefaultValue (
"1.");
 
  157   fpCommandDefaultColour -> SetParameter (parameter);
 
  158   parameter = 
new G4UIparameter(
"green", 
'd', omitable = 
true);
 
  159   parameter -> SetDefaultValue (1.);
 
  160   fpCommandDefaultColour -> SetParameter (parameter);
 
  161   parameter = 
new G4UIparameter (
"blue", 
'd', omitable = 
true);
 
  162   parameter -> SetDefaultValue (1.);
 
  163   fpCommandDefaultColour -> SetParameter (parameter);
 
  164   parameter = 
new G4UIparameter (
"opacity", 
'd', omitable = 
true);
 
  165   parameter -> SetDefaultValue (1.);
 
  166   fpCommandDefaultColour -> SetParameter (parameter);
 
  169     (
"/vis/viewer/set/defaultTextColour",
this);
 
  171     (
"Set defaultTextColour colour and transparency (default white and opaque).");
 
  173     (
"Accepts (a) RGB triplet. e.g., \".3 .4 .5\", or" 
  174      "\n(b) string such as \"white\", \"black\", \"grey\", \"red\"..." 
  175      "\n(c) an additional number for opacity, e.g., \".3 .4 .5 .6\"" 
  176      "\n    or \"grey ! ! .6\" (note \"!\"'s for unused green and blue parameters)," 
  177      "\n    e.g. \"! ! ! 0.\" for a transparent colour.");
 
  178   parameter = 
new G4UIparameter(
"red_or_string", 
's', omitable = 
true);
 
  179   parameter -> SetDefaultValue (
"1.");
 
  180   fpCommandDefaultTextColour -> SetParameter (parameter);
 
  181   parameter = 
new G4UIparameter(
"green", 
'd', omitable = 
true);
 
  182   parameter -> SetDefaultValue (1.);
 
  183   fpCommandDefaultTextColour -> SetParameter (parameter);
 
  184   parameter = 
new G4UIparameter (
"blue", 
'd', omitable = 
true);
 
  185   parameter -> SetDefaultValue (1.);
 
  186   fpCommandDefaultTextColour -> SetParameter (parameter);
 
  187   parameter = 
new G4UIparameter (
"opacity", 
'd', omitable = 
true);
 
  188   parameter -> SetDefaultValue (1.);
 
  189   fpCommandDefaultTextColour -> SetParameter (parameter);
 
  193     (
"Edges become visible/invisible in surface mode.");
 
  198     (
"/vis/viewer/set/explodeFactor", 
this);
 
  200     (
"Moves top-level drawn volumes by this factor from this centre.");
 
  201   parameter = 
new G4UIparameter(
"explodeFactor", 
'd', omitable=
true);
 
  207   parameter->
SetGuidance      (
"Coordinate of explode centre.");
 
  211   parameter->
SetGuidance      (
"Coordinate of explode centre.");
 
  215   parameter->
SetGuidance      (
"Coordinate of explode centre.");
 
  219   parameter->
SetGuidance      (
"Unit of explode centre.");
 
  223     (
"/vis/viewer/set/globalLineWidthScale", 
this);
 
  225     (
"Multiplies line widths by this factor.");
 
  226   fpCommandGlobalLineWidthScale->
 
  227     SetParameterName(
"scale-factor", omitable=
true);
 
  231     (
"/vis/viewer/set/globalMarkerScale", 
this);
 
  233     (
"Multiplies marker sizes by this factor.");
 
  234   fpCommandGlobalMarkerScale->
 
  235     SetParameterName(
"scale-factor", omitable=
true);
 
  238   fpCommandHiddenEdge =
 
  241     (
"Edges become hidden/seen in wireframe or surface mode.");
 
  245   fpCommandHiddenMarker =
 
  248     (
"If true, closer objects hide markers. Otherwise, markers always show.");
 
  253     (
"/vis/viewer/set/lightsMove",
this);
 
  255     (
"Lights move with camera or with object");
 
  258     (
"cam camera with-camera obj object with-object");
 
  261     (
"/vis/viewer/set/lightsThetaPhi", 
this);
 
  263     (
"Set direction from target to lights.");
 
  264   parameter = 
new G4UIparameter(
"theta", 
'd', omitable = 
true);
 
  265   parameter -> SetDefaultValue(60.);
 
  266   fpCommandLightsThetaPhi -> SetParameter (parameter);
 
  268   parameter -> SetDefaultValue(45.);
 
  269   fpCommandLightsThetaPhi -> SetParameter (parameter);
 
  270   parameter = 
new G4UIparameter (
"unit", 
's', omitable = 
true);
 
  271   parameter -> SetDefaultValue (
"deg");
 
  272   fpCommandLightsThetaPhi -> SetParameter (parameter);
 
  275     (
"/vis/viewer/set/lightsVector", 
this);
 
  277     (
"Set direction from target to lights.");
 
  279   parameter -> SetDefaultValue (1);
 
  280   fpCommandLightsVector -> SetParameter (parameter);
 
  282   parameter -> SetDefaultValue (1);
 
  283   fpCommandLightsVector -> SetParameter (parameter);
 
  285   parameter -> SetDefaultValue (1);
 
  286   fpCommandLightsVector -> SetParameter (parameter);
 
  289     (
"/vis/viewer/set/lineSegmentsPerCircle",
this);
 
  291     (
"Set number of sides per circle for polygon/polyhedron drawing.");
 
  293  (
"Refers to graphical representation of objects with curved lines/surfaces.");
 
  298     (
"/vis/viewer/set/picking",
this);
 
  299   fpCommandPicking->
SetGuidance(
"Sets picking, if available.");
 
  301     (
"If true, view is set up for picking, if available.");
 
  303     (
"You may need to issue \"/vis/viewer/update\".");
 
  305     (
"For required actions, watch for instructions for viewer.");
 
  309   fpCommandProjection = 
new G4UIcommand(
"/vis/viewer/set/projection",
this);
 
  311     (
"Orthogonal or perspective projection.");
 
  312   parameter = 
new G4UIparameter(
"projection",
's',omitable = 
true);
 
  316   parameter = 
new G4UIparameter(
"field-half-angle",
'd',omitable = 
true);
 
  326     (
"/vis/viewer/set/rotationStyle",
this);
 
  328     (
"Set style of rotation - constrainUpDirection or freeRotation.");
 
  330     (
"constrainUpDirection: conventional HEP view.");
 
  332     (
"freeRotation: Google-like rotation, using mouse-grab.");
 
  334   fpCommandRotationStyle->
SetCandidates(
"constrainUpDirection freeRotation");
 
  336   fpCommandSectionPlane = 
new G4UIcommand(
"/vis/viewer/set/sectionPlane",
this);
 
  337   fpCommandSectionPlane -> SetGuidance
 
  338     (
"Set plane for drawing section (DCUT).");
 
  339   fpCommandSectionPlane -> SetGuidance
 
  340     (
"E.g., for a y-z plane at x = 1 cm:" 
  341      "\n\"/vis/viewer/set/sectionPlane on 1 0 0 cm 1 0 0\"." 
  342      "\nTo turn off: /vis/viewer/set/sectionPlane off");
 
  344   parameter  -> SetDefaultValue  (
"on");
 
  347   parameter  -> SetDefaultValue  (0);
 
  348   parameter  -> SetGuidance      (
"Coordinate of point on the plane.");
 
  351   parameter  -> SetDefaultValue  (0);
 
  352   parameter  -> SetGuidance      (
"Coordinate of point on the plane.");
 
  355   parameter  -> SetDefaultValue  (0);
 
  356   parameter  -> SetGuidance      (
"Coordinate of point on the plane.");
 
  359   parameter  -> SetDefaultValue  (
"m");
 
  360   parameter  -> SetGuidance      (
"Unit of point on the plane.");
 
  363   parameter  -> SetDefaultValue  (1);
 
  364   parameter  -> SetGuidance      (
"Component of plane normal.");
 
  367   parameter  -> SetDefaultValue  (0);
 
  368   parameter  -> SetGuidance      (
"Component of plane normal.");
 
  371   parameter  -> SetDefaultValue  (0);
 
  372   parameter  -> SetGuidance      (
"Component of plane normal.");
 
  377     (
"Set style of drawing - w[ireframe] or s[urface].");
 
  379     (
"(Hidden line drawing is controlled by \"/vis/viewer/set/hiddenEdge\".)");
 
  383     (
"/vis/viewer/set/targetPoint", 
this);
 
  385     (
"Set target point.");
 
  387     (
"This sets the \"Current Target Point\" relative to the \"Standard");
 
  389     (
"Target Point\" so that the actual target point is as requested.");
 
  391     (
"(See G4ViewParameters.hh for an explanation of target points.)");
 
  396     (
"/vis/viewer/set/upThetaPhi", 
this);
 
  397   fpCommandUpThetaPhi -> SetGuidance (
"Set up vector.");
 
  398   fpCommandUpThetaPhi -> SetGuidance
 
  399     (
"Viewer will attempt always to show this direction upwards.");
 
  400   parameter = 
new G4UIparameter(
"theta", 
'd', omitable = 
true);
 
  401   parameter -> SetDefaultValue (90.);
 
  402   fpCommandUpThetaPhi -> SetParameter (parameter);
 
  404   parameter -> SetDefaultValue (90.);
 
  405   fpCommandUpThetaPhi -> SetParameter (parameter);
 
  406   parameter = 
new G4UIparameter (
"unit", 
's', omitable = 
true);
 
  407   parameter -> SetDefaultValue (
"deg");
 
  408   fpCommandUpThetaPhi -> SetParameter (parameter);
 
  411     (
"/vis/viewer/set/upVector", 
this);
 
  412   fpCommandUpVector -> SetGuidance (
"Set up vector.");
 
  413   fpCommandUpVector -> SetGuidance
 
  414     (
"Viewer will attempt always to show this direction upwards.");
 
  416   parameter -> SetDefaultValue (0.);
 
  417   fpCommandUpVector -> SetParameter (parameter);
 
  419   parameter -> SetDefaultValue (1.);
 
  420   fpCommandUpVector -> SetParameter (parameter);
 
  422   parameter -> SetDefaultValue (0.);
 
  423   fpCommandUpVector -> SetParameter (parameter);
 
  426     (
"/vis/viewer/set/viewpointThetaPhi", 
this);
 
  427   fpCommandViewpointThetaPhi -> SetGuidance
 
  428     (
"Set direction from target to camera.");
 
  429   fpCommandViewpointThetaPhi -> SetGuidance
 
  430   (
"Also changes lightpoint direction if lights are set to move with camera.");
 
  431   parameter = 
new G4UIparameter(
"theta", 
'd', omitable = 
true);
 
  432   parameter -> SetDefaultValue (60.);
 
  433   fpCommandViewpointThetaPhi -> SetParameter (parameter);
 
  435   parameter -> SetDefaultValue (45.);
 
  436   fpCommandViewpointThetaPhi -> SetParameter (parameter);
 
  437   parameter = 
new G4UIparameter (
"unit", 
's', omitable = 
true);
 
  438   parameter -> SetDefaultValue (
"deg");
 
  439   fpCommandViewpointThetaPhi -> SetParameter (parameter);
 
  442     (
"/vis/viewer/set/viewpointVector", 
this);
 
  443   fpCommandViewpointVector -> SetGuidance
 
  444     (
"Set direction from target to camera.");
 
  445   fpCommandViewpointVector -> SetGuidance
 
  446   (
"Also changes lightpoint direction if lights are set to move with camera.");
 
  448   parameter -> SetDefaultValue (1.);
 
  449   fpCommandViewpointVector -> SetParameter (parameter);
 
  451   parameter -> SetDefaultValue (1.);
 
  452   fpCommandViewpointVector -> SetParameter (parameter);
 
  454   parameter -> SetDefaultValue (1.);
 
  455   fpCommandViewpointVector -> SetParameter (parameter);
 
  460   delete fpCommandAuxEdge;
 
  461   delete fpCommandAutoRefresh;
 
  462   delete fpCommandBackground;
 
  463   delete fpCommandCulling;
 
  464   delete fpCommandCutawayMode;
 
  465   delete fpCommandDefaultColour;
 
  466   delete fpCommandDefaultTextColour;
 
  467   delete fpCommandEdge;
 
  468   delete fpCommandExplodeFactor;
 
  469   delete fpCommandGlobalLineWidthScale;
 
  470   delete fpCommandGlobalMarkerScale;
 
  471   delete fpCommandHiddenEdge;
 
  472   delete fpCommandHiddenMarker;
 
  473   delete fpCommandLineSegments;
 
  474   delete fpCommandLightsMove;
 
  475   delete fpCommandLightsThetaPhi;
 
  476   delete fpCommandLightsVector;
 
  477   delete fpCommandPicking;
 
  478   delete fpCommandProjection;
 
  479   delete fpCommandRotationStyle;
 
  480   delete fpCommandSectionPlane;
 
  481   delete fpCommandStyle;
 
  482   delete fpCommandTargetPoint;
 
  483   delete fpCommandUpThetaPhi;
 
  484   delete fpCommandUpVector;
 
  485   delete fpCommandViewpointThetaPhi;
 
  486   delete fpCommandViewpointVector;
 
  498   G4VViewer* currentViewer = fpVisManager->GetCurrentViewer();
 
  499   if (!currentViewer) {
 
  502     "ERROR: G4VisCommandsViewerSet::SetNewValue: no current viewer." 
  510   if (command == fpCommandAll) {
 
  511     G4VViewer* fromViewer = fpVisManager->GetViewer(newValue);
 
  515       "ERROR: G4VisCommandsViewerSet::SetNewValue: all:" 
  516       "\n  unrecognised from-viewer." 
  521     if (fromViewer == currentViewer) {
 
  524     "WARNING: G4VisCommandsViewerSet::SetNewValue: all:" 
  525     "\n  from-viewer and current viewer are identical." 
  531     G4bool currentAutoRefresh =
 
  536       G4cout << 
"View parameters of viewer \"" << currentViewer->
GetName()
 
  537          << 
"\"\n  set to those of viewer \"" << fromViewer->
GetName()
 
  543   else if (command == fpCommandAutoRefresh) {
 
  551       << currentViewer->
GetName() << 
" is NOT auto-refesh by default" 
  552       << 
"\n  so cannot be set to auto-refresh." 
  561       G4cout << 
"be automatically refreshed after a change of view parameters." 
  570   else if (command == fpCommandAuxEdge) {
 
  573       G4cout << 
"Auxiliary edges will ";
 
  579   else if (command == fpCommandBackground) {
 
  582     std::istringstream iss(newValue);
 
  583     iss >> redOrString >> green >> blue >> opacity;
 
  585     const size_t iPos0 = 0;
 
  586     if (std::isalpha(redOrString[iPos0])) {
 
  589       G4cout << 
"WARNING: Text colour \"" << redOrString
 
  590          << 
"\" not found.  Defaulting to black and opaque." 
  601       G4cout << 
"Background colour " 
  608   else if (command == fpCommandCulling) {
 
  609     G4String cullingOption, stringFlag, unit;
 
  611     std::istringstream is (newValue);
 
  612     is >> cullingOption >> stringFlag >> density >> unit;
 
  614     if (cullingOption == 
"global") {
 
  618       "G4VisCommandsViewerSet::SetNewValue: culling: global culling flag" 
  620       ".\n  Does not change specific culling flags." 
  624     else if (cullingOption == 
"coveredDaughters") {
 
  628       "G4VisCommandsViewerSet::SetNewValue: culling: culling covered" 
  629       "\n  daughters flag set to " 
  631       ".  Daughters covered by opaque mothers" 
  632       "\n  will be culled, i.e., not drawn, if this flag is true." 
  633       "\n  Note: this is only effective in surface drawing style," 
  634       "\n  and then only if the volumes are visible and opaque, and then" 
  635       "\n  only if no sections or cutaways are in operation." 
  639     else if (cullingOption == 
"invisible") {
 
  643       "G4VisCommandsViewerSet::SetNewValue: culling: culling invisible" 
  646       ".  Volumes marked invisible will be culled," 
  647       "\n  i.e., not drawn, if this flag is true." 
  651     else if (cullingOption == 
"density") {
 
  662       "G4VisCommandsViewerSet::SetNewValue: culling: culling by density" 
  664       ".  Volumes with density less than " <<
 
  666       "\n  will be culled, i.e., not drawn, if this flag is true." 
  673       "ERROR: G4VisCommandsViewerSet::SetNewValue: culling:" 
  674       "\n  option not recognised." 
  680   else if (command == fpCommandCutawayMode) {
 
  681     if (newValue == 
"add" || newValue == 
"union")
 
  683     if (newValue == 
"multiply" || newValue == 
"intersection")
 
  687       G4cout << 
"Cutaway mode set to ";
 
  691     G4cout << 
"cutawayIntersection";
 
  696   else if (command == fpCommandDefaultColour) {
 
  699     std::istringstream iss(newValue);
 
  700     iss >> redOrString >> green >> blue >> opacity;
 
  702     const size_t iPos0 = 0;
 
  703     if (std::isalpha(redOrString[iPos0])) {
 
  706       G4cout << 
"WARNING: Text colour \"" << redOrString
 
  707          << 
"\" not found.  Defaulting to white and opaque." 
  720       G4cout << 
"Default colour " 
  727   else if (command == fpCommandDefaultTextColour) {
 
  730     std::istringstream iss(newValue);
 
  731     iss >> redOrString >> green >> blue >> opacity;
 
  733     const size_t iPos0 = 0;
 
  734     if (std::isalpha(redOrString[iPos0])) {
 
  737       G4cout << 
"WARNING: Text colour \"" << redOrString
 
  738          << 
"\" not found.  Defaulting to white and opaque." 
  751       G4cout << 
"Default colour " 
  758   else if (command == fpCommandEdge) {
 
  761       switch (existingStyle) {
 
  774       switch (existingStyle) {
 
  787       G4cout << 
"Drawing style of viewer \"" << currentViewer->
GetName()
 
  793   else if (command == fpCommandExplodeFactor) {
 
  796     std::istringstream is (newValue);
 
  797     is >> explodeFactor >> x >> y >> z >> unitString;
 
  808   else if (command == fpCommandGlobalLineWidthScale) {
 
  810       = fpCommandGlobalLineWidthScale->GetNewDoubleValue(newValue);
 
  813       G4cout << 
"Global Line Width Scale changed to " 
  818   else if (command == fpCommandGlobalMarkerScale) {
 
  820       = fpCommandGlobalMarkerScale->GetNewDoubleValue(newValue);
 
  823       G4cout << 
"Global Marker Scale changed to " 
  828   else if (command == fpCommandHiddenEdge) {
 
  831       switch (existingStyle) {
 
  845       switch (existingStyle) {
 
  859       G4cout << 
"Drawing style of viewer \"" << currentViewer->
GetName()
 
  865   else if (command == fpCommandHiddenMarker) {
 
  870       G4cout << 
"Markers will ";
 
  876   else if (command == fpCommandLightsMove) {
 
  877     if (newValue.find(
"cam") != G4String::npos)
 
  879     else if(newValue.find(
"obj") != G4String::npos)
 
  883     G4cout << 
"ERROR: \"" << newValue << 
"\" not recognised." 
  884     "  Looking for \"cam\" or \"obj\" in string." << 
G4endl;
 
  888       G4cout << 
"Lights move with ";
 
  890     G4cout << 
"camera (object appears to rotate).";
 
  891       else G4cout << 
"object (the viewer appears to be moving).";
 
  896   else if (command == fpCommandLightsThetaPhi) {
 
  898     ConvertToDoublePair(newValue, theta, phi);
 
  899     G4double x = std::sin (theta) * std::cos (phi);
 
  900     G4double y = std::sin (theta) * std::sin (phi);
 
  905       G4cout << 
"Lights direction set to " 
  910   else if (command == fpCommandLightsVector) {
 
  914       G4cout << 
"Lights direction set to " 
  919   else if (command == fpCommandLineSegments) {
 
  924     "Number of line segements per circle in polygon approximation is " 
  929   else if (command == fpCommandPicking) {
 
  934       else G4cout << 
"inhibited.";
 
  938       G4cout << 
"You may need to issue \"/vis/viewer/update\"." 
  943   else if (command == fpCommandProjection) {
 
  945     const size_t iPos0 = 0;
 
  946     if (newValue[iPos0] == 
'o') {  
 
  949     else if (newValue[iPos0] == 
'p') {  
 
  952       std::istringstream is (newValue);
 
  953       is >> dummy >> fieldHalfAngle >> unit;
 
  955       if (fieldHalfAngle > 89.5 * 
deg || fieldHalfAngle <= 0.0) {
 
  958         "ERROR: Field half angle should be 0 < angle <= 89.5 degrees.";
 
  966     G4cout << 
"ERROR: \"" << newValue << 
"\" not recognised." 
  967       "  Looking for 'o' or 'p' first character." << 
G4endl;
 
  973       G4cout << 
"Projection style of viewer \"" << currentViewer->
GetName()
 
  975       if (fieldHalfAngle == 0.) {
 
  979     G4cout << 
"perspective\n  with half angle " << fieldHalfAngle / 
deg 
  986   else if (command == fpCommandSectionPlane) {
 
  989     std::istringstream is (newValue);
 
  990     is >> choice >> x >> y >> z >> unit >> nx >> ny >> nz;
 
  992     G4int iSelector = -1;
 
  999     G4cout << 
"Choice not recognised (on/true or off/false)." << 
G4endl;
 
 1000     G4cout << 
"Section drawing is currently: ";
 
 1003     G4cout << 
".\nSection plane is currently: " 
 1012     switch (iSelector) {
 
 1018       x *= F; y *= F; z *= F;
 
 1025       G4cout << 
"Section drawing is now: ";
 
 1028       G4cout << 
".\nSection plane is now: " 
 1034   else if (command == fpCommandRotationStyle) {
 
 1036     if (newValue == 
"constrainUpDirection")
 
 1038     else if (newValue == 
"freeRotation")
 
 1042     G4cout << 
"ERROR: \"" << newValue << 
"\" not recognised." << 
G4endl;
 
 1048       G4cout << 
"Rotation style of viewer \"" << currentViewer->
GetName()
 
 1054   else if (command == fpCommandStyle) {
 
 1056     const size_t iPos0 = 0;
 
 1057     if (newValue[iPos0] == 
'w') {  
 
 1058       switch (existingStyle) {
 
 1071     else if (newValue[iPos0] == 
's') {  
 
 1072       switch (existingStyle) {
 
 1087     G4cout << 
"ERROR: \"" << newValue << 
"\" not recognised." 
 1088       "  Looking for 'w' or 's' first character." << 
G4endl;
 
 1093       G4cout << 
"Drawing style of viewer \"" << currentViewer->
GetName()
 
 1099   else if (command == fpCommandTargetPoint) {
 
 1101       fpCommandTargetPoint->GetNew3VectorValue(newValue);
 
 1106       G4cout << 
"Target point set to " 
 1107          << fpCommandTargetPoint->ConvertToStringWithBestUnit
 
 1109          << 
"\n\"Current Target Point\" set to  " 
 1110          << fpCommandTargetPoint->ConvertToStringWithBestUnit
 
 1112          << 
"\n\"Standard Target Point\" is " 
 1113          << fpCommandTargetPoint->ConvertToStringWithBestUnit
 
 1114     (standardTargetPoint)
 
 1119   else if (command == fpCommandUpThetaPhi) {
 
 1121     ConvertToDoublePair(newValue, theta, phi);
 
 1122     G4double x = std::sin (theta) * std::cos (phi);
 
 1123     G4double y = std::sin (theta) * std::sin (phi);
 
 1132   else if (command == fpCommandUpVector) {
 
 1140   else if (command == fpCommandViewpointThetaPhi) {
 
 1142     ConvertToDoublePair(newValue, theta, phi);
 
 1143     G4double x = std::sin (theta) * std::cos (phi);
 
 1144     G4double y = std::sin (theta) * std::sin (phi);
 
 1149       G4cout << 
"Viewpoint direction set to " 
 1152     G4cout << 
"Lightpoint direction set to " 
 1158   else if (command == fpCommandViewpointVector) {
 
 1162       G4cout << 
"Viewpoint direction set to " 
 1165     G4cout << 
"Lightpoint direction set to " 
 1174     "ERROR: G4VisCommandsViewerSet::SetNewValue: unrecognised command." 
 1180   SetViewParameters(currentViewer,vp);