56 (
"Copies view parameters.");
58 (
"Copies ALL view parameters (except the autoRefresh status) from"
59 "\nfrom-viewer to current viewer. You may need \"/vis/viewer/rebuild\".");
61 (
"Note: to copy only the camera-specific parameters use"
62 "\n\"/vis/viewer/copyfrom\".");
66 (
"/vis/viewer/set/autoRefresh",
this);
69 (
"If true, view is automatically refreshed after a change of"
70 "\nview parameters.");
75 (
"/vis/viewer/set/auxiliaryEdge",
this);
78 (
"Auxiliary edges, i.e., those that are part of a curved surface,"
79 "\nsometimes called soft edges, become visible/invisible.");
84 (
"/vis/viewer/set/background",
this);
86 (
"Set background colour and transparency (default black and opaque).");
88 parameter =
new G4UIparameter(
"red_or_string",
's', omitable =
true);
89 parameter -> SetDefaultValue (
"0.");
92 parameter -> SetDefaultValue (0.);
95 parameter -> SetDefaultValue (0.);
97 parameter =
new G4UIparameter (
"opacity",
'd', omitable =
true);
98 parameter -> SetDefaultValue (1.);
104 (
"\"global\": enables/disables all other culling options.");
106 (
"\"coveredDaughters\": culls, i.e., eliminates, volumes that would not"
107 "\nbe seen because covered by ancestor volumes in surface drawing mode,"
108 "\nand then only if the ancestors are visible and opaque, and then only"
109 "\nif no sections or cutaways are in operation. Intended solely to"
110 "\nimprove the speed of rendering visible volumes.");
112 (
"\"invisible\": culls objects with the invisible attribute set.");
114 (
"\"density\": culls volumes with density lower than threshold. Useful"
115 "\nfor eliminating \"container volumes\" with no physical correspondence,"
116 "\nwhose material is usually air. If this is selected, provide threshold"
117 "\ndensity and unit (e.g., g/cm3, mg/cm3 or kg/m3)."
119 parameter =
new G4UIparameter(
"culling-option",
's',omitable =
false);
121 (
"global coveredDaughters invisible density");
126 parameter =
new G4UIparameter(
"density-threshold",
'd',omitable =
true);
138 (
"Sets cutaway mode - add (union) or multiply (intersection).");
144 (
"/vis/viewer/set/defaultColour",
this);
146 (
"Set defaultColour colour and transparency (default white and opaque).");
148 parameter =
new G4UIparameter(
"red_or_string",
's', omitable =
true);
149 parameter -> SetDefaultValue (
"1.");
151 parameter =
new G4UIparameter(
"green",
'd', omitable =
true);
152 parameter -> SetDefaultValue (1.);
154 parameter =
new G4UIparameter (
"blue",
'd', omitable =
true);
155 parameter -> SetDefaultValue (1.);
157 parameter =
new G4UIparameter (
"opacity",
'd', omitable =
true);
158 parameter -> SetDefaultValue (1.);
162 (
"/vis/viewer/set/defaultTextColour",
this);
164 (
"Set defaultTextColour colour and transparency (default blue and opaque).");
166 parameter =
new G4UIparameter(
"red_or_string",
's', omitable =
true);
167 parameter -> SetDefaultValue (
"0.");
169 parameter =
new G4UIparameter(
"green",
'd', omitable =
true);
170 parameter -> SetDefaultValue (0.);
172 parameter =
new G4UIparameter (
"blue",
'd', omitable =
true);
173 parameter -> SetDefaultValue (1.);
175 parameter =
new G4UIparameter (
"opacity",
'd', omitable =
true);
176 parameter -> SetDefaultValue (1.);
181 (
"Edges become visible/invisible in surface mode.");
186 (
"/vis/viewer/set/explodeFactor",
this);
188 (
"Moves top-level drawn volumes by this factor from this centre.");
189 parameter =
new G4UIparameter(
"explodeFactor",
'd', omitable=
true);
195 parameter->
SetGuidance (
"Coordinate of explode centre.");
199 parameter->
SetGuidance (
"Coordinate of explode centre.");
203 parameter->
SetGuidance (
"Coordinate of explode centre.");
207 parameter->
SetGuidance (
"Unit of explode centre.");
211 (
"/vis/viewer/set/globalLineWidthScale",
this);
213 (
"Multiplies line widths by this factor.");
215 SetParameterName(
"scale-factor", omitable=
true);
219 (
"/vis/viewer/set/globalMarkerScale",
this);
221 (
"Multiplies marker sizes by this factor.");
223 SetParameterName(
"scale-factor", omitable=
true);
229 (
"Edges become hidden/seen in wireframe or surface mode.");
236 (
"If true, closer objects hide markers. Otherwise, markers always show.");
241 (
"/vis/viewer/set/lightsMove",
this);
243 (
"Lights move with camera or with object");
246 (
"cam camera with-camera obj object with-object");
249 (
"/vis/viewer/set/lightsThetaPhi",
this);
251 (
"Set direction from target to lights.");
252 parameter =
new G4UIparameter(
"theta",
'd', omitable =
true);
253 parameter -> SetDefaultValue(60.);
256 parameter -> SetDefaultValue(45.);
258 parameter =
new G4UIparameter (
"unit",
's', omitable =
true);
259 parameter -> SetDefaultValue (
"deg");
263 (
"/vis/viewer/set/lightsVector",
this);
265 (
"Set direction from target to lights.");
267 parameter -> SetDefaultValue (1);
270 parameter -> SetDefaultValue (1);
273 parameter -> SetDefaultValue (1);
277 (
"/vis/viewer/set/lineSegmentsPerCircle",
this);
279 (
"Set number of sides per circle for polygon/polyhedron drawing.");
281 (
"Refers to graphical representation of objects with curved lines/surfaces.");
286 (
"/vis/viewer/set/numberOfCloudPoints",
this);
288 (
"Set number of points to be used for cloud representation of volumes.");
293 (
"/vis/viewer/set/picking",
this);
296 (
"If true, view is set up for picking, if available.");
298 (
"You may need to issue \"/vis/viewer/update\".");
300 (
"For required actions, watch for instructions for viewer.");
306 (
"Set projection style - o[rthogonal] or p[erspective]."
307 "\nIf p[erspective], also set field half angle.");
308 parameter =
new G4UIparameter(
"projection",
's',omitable =
true);
312 parameter =
new G4UIparameter(
"field-half-angle",
'd',omitable =
true);
322 (
"/vis/viewer/set/rotationStyle",
this);
324 (
"Set style of rotation - constrainUpDirection or freeRotation.");
326 (
"constrainUpDirection: conventional HEP view.");
328 (
"freeRotation: Google-like rotation, using mouse-grab.");
334 (
"Set plane for drawing section (DCUT).");
336 (
"E.g., for a y-z plane at x = 1 cm:"
337 "\n\"/vis/viewer/set/sectionPlane on 1 0 0 cm 1 0 0\"."
338 "\nTo turn off: /vis/viewer/set/sectionPlane off");
340 parameter -> SetDefaultValue (
"on");
343 parameter -> SetDefaultValue (0);
344 parameter -> SetGuidance (
"Coordinate of point on the plane.");
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 (
"m");
356 parameter -> SetGuidance (
"Unit of point on the plane.");
359 parameter -> SetDefaultValue (1);
360 parameter -> SetGuidance (
"Component of plane normal.");
363 parameter -> SetDefaultValue (0);
364 parameter -> SetGuidance (
"Component of plane normal.");
367 parameter -> SetDefaultValue (0);
368 parameter -> SetGuidance (
"Component of plane normal.");
372 (
"/vis/viewer/set/specialMeshRendering",
this);
374 (
"Request special rendering of volumes (meshes) that use G4VNestedParameterisation.");
379 (
"/vis/viewer/set/specialMeshVolumes",
this);
381 (
"Specify the volumes for special rendering. No arguments resets the list"
382 "\nand is interpreted to mean \"all found meshes\".");
384 (
"Please provide a list of space-separated physical volume names and copy"
385 "\nnumber pairs. Negative copy number means \"all volumes of that name\".");
386 parameter =
new G4UIparameter(
"volumes",
's',omitable =
true);
388 (
"List of physical volume names and copy number pairs");
393 (
"Set style of drawing - w[ireframe] or s[urface] or c[loud].");
395 (
"(Hidden line drawing is controlled by \"/vis/viewer/set/hiddenEdge\".)");
400 (
"/vis/viewer/set/targetPoint",
this);
402 (
"Set target point.");
404 (
"This sets the \"Current Target Point\" relative to the \"Standard");
406 (
"Target Point\" so that the actual target point is as requested.");
408 (
"(See G4ViewParameters.hh for an explanation of target points.)");
413 (
"/vis/viewer/set/upThetaPhi",
this);
416 (
"Viewer will attempt always to show this direction upwards.");
417 parameter =
new G4UIparameter(
"theta",
'd', omitable =
true);
418 parameter -> SetDefaultValue (90.);
421 parameter -> SetDefaultValue (90.);
423 parameter =
new G4UIparameter (
"unit",
's', omitable =
true);
424 parameter -> SetDefaultValue (
"deg");
428 (
"/vis/viewer/set/upVector",
this);
431 (
"Viewer will attempt always to show this direction upwards.");
433 parameter -> SetDefaultValue (0.);
436 parameter -> SetDefaultValue (1.);
439 parameter -> SetDefaultValue (0.);
443 (
"/vis/viewer/set/viewpointThetaPhi",
this);
445 (
"Set direction from target to camera.");
447 (
"Also changes lightpoint direction if lights are set to move with camera.");
448 parameter =
new G4UIparameter(
"theta",
'd', omitable =
true);
449 parameter -> SetDefaultValue (60.);
452 parameter -> SetDefaultValue (45.);
454 parameter =
new G4UIparameter (
"unit",
's', omitable =
true);
455 parameter -> SetDefaultValue (
"deg");
459 (
"/vis/viewer/set/viewpointVector",
this);
461 (
"Set direction from target to camera.");
463 (
"Also changes lightpoint direction if lights are set to move with camera.");
465 parameter -> SetDefaultValue (1.);
468 parameter -> SetDefaultValue (1.);
471 parameter -> SetDefaultValue (1.);
477 "For these commands use"
478 "\n /vis/scene/add/trajectories rich"
479 "\n /vis/modeling/trajectories/drawByCharge-0/default/setTimeSliceInterval 0.01 ns"
481 "\n /vis/viewer/set/timeWindow/displayLightFront true 0 0 -50 cm -0.5 ns"
482 "\n /vis/viewer/set/timeWindow/displayHeadTime true"
483 "\n /vis/viewer/set/timeWindow/fadeFactor 1"
484 "\n /run/beamOn # or several until you get a good event or events"
485 "\n /vis/viewer/set/timeWindow/startTime 0 ns 1 ns"
486 "\n /vis/viewer/save"
487 "\n /vis/viewer/set/timeWindow/startTime 1 ns 1 ns"
488 "\nthen zoom, pan etc to a view of interest and"
489 "\n /vis/viewer/save"
490 "\nthen repeat with next start time, another view and a save, then try"
491 "\n /vis/viewer/interpolate";
494 new G4UIcommand(
"/vis/viewer/set/timeWindow/displayHeadTime",
this);
496 (
"Display head time of range in 2D text.");
498 parameter =
new G4UIparameter (
"displayHeadTime",
'b', omitable =
false);
501 parameter =
new G4UIparameter (
"screenX",
'd', omitable =
true);
506 parameter =
new G4UIparameter (
"screenY",
'd', omitable =
true);
511 parameter =
new G4UIparameter (
"screenSize",
'd', omitable =
true);
518 parameter =
new G4UIparameter (
"green",
'd', omitable =
true);
522 parameter =
new G4UIparameter (
"blue",
'd', omitable =
true);
528 new G4UIcommand(
"/vis/viewer/set/timeWindow/displayLightFront",
this);
530 (
"Display the light front at head time.");
532 (
"Tip: The trajectories can appear of jump ahead of the light front"
533 "\nbecause their time range overlaps the viewer's time range. To"
534 "\naverage out this discrete time effect, advance the light front by"
535 "\nhalf the trajectories interval. E.g., if the trajectory time slice"
536 "\ninterval is 0.01 ns:"
537 "\n /vis/viewer/set/timeWindow/displayLightFront true -90 0 0 mm -0.005 ns"
538 "\nTo prevent them beating the light front at all:"
539 "\n /vis/viewer/set/timeWindow/displayLightFront true -90 0 0 mm -0.01 ns");
541 parameter =
new G4UIparameter (
"displayLightFront",
'b', omitable =
true);
544 parameter =
new G4UIparameter (
"originX",
'd', omitable =
true);
547 parameter =
new G4UIparameter (
"originY",
'd', omitable =
true);
550 parameter =
new G4UIparameter (
"originZ",
'd', omitable =
true);
553 parameter =
new G4UIparameter (
"space_unit",
's', omitable =
true);
556 parameter =
new G4UIparameter (
"originT",
'd', omitable =
true);
559 parameter =
new G4UIparameter (
"time_unit",
's', omitable =
true);
566 parameter =
new G4UIparameter (
"green",
'd', omitable =
true);
570 parameter =
new G4UIparameter (
"blue",
'd', omitable =
true);
576 new G4UIcommand(
"/vis/viewer/set/timeWindow/endTime",
this);
579 parameter =
new G4UIparameter (
"end-time",
'd', omitable =
false);
582 parameter =
new G4UIparameter (
"end-time-unit",
's', omitable =
false);
585 parameter =
new G4UIparameter (
"time-range",
'd', omitable =
true);
588 parameter =
new G4UIparameter (
"time-range-unit",
's', omitable =
true);
595 (
"0: no fade; 1: maximum fade with time window.");
602 new G4UIcommand(
"/vis/viewer/set/timeWindow/startTime",
this);
605 parameter =
new G4UIparameter (
"start-time",
'd', omitable =
false);
608 parameter =
new G4UIparameter (
"start-time-unit",
's', omitable =
false);
611 parameter =
new G4UIparameter (
"time-range",
'd', omitable =
true);
614 parameter =
new G4UIparameter (
"time-range-unit",
's', omitable =
true);
669 if (!currentViewer) {
672 "ERROR: G4VisCommandsViewerSet::SetNewValue: no current viewer."
685 "ERROR: G4VisCommandsViewerSet::SetNewValue: all:"
686 "\n unrecognised from-viewer."
691 if (fromViewer == currentViewer) {
694 "WARNING: G4VisCommandsViewerSet::SetNewValue: all:"
695 "\n from-viewer and current viewer are identical."
703 const std::vector<G4ModelingParameters::VisAttributesModifier>*
706 std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator i;
707 for (i = privateVAMs->begin(); i != privateVAMs->end(); ++i) {
712 G4cout <<
"View parameters of viewer \"" << currentViewer->
GetName()
713 <<
"\"\n set to those of viewer \"" << fromViewer->
GetName()
718 G4cout <<
"You may need \"/vis/viewer/rebuild\"."
731 << currentViewer->
GetName() <<
" is NOT auto-refesh by default"
732 <<
"\n so cannot be set to auto-refresh."
741 G4cout <<
"be automatically refreshed after a change of view parameters."
753 G4cout <<
"Auxiliary edges will ";
762 std::istringstream iss(newValue);
763 iss >> redOrString >> green >> blue >> opacity;
768 G4cout <<
"Background colour "
776 G4String cullingOption, stringFlag, unit;
778 std::istringstream is (newValue);
779 is >> cullingOption >> stringFlag >> density >> unit;
781 if (cullingOption ==
"global") {
785 "G4VisCommandsViewerSet::SetNewValue: culling: global culling flag"
787 ".\n Does not change specific culling flags."
791 else if (cullingOption ==
"coveredDaughters") {
795 "G4VisCommandsViewerSet::SetNewValue: culling: culling covered"
796 "\n daughters flag set to "
798 ". Daughters covered by opaque mothers"
799 "\n will be culled, i.e., not drawn, if this flag is true."
800 "\n Note: this is only effective in surface drawing style,"
801 "\n and then only if the volumes are visible and opaque, and then"
802 "\n only if no sections or cutaways are in operation."
806 else if (cullingOption ==
"invisible") {
810 "G4VisCommandsViewerSet::SetNewValue: culling: culling invisible"
813 ". Volumes marked invisible will be culled,"
814 "\n i.e., not drawn, if this flag is true."
818 else if (cullingOption ==
"density") {
820 "G4VisCommandsViewerSet::SetNewValue: culling: culling by density";
827 density *= valueOfUnit;
841 <<
". Volumes with density less than "
843 <<
"\n will be culled, i.e., not drawn, if this flag is true."
850 "ERROR: G4VisCommandsViewerSet::SetNewValue: culling:"
851 "\n option not recognised."
858 if (newValue ==
"add" || newValue ==
"union")
860 if (newValue ==
"multiply" || newValue ==
"intersection")
864 G4cout <<
"Cutaway mode set to ";
868 G4cout <<
"cutawayIntersection";
876 std::istringstream iss(newValue);
877 iss >> redOrString >> green >> blue >> opacity;
884 G4cout <<
"Default colour "
894 std::istringstream iss(newValue);
895 iss >> redOrString >> green >> blue >> opacity;
902 G4cout <<
"Default colour "
912 switch (existingStyle) {
927 switch (existingStyle) {
942 G4cout <<
"Drawing style of viewer \"" << currentViewer->
GetName()
951 std::istringstream is (newValue);
952 is >> explodeFactor >> x >> y >> z >> unitString;
968 G4cout <<
"Global Line Width Scale changed to "
978 G4cout <<
"Global Marker Scale changed to "
986 switch (existingStyle) {
1002 switch (existingStyle) {
1018 G4cout <<
"Drawing style of viewer \"" << currentViewer->
GetName()
1029 G4cout <<
"Markers will ";
1036 if (newValue.find(
"cam") != G4String::npos)
1038 else if(newValue.find(
"obj") != G4String::npos)
1042 G4cerr <<
"ERROR: \"" << newValue <<
"\" not recognised."
1043 " Looking for \"cam\" or \"obj\" in string." <<
G4endl;
1047 G4cout <<
"Lights move with ";
1049 G4cout <<
"camera (object appears to rotate).";
1050 else G4cout <<
"object (the viewer appears to be moving).";
1058 G4double x = std::sin (theta) * std::cos (phi);
1059 G4double y = std::sin (theta) * std::sin (phi);
1064 G4cout <<
"Lights direction set to "
1074 G4cout <<
"Lights direction set to "
1084 "Number of line segments per circle in polygon approximation is "
1094 "Number of points to be used in cloud representation of volumes is "
1104 else G4cout <<
"inhibited.";
1108 G4cout <<
"You may need to issue \"/vis/viewer/update\"."
1115 const size_t iPos0 = 0;
1116 if (newValue[iPos0] ==
'o') {
1117 fieldHalfAngle = 0.;
1119 else if (newValue[iPos0] ==
'p') {
1122 std::istringstream is (newValue);
1123 is >> dummy >> fieldHalfAngle >> unit;
1125 if (fieldHalfAngle > 89.5 *
deg || fieldHalfAngle <= 0.0) {
1128 "ERROR: Field half angle should be 0 < angle <= 89.5 degrees.";
1136 G4cerr <<
"ERROR: \"" << newValue <<
"\" not recognised."
1137 " Looking for 'o' or 'p' first character." <<
G4endl;
1143 G4cout <<
"Projection style of viewer \"" << currentViewer->
GetName()
1145 if (fieldHalfAngle == 0.) {
1149 G4cout <<
"perspective\n with half angle " << fieldHalfAngle /
deg
1158 if (newValue ==
"constrainUpDirection")
1160 else if (newValue ==
"freeRotation")
1164 G4cerr <<
"ERROR: \"" << newValue <<
"\" not recognised." <<
G4endl;
1170 G4cout <<
"Rotation style of viewer \"" << currentViewer->
GetName()
1178 G4double x, y, z, nx, ny, nz, F = 1.;
1179 std::istringstream is (newValue);
1180 is >> choice >> x >> y >> z >> unit >> nx >> ny >> nz;
1181 G4int iSelector = -1;
1186 if (iSelector < 0) {
1188 G4cout <<
"Choice not recognised (on/true or off/false)." <<
G4endl;
1193 switch (iSelector) {
1199 x *= F; y *= F; z *= F;
1200 if (nx == 0. && ny == 0. && nz == 0.) {
1213 G4cout <<
"Section drawing is: ";
1216 G4cout <<
".\nSection plane is now: "
1225 G4cout <<
"Special mesh rendering ";
1227 else G4cout <<
"inhibited.";
1233 std::vector<G4ModelingParameters::PVNameCopyNo> requestedMeshes;
1234 if (newValue.empty()) {
1238 G4String::size_type iBegin, iEnd;
1239 iBegin = newValue.find_first_not_of(
' ');
1240 while (iBegin != G4String::npos) {
1241 iEnd = newValue.find_first_of(
' ',iBegin);
1242 if (iEnd == G4String::npos) {
1243 iEnd = newValue.length();
1246 iBegin = newValue.find_first_not_of(
' ',iEnd);
1247 if (iBegin == G4String::npos) {
1250 "WARNING: G4VisCommandsViewerSet::SetNewValue: /vis/viewer/set/specialMeshVolumes"
1251 "\n A pair not found. (There should be an even number of parameters.)"
1252 "\n Command ignored."
1257 iEnd = newValue.find_first_of(
' ',iBegin);
1258 if (iEnd == G4String::npos) {
1259 iEnd = newValue.length();
1262 std::istringstream iss(newValue.substr(iBegin,iEnd-iBegin));
1263 if (!(iss >> copyNo)) {
1266 "WARNING: G4VisCommandsViewerSet::SetNewValue: /vis/viewer/set/specialMeshVolumes"
1267 "\n Error reading copy number - it was not numeric?"
1268 "\n Command ignored."
1274 iBegin = newValue.find_first_not_of(
' ',iEnd);
1281 "Special mesh list empty, which means \"all meshes\"."
1284 G4cout <<
"Selected special mesh volumes are:";
1286 G4cout <<
"\n " << pvNameCopyNo.GetName();
1287 if (pvNameCopyNo.GetCopyNo() >= 0)
G4cout <<
':' << pvNameCopyNo.GetCopyNo();
1296 const size_t iPos0 = 0;
1297 if (newValue[iPos0] ==
'w') {
1298 switch (existingStyle) {
1314 else if (newValue[iPos0] ==
's') {
1315 switch (existingStyle) {
1331 else if (newValue[iPos0] ==
'c') {
1332 switch (existingStyle) {
1351 G4cerr <<
"ERROR: \"" << newValue <<
"\" not recognised."
1352 " Looking for 'w' or 's' or 'c' first character." <<
G4endl;
1357 G4cout <<
"Drawing style of viewer \"" << currentViewer->
GetName()
1370 G4cout <<
"Target point set to "
1373 <<
"\n\"Current Target Point\" set to "
1376 <<
"\n\"Standard Target Point\" is "
1378 (standardTargetPoint)
1386 G4double x = std::sin (theta) * std::cos (phi);
1387 G4double y = std::sin (theta) * std::sin (phi);
1408 G4double x = std::sin (theta) * std::cos (phi);
1409 G4double y = std::sin (theta) * std::sin (phi);
1414 G4cout <<
"Viewpoint direction set to "
1417 G4cout <<
"Lightpoint direction set to "
1426 if (viewpointVector.
mag2() <= 0.) {
1428 G4cerr <<
"ERROR: Null viewpoint vector. No action taken." <<
G4endl;
1434 G4cout <<
"Viewpoint direction set to "
1437 G4cout <<
"Lightpoint direction set to "
1447 G4double screenX, screenY, screenSize, red, green, blue;
1448 std::istringstream iss(newValue);
1449 iss >> display >> screenX >> screenY
1450 >> screenSize >> red >> green >> blue;
1459 G4cout <<
"Display head time flag set: "
1467 G4String display, originX, originY, originZ, unitS, originT, unitT;
1469 std::istringstream iss(newValue);
1471 >> originX >> originY >> originZ >> unitS
1473 >> red >> green >> blue;
1487 G4cout <<
"Display light front flag set: "
1495 G4String end_time_string, end_time_unit,
1496 time_range_string, time_range_unit;
1497 std::istringstream iss(newValue);
1498 iss >> end_time_string >> end_time_unit
1499 >> time_range_string >> time_range_unit;
1502 (
G4String(end_time_string +
' ' + end_time_unit)));
1504 (
G4String(time_range_string +
' ' + time_range_unit));
1505 if (timeRange > 0.) {
1512 <<
", time window end time: " << vp.
GetEndTime()/
ns <<
" ns";
1513 if (timeRange > 0.) {
1514 G4cout <<
"\n (time range: " << timeRange/
ns <<
" ns)";
1530 G4String start_time_string, start_time_unit,
1531 time_range_string, time_range_unit;
1532 std::istringstream iss(newValue);
1533 iss >> start_time_string >> start_time_unit
1534 >> time_range_string >> time_range_unit;
1537 (
G4String(start_time_string +
' ' + start_time_unit)));
1539 (
G4String(time_range_string +
' ' + time_range_unit));
1540 if (timeRange > 0.) {
1547 <<
", time window end time: " << vp.
GetEndTime()/
ns <<
" ns";
1548 if (timeRange > 0.) {
1549 G4cout <<
"\n (time range: " << timeRange/
ns <<
" ns)";
1558 "ERROR: G4VisCommandsViewerSet::SetNewValue: unrecognised command."
HepGeom::Normal3D< G4double > G4Normal3D
HepGeom::Plane3D< G4double > G4Plane3D
HepGeom::Point3D< G4double > G4Point3D
static constexpr double deg
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
const G4Point3D & GetStandardTargetPoint() const
G4String ConvertToStringWithBestUnit(G4ThreeVector vec)
static G4ThreeVector GetNew3VectorValue(const char *paramString)
void SetParameterName(const char *theNameX, const char *theNameY, const char *theNameZ, G4bool omittable, G4bool currentAsDefault=false)
void SetUnitCategory(const char *unitCategory)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(G4bool defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
static G4double GetNewDoubleValue(const char *paramString)
void SetDefaultValue(G4double defVal)
void SetCandidates(const char *candidateList)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(const char *defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(G4int defVal)
static G4ThreeVector ConvertTo3Vector(const char *st)
static G4double ValueOf(const char *unitName)
static G4String ConvertToString(G4bool boolVal)
void SetParameter(G4UIparameter *const newParameter)
void SetGuidance(const char *aGuidance)
static G4int ConvertToInt(const char *st)
static G4bool ConvertToBool(const char *st)
void SetRange(const char *rs)
static G4double ConvertToDouble(const char *st)
static G4double ConvertToDimensionedDouble(const char *st)
void SetDefaultValue(const char *theDefaultValue)
void SetGuidance(const char *theGuidance)
void SetParameterRange(const char *theRange)
void SetParameterCandidates(const char *theString)
G4Scene * GetScene() const
const G4String & GetName() const
const G4ViewParameters & GetViewParameters() const
virtual const std::vector< G4ModelingParameters::VisAttributesModifier > * GetPrivateVisAttributesModifiers() const
const G4ViewParameters & GetDefaultViewParameters() const
void SetViewParameters(const G4ViewParameters &vp)
G4VSceneHandler * GetSceneHandler() const
void ConvertToColour(G4Colour &colour, const G4String &redOrString, G4double green, G4double blue, G4double opacity)
static G4VisManager * fpVisManager
static G4bool ConvertToDoublePair(const G4String ¶mString, G4double &xval, G4double &yval)
void SetViewParameters(G4VViewer *viewer, const G4ViewParameters &viewParams)
const G4String & ConvertToColourGuidance()
G4bool ProvideValueOfUnit(const G4String &where, const G4String &unit, const G4String &category, G4double &value)
void CopyMostViewParameters(G4ViewParameters &target, const G4ViewParameters &from)
void SetViewpointDirection(const G4Vector3D &viewpointDirection)
G4int SetNumberOfCloudPoints(G4int)
G4int SetNoOfSides(G4int nSides)
void SetViewAndLights(const G4Vector3D &viewpointDirection)
void SetAutoRefresh(G4bool)
void SetBackgroundColour(const G4Colour &)
void SetGlobalMarkerScale(G4double globalMarkerScale)
void SetExplodeCentre(const G4Point3D &explodeCentre)
void SetDisplayLightFrontY(G4double)
G4bool IsSpecialMeshRendering() const
CutawayMode GetCutawayMode() const
G4double GetExplodeFactor() const
G4bool IsMarkerNotHidden() const
void SetDisplayHeadTimeBlue(G4double)
void SetVisibleDensity(G4double visibleDensity)
G4double GetGlobalLineWidthScale() const
void AddVisAttributesModifier(const G4ModelingParameters::VisAttributesModifier &)
G4Vector3D & GetActualLightpointDirection()
void SetCurrentTargetPoint(const G4Point3D ¤tTargetPoint)
void SetDisplayLightFrontT(G4double)
void SetDrawingStyle(G4ViewParameters::DrawingStyle style)
const G4Colour & GetBackgroundColour() const
const G4Vector3D & GetLightpointDirection() const
void SetDisplayHeadTimeX(G4double)
void SetDefaultVisAttributes(const G4VisAttributes &)
void SetFieldHalfAngle(G4double fieldHalfAngle)
void SetCullingCovered(G4bool)
const G4Vector3D & GetViewpointDirection() const
void SetExplodeFactor(G4double explodeFactor)
void SetGlobalLineWidthScale(G4double globalLineWidthScale)
const G4Point3D & GetCurrentTargetPoint() const
void SetStartTime(G4double)
void SetSpecialMeshVolumes(const std::vector< G4ModelingParameters::PVNameCopyNo > &)
void SetDisplayLightFrontBlue(G4double)
void SetDisplayHeadTime(G4bool)
const G4VisAttributes * GetDefaultTextVisAttributes() const
void SetDisplayHeadTimeY(G4double)
void SetDensityCulling(G4bool)
void SetDisplayLightFrontZ(G4double)
G4double GetStartTime() const
void SetDisplayLightFront(G4bool)
void SetDisplayLightFrontRed(G4double)
const G4Vector3D & GetUpVector() const
void SetDisplayHeadTimeSize(G4double)
void SetMarkerNotHidden()
void SetDisplayHeadTimeRed(G4double)
G4double GetEndTime() const
const std::vector< G4ModelingParameters::PVNameCopyNo > & GetSpecialMeshVolumes() const
G4double GetFadeFactor() const
G4double GetGlobalMarkerScale() const
const G4VisAttributes * GetDefaultVisAttributes() const
void SetCullingInvisible(G4bool)
void SetUpVector(const G4Vector3D &upVector)
void SetEndTime(G4double)
void SetFadeFactor(G4double)
RotationStyle GetRotationStyle() const
void SetCutawayMode(CutawayMode)
void SetSpecialMeshRendering(G4bool)
G4bool IsDensityCulling() const
void SetDefaultTextVisAttributes(const G4VisAttributes &)
void SetLightpointDirection(const G4Vector3D &lightpointDirection)
void SetDisplayLightFrontX(G4double)
void SetLightsMoveWithCamera(G4bool moves)
void SetDisplayHeadTimeGreen(G4double)
void SetRotationStyle(RotationStyle)
G4bool IsAutoRefresh() const
G4double GetVisibleDensity() const
G4bool GetLightsMoveWithCamera() const
void SetSectionPlane(const G4Plane3D §ionPlane)
void SetAuxEdgeVisible(G4bool)
void SetDisplayLightFrontGreen(G4double)
const G4Point3D & GetExplodeCentre() const
const G4Plane3D & GetSectionPlane() const
DrawingStyle GetDrawingStyle() const
G4bool IsAuxEdgeVisible() const
void SetColour(const G4Colour &)
const G4Colour & GetColour() const
static constexpr G4double fVeryLongTime
G4UIcmdWith3VectorAndUnit * fpCommandTargetPoint
G4UIcommand * fpCommandDefaultColour
G4UIcommand * fpCommandViewpointVector
G4UIcmdWithABool * fpCommandHiddenEdge
void SetNewValue(G4UIcommand *command, G4String newValue)
G4UIcmdWithABool * fpCommandPicking
G4UIcmdWithABool * fpCommandAutoRefresh
G4UIcmdWithADouble * fpCommandGlobalLineWidthScale
G4UIcmdWithABool * fpCommandAuxEdge
G4UIcommand * fpCommandViewpointThetaPhi
G4UIcmdWithAnInteger * fpCommandLineSegments
G4UIcommand * fpCommandTimeWindowDisplayHeadTime
G4UIcmdWithABool * fpCommandHiddenMarker
G4UIdirectory * fpTimeWindowDirectory
G4UIcmdWithAString * fpCommandCutawayMode
G4String GetCurrentValue(G4UIcommand *command)
G4UIcmdWithADouble * fpCommandTimeWindowFadeFactor
G4UIcmdWithAString * fpCommandStyle
G4UIcommand * fpCommandSectionPlane
G4UIcommand * fpCommandLightsThetaPhi
G4UIcmdWithADouble * fpCommandGlobalMarkerScale
G4UIcommand * fpCommandDefaultTextColour
G4UIcommand * fpCommandSpecialMeshVolumes
virtual ~G4VisCommandsViewerSet()
G4UIcmdWithABool * fpCommandEdge
G4UIcmdWithAnInteger * fpCommandNumberOfCloudPoints
G4UIcommand * fpCommandExplodeFactor
G4UIcommand * fpCommandProjection
G4UIcmdWithAString * fpCommandRotationStyle
G4UIcmdWithABool * fpCommandSpecialMeshRendering
G4UIcommand * fpCommandTimeWindowStartTime
G4UIcmdWithAString * fpCommandLightsMove
G4UIcommand * fpCommandUpThetaPhi
G4UIcommand * fpCommandBackground
G4UIcommand * fpCommandCulling
G4UIcommand * fpCommandLightsVector
G4ThreeVector fViewpointVector
G4ThreeVector fLightsVector
G4UIcommand * fpCommandTimeWindowDisplayLightFront
G4UIcommand * fpCommandUpVector
G4UIcommand * fpCommandTimeWindowEndTime
G4UIcmdWithAString * fpCommandAll
G4VViewer * GetCurrentViewer() const
static Verbosity GetVerbosity()
G4VViewer * GetViewer(const G4String &viewerName) const
static double normal(HepRandomEngine *eptr)
const char * name(G4int ptype)
G4int icompare(std::string_view lhs, std::string_view rhs)
Case insensitive comparison of two strings.