43 fDrawingStyle (wireframe),
44 fAuxEdgeVisible (false),
46 fCullInvisible (true),
47 fDensityCulling (false),
48 fVisibleDensity (0.01 *
g /
cm3),
52 fCutawayMode (cutawayUnion),
61 fCurrentTargetPoint (),
63 fLightsMoveWithCamera (false),
64 fRelativeLightpointDirection (
G4Vector3D (1., 1., 1.)),
65 fActualLightpointDirection (
G4Vector3D (1., 1., 1.)),
66 fDefaultVisAttributes (),
67 fDefaultTextVisAttributes (
G4Colour (0., 0., 1.)),
69 fGlobalMarkerScale (1.),
70 fGlobalLineWidthScale (1.),
71 fMarkerNotHidden (true),
72 fWindowSizeHintX (600),
73 fWindowSizeHintY (600),
74 fWindowLocationHintX(0),
75 fWindowLocationHintY(0),
76 fWindowLocationHintXNegative(true),
77 fWindowLocationHintYNegative(false),
80 fBackgroundColour (
G4Colour(0.,0.,0.)),
82 fRotationStyle (constrainUpDirection)
92 fScaleFactor.setX(fScaleFactor.x() * scaleFactorMultiplier.
x());
93 fScaleFactor.setY(fScaleFactor.y() * scaleFactorMultiplier.
y());
94 fScaleFactor.setZ(fScaleFactor.z() * scaleFactorMultiplier.
z());
99 return fActualLightpointDirection;
112 if (fFieldHalfAngle == 0.) {
113 cameraDistance = radius;
116 cameraDistance = radius / std::sin (fFieldHalfAngle) - fDolly;
118 return cameraDistance;
123 const G4double small = 1.e-6 * radius;
124 G4double nearDistance = cameraDistance - radius;
125 if (nearDistance < small) nearDistance = small;
132 G4double farDistance = cameraDistance + radius;
133 if (farDistance < nearDistance) farDistance = nearDistance;
140 if (fFieldHalfAngle == 0.) {
141 frontHalfHeight = radius / fZoomFactor;
144 frontHalfHeight = nearDistance * std::tan (fFieldHalfAngle) / fZoomFactor;
146 return frontHalfHeight;
151 if (fCutawayPlanes.size () < 3 ) {
152 fCutawayPlanes.push_back (cutawayPlane);
156 "ERROR: G4ViewParameters::AddCutawayPlane:"
157 "\n A maximum of 3 cutaway planes supported." <<
G4endl;
163 if (index >= fCutawayPlanes.size()) {
165 "ERROR: G4ViewParameters::ChangeCutawayPlane:"
166 "\n Plane " << index <<
" does not exist." <<
G4endl;
168 fCutawayPlanes[
index] = cutawayPlane;
174 if (visibleDensity < 0) {
175 G4cout <<
"G4ViewParameters::SetVisibleDensity: attempt to set negative "
176 "density - ignored." <<
G4endl;
179 if (visibleDensity > reasonableMaximum) {
180 G4cout <<
"G4ViewParameters::SetVisibleDensity: density > "
181 <<
G4BestUnit (reasonableMaximum,
"Volumic Mass")
182 <<
" - did you mean this?"
185 fVisibleDensity = visibleDensity;
190 const G4int nSidesMin = 12;
191 if (nSides < nSidesMin) {
193 G4cout <<
"G4ViewParameters::SetNoOfSides: attempt to set the"
194 "\nnumber of sides per circle < " << nSidesMin
195 <<
"; forced to " << nSides <<
G4endl;
204 fViewpointDirection = viewpointDirection;
208 if (fViewpointDirection.unit() * fUpVector.unit() > .9999) {
210 "WARNING: Viewpoint direction is very close to the up vector direction."
211 "\n Consider setting the up vector to obtain definable behaviour."
216 if (fLightsMoveWithCamera) {
218 G4Vector3D xprime = (fUpVector.cross (zprime)).unit ();
220 fActualLightpointDirection =
221 fRelativeLightpointDirection.
x () * xprime +
222 fRelativeLightpointDirection.
y () * yprime +
223 fRelativeLightpointDirection.
x () * zprime;
225 fActualLightpointDirection = fRelativeLightpointDirection;
231 fRelativeLightpointDirection = lightpointDirection;
232 SetViewAndLights (fViewpointDirection);
238 fCurrentTargetPoint = right * unitRight + up * unitUp;
248 fCurrentTargetPoint += right * unitRight + up * unitUp + distance * fViewpointDirection;
254 std::ostringstream oss;
256 oss <<
"#\n# Camera and lights commands";
258 oss <<
"\n/vis/viewer/set/viewpointVector "
259 << fViewpointDirection.x()
260 <<
' ' << fViewpointDirection.y()
261 <<
' ' << fViewpointDirection.z();
263 oss <<
"\n/vis/viewer/set/upVector "
265 <<
' ' << fUpVector.y()
266 <<
' ' << fUpVector.z();
268 oss <<
"\n/vis/viewer/set/projection ";
269 if (fFieldHalfAngle == 0.) {
275 << fFieldHalfAngle/
deg
279 oss <<
"\n/vis/viewer/zoomTo "
282 oss <<
"\n/vis/viewer/scaleTo "
284 <<
' ' << fScaleFactor.y()
285 <<
' ' << fScaleFactor.z();
287 oss <<
"\n/vis/viewer/set/targetPoint "
288 <<
G4BestUnit(standardTargetPoint+fCurrentTargetPoint,
"Length")
289 <<
"\n# Note that if you have not set a target point, the vis system sets"
290 <<
"\n# a target point based on the scene - plus any panning and dollying -"
291 <<
"\n# so don't be alarmed by strange coordinates here.";
293 oss <<
"\n/vis/viewer/dollyTo "
296 oss <<
"\n/vis/viewer/set/lightsMove ";
297 if (fLightsMoveWithCamera) {
303 oss <<
"\n/vis/viewer/set/lightsVector "
304 << fRelativeLightpointDirection.x()
305 <<
' ' << fRelativeLightpointDirection.y()
306 <<
' ' << fRelativeLightpointDirection.z();
308 oss <<
"\n/vis/viewer/set/rotationStyle ";
309 if (fRotationStyle == constrainUpDirection) {
310 oss <<
"constrainUpDirection";
312 oss <<
"freeRotation";
316 oss <<
"\n/vis/viewer/set/background "
323 oss <<
"\n/vis/viewer/set/defaultColour "
329 c = fDefaultTextVisAttributes.
GetColour();
330 oss <<
"\n/vis/viewer/set/defaultTextColour "
343 std::ostringstream oss;
345 oss <<
"#\n# Drawing style commands";
347 oss <<
"\n/vis/viewer/set/style ";
348 if (fDrawingStyle ==
wireframe || fDrawingStyle ==
hlr) {
354 oss <<
"\n/vis/viewer/set/hiddenEdge ";
355 if (fDrawingStyle ==
hlr || fDrawingStyle ==
hlhsr) {
361 oss <<
"\n/vis/viewer/set/auxiliaryEdge ";
362 if (fAuxEdgeVisible) {
368 oss <<
"\n/vis/viewer/set/hiddenMarker ";
369 if (fMarkerNotHidden) {
375 oss <<
"\n/vis/viewer/set/globalLineWidthScale "
376 << fGlobalLineWidthScale;
378 oss <<
"\n/vis/viewer/set/globalMarkerScale "
379 << fGlobalMarkerScale;
388 std::ostringstream oss;
390 oss <<
"#\n# Scene-modifying commands";
392 oss <<
"\n/vis/viewer/set/culling global ";
399 oss <<
"\n/vis/viewer/set/culling invisible ";
400 if (fCullInvisible) {
406 oss <<
"\n/vis/viewer/set/culling density ";
407 if (fDensityCulling) {
408 oss <<
"true " << fVisibleDensity/(
g/
cm3) <<
" g/cm3";
413 oss <<
"\n/vis/viewer/set/culling coveredDaughters ";
420 oss <<
"\n/vis/viewer/set/sectionPlane ";
424 << fSectionPlane.
normal().x()
425 <<
' ' << fSectionPlane.
normal().y()
426 <<
' ' << fSectionPlane.
normal().z();
431 oss <<
"\n/vis/viewer/set/cutawayMode ";
435 oss <<
"intersection";
438 oss <<
"\n/vis/viewer/clearCutawayPlanes";
439 if (fCutawayPlanes.size()) {
440 for (
size_t i = 0; i < fCutawayPlanes.size(); i++) {
441 oss <<
"\n/vis/viewer/addCutawayPlane "
442 <<
G4BestUnit(fCutawayPlanes[i].point(),
"Length")
443 << fCutawayPlanes[i].normal().x()
444 <<
' ' << fCutawayPlanes[i].normal().y()
445 <<
' ' << fCutawayPlanes[i].normal().z();
448 oss <<
"\n# No cutaway planes defined.";
451 oss <<
"\n/vis/viewer/set/explodeFactor "
453 <<
' ' <<
G4BestUnit(fExplodeCentre,
"Length");
455 oss <<
"\n/vis/viewer/set/lineSegmentsPerCircle "
465 std::ostringstream oss;
467 oss <<
"#\n# Touchable commands";
469 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
470 fVisAttributesModifiers;
478 std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator
480 for (iModifier = vams.begin();
481 iModifier != vams.end();
485 iModifier->GetPVNameCopyNoPath();
486 if (vamPath != lastPath) {
488 oss <<
"\n/vis/set/touchable";
490 for (iVAM = vamPath.begin();
491 iVAM != vamPath.end();
493 oss <<
' ' << iVAM->GetName() <<
' ' << iVAM->GetCopyNo();
498 switch (iModifier->GetVisAttributesSignifier()) {
500 oss <<
"\n/vis/touchable/set/visibility ";
508 oss <<
"\n/vis/touchable/set/daughtersInvisible ";
516 oss <<
"\n/vis/touchable/set/colour "
523 oss <<
"\n/vis/touchable/set/lineStyle ";
536 oss <<
"\n/vis/touchable/set/lineWidth "
541 oss <<
"\n/vis/touchable/set/forceWireframe ";
551 oss <<
"\n/vis/touchable/set/forceSolid ";
560 oss <<
"\n/vis/touchable/set/forceAuxEdgeVisible ";
568 oss <<
"\n/vis/touchable/set/lineSegmentsPerCircle "
584 (fViewpointDirection != v.fViewpointDirection) ||
587 (fDrawingStyle != v.fDrawingStyle) ||
588 (fAuxEdgeVisible != v.fAuxEdgeVisible) ||
589 (fCulling != v.fCulling) ||
590 (fCullInvisible != v.fCullInvisible) ||
591 (fDensityCulling != v.fDensityCulling) ||
592 (fVisibleDensity != v.fVisibleDensity) ||
593 (fCullCovered != v.fCullCovered) ||
594 (fSection != v.fSection) ||
595 (fNoOfSides != v.fNoOfSides) ||
596 (fUpVector != v.fUpVector) ||
597 (fFieldHalfAngle != v.fFieldHalfAngle) ||
598 (fZoomFactor != v.fZoomFactor) ||
599 (fScaleFactor != v.fScaleFactor) ||
600 (fCurrentTargetPoint != v.fCurrentTargetPoint) ||
601 (fDolly != v.fDolly) ||
602 (fRelativeLightpointDirection != v.fRelativeLightpointDirection) ||
603 (fLightsMoveWithCamera != v.fLightsMoveWithCamera) ||
604 (fDefaultVisAttributes != v.fDefaultVisAttributes) ||
605 (fDefaultTextVisAttributes != v.fDefaultTextVisAttributes) ||
606 (fDefaultMarker != v.fDefaultMarker) ||
607 (fGlobalMarkerScale != v.fGlobalMarkerScale) ||
608 (fGlobalLineWidthScale != v.fGlobalLineWidthScale) ||
609 (fMarkerNotHidden != v.fMarkerNotHidden) ||
610 (fWindowSizeHintX != v.fWindowSizeHintX) ||
611 (fWindowSizeHintY != v.fWindowSizeHintY) ||
612 (fXGeometryString != v.fXGeometryString) ||
613 (fGeometryMask != v.fGeometryMask) ||
614 (fAutoRefresh != v.fAutoRefresh) ||
615 (fBackgroundColour != v.fBackgroundColour) ||
616 (fPicking != v.fPicking) ||
617 (fRotationStyle != v.fRotationStyle)
622 if (!(fSectionPlane == v.fSectionPlane))
623 G4cout <<
"Difference in section planes batch." <<
G4endl;
627 if (fCutawayPlanes.size () != v.fCutawayPlanes.size ()) {
628 G4cout <<
"Difference in no of cutaway planes." <<
G4endl;
631 for (
size_t i = 0; i < fCutawayPlanes.size (); i++) {
632 if (!(fCutawayPlanes[i] == v.fCutawayPlanes[i]))
633 G4cout <<
"Difference in cutaway plane no. " << i << G4endl;
639 if (fExplodeFactor != v.fExplodeFactor)
641 if (fExplodeCentre != v.fExplodeCentre)
650 os <<
"wireframe";
break;
652 os <<
"hlr - hidden lines removed";
break;
654 os <<
"hsr - hidden surfaces removed";
break;
656 os <<
"hlhsr - hidden line, hidden surface removed";
break;
657 default: os <<
"unrecognised";
break;
663 os <<
"View parameters and options:";
665 os <<
"\n Drawing style: ";
666 switch (v.fDrawingStyle) {
668 os <<
"edges, wireframe";
break;
670 os <<
"edges, hidden line removal";
break;
672 os <<
"surfaces, hidden surface removal";
break;
674 os <<
"surfaces and edges, hidden line and surface removal";
break;
675 default: os <<
"unrecognised";
break;
678 os <<
"\n Auxiliary edges: ";
679 if (!v.fAuxEdgeVisible) os <<
"in";
682 os <<
"\n Culling: ";
683 if (v.fCulling) os <<
"on";
686 os <<
"\n Culling invisible objects: ";
687 if (v.fCullInvisible) os <<
"on";
690 os <<
"\n Density culling: ";
691 if (v.fDensityCulling) {
692 os <<
"on - invisible if density less than "
693 << v.fVisibleDensity / (1. *
g /
cm3) <<
" g cm^-3";
697 os <<
"\n Culling daughters covered by opaque mothers: ";
698 if (v.fCullCovered) os <<
"on";
701 os <<
"\n Section flag: ";
702 if (v.fSection) os <<
"true, section/cut plane: " << v.fSectionPlane;
706 os <<
"\n Cutaway planes: ";
707 for (
size_t i = 0; i < v.fCutawayPlanes.size (); i++) {
708 os <<
' ' << v.fCutawayPlanes[i];
712 os <<
"\n No cutaway planes";
715 os <<
"\n Explode factor: " << v.fExplodeFactor
716 <<
" about centre: " << v.fExplodeCentre;
718 os <<
"\n No. of sides used in circle polygon approximation: "
721 os <<
"\n Viewpoint direction: " << v.fViewpointDirection;
723 os <<
"\n Up vector: " << v.fUpVector;
725 os <<
"\n Field half angle: " << v.fFieldHalfAngle;
727 os <<
"\n Zoom factor: " << v.fZoomFactor;
729 os <<
"\n Scale factor: " << v.fScaleFactor;
731 os <<
"\n Current target point: " << v.fCurrentTargetPoint;
733 os <<
"\n Dolly distance: " << v.fDolly;
736 if (v.fLightsMoveWithCamera) os <<
"moves";
737 else os <<
"does not move";
738 os <<
" with camera";
740 os <<
"\n Relative lightpoint direction: "
741 << v.fRelativeLightpointDirection;
743 os <<
"\n Actual lightpoint direction: "
744 << v.fActualLightpointDirection;
746 os <<
"\n Derived parameters for standard view of object of unit radius:";
749 tempVP.fZoomFactor = 1.;
757 os <<
"\n Camera distance: " << cameraDistance;
758 os <<
"\n Near distance: " << nearDistance;
759 os <<
"\n Far distance: " << farDistance;
760 os <<
"\n Front half height: " <<
right;
762 os <<
"\n Default VisAttributes:\n " << v.fDefaultVisAttributes;
764 os <<
"\n Default TextVisAttributes:\n " << v.fDefaultTextVisAttributes;
766 os <<
"\n Default marker: " << v.fDefaultMarker;
768 os <<
"\n Global marker scale: " << v.fGlobalMarkerScale;
770 os <<
"\n Global lineWidth scale: " << v.fGlobalLineWidthScale;
773 if (v.fMarkerNotHidden) os <<
"not ";
774 os <<
"hidden by surfaces.";
776 os <<
"\n Window size hint: "
777 << v.fWindowSizeHintX <<
'x'<< v.fWindowSizeHintX;
779 os <<
"\n X geometry string: " << v.fXGeometryString;
780 os <<
"\n X geometry mask: "
781 << std::showbase << std::hex << v.fGeometryMask
782 << std::noshowbase << std::dec;
784 os <<
"\n Auto refresh: ";
785 if (v.fAutoRefresh) os <<
"true";
788 os <<
"\n Background colour: " << v.fBackgroundColour;
790 os <<
"\n Picking requested: ";
791 if (v.fPicking) os <<
"true";
794 os <<
"\n Rotation style: ";
795 switch (v.fRotationStyle) {
797 os <<
"constrainUpDirection (conventional HEP view)";
break;
799 os <<
"freeRotation (Google-like rotation, using mouse-grab)";
break;
800 default: os <<
"unrecognised";
break;
803 os <<
"\n Vis attributes modifiers: ";
804 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
805 v.fVisAttributesModifiers;
820 (fViewpointDirection != v.fViewpointDirection) ||
823 (fDrawingStyle != v.fDrawingStyle) ||
824 (fAuxEdgeVisible != v.fAuxEdgeVisible) ||
825 (fCulling != v.fCulling) ||
826 (fCullInvisible != v.fCullInvisible) ||
827 (fDensityCulling != v.fDensityCulling) ||
828 (fCullCovered != v.fCullCovered) ||
829 (fSection != v.fSection) ||
832 (fNoOfSides != v.fNoOfSides) ||
833 (fUpVector != v.fUpVector) ||
834 (fFieldHalfAngle != v.fFieldHalfAngle) ||
835 (fZoomFactor != v.fZoomFactor) ||
836 (fScaleFactor != v.fScaleFactor) ||
837 (fCurrentTargetPoint != v.fCurrentTargetPoint) ||
838 (fDolly != v.fDolly) ||
839 (fRelativeLightpointDirection != v.fRelativeLightpointDirection) ||
840 (fLightsMoveWithCamera != v.fLightsMoveWithCamera) ||
841 (fDefaultVisAttributes != v.fDefaultVisAttributes) ||
842 (fDefaultTextVisAttributes != v.fDefaultTextVisAttributes) ||
843 (fDefaultMarker != v.fDefaultMarker) ||
844 (fGlobalMarkerScale != v.fGlobalMarkerScale) ||
845 (fGlobalLineWidthScale != v.fGlobalLineWidthScale) ||
846 (fMarkerNotHidden != v.fMarkerNotHidden) ||
847 (fWindowSizeHintX != v.fWindowSizeHintX) ||
848 (fWindowSizeHintY != v.fWindowSizeHintY) ||
849 (fXGeometryString != v.fXGeometryString) ||
850 (fGeometryMask != v.fGeometryMask) ||
851 (fAutoRefresh != v.fAutoRefresh) ||
852 (fBackgroundColour != v.fBackgroundColour) ||
853 (fPicking != v.fPicking) ||
854 (fRotationStyle != v.fRotationStyle)
858 if (fDensityCulling &&
859 (fVisibleDensity != v.fVisibleDensity))
return true;
862 (!(fSectionPlane == v.fSectionPlane)))
return true;
865 if (fCutawayPlanes.size () != v.fCutawayPlanes.size ())
868 for (
size_t i = 0; i < fCutawayPlanes.size (); i++) {
869 if (!(fCutawayPlanes[i] == v.fCutawayPlanes[i]))
return true;
875 ((fExplodeFactor != v.fExplodeFactor) ||
876 (fExplodeCentre != v.fExplodeCentre)))
return true;
878 if (fVisAttributesModifiers != v.fVisAttributesModifiers)
return true;
887 unsigned int w,h = 0;
888 G4String geomString = geomStringArg;
891 G4String::size_type i = geomString.find_first_of(delimiters);
892 if (i == G4String::npos) {
893 std::istringstream iss(geomString);
898 G4cout <<
"Unrecognised windowSizeHint string: \""
900 <<
"\". Asuuming " << size <<
G4endl;
902 std::ostringstream oss;
903 oss << size <<
'x' << size;
904 geomString = oss.str();
907 fGeometryMask = ParseGeometry( geomString, &x, &y, &w, &h );
910 if ((fGeometryMask & fYValue) == 0)
912 y = fWindowLocationHintY;
914 if ((fGeometryMask & fXValue) == 0)
916 x = fWindowLocationHintX;
921 if ( ((fGeometryMask & fHeightValue) == 0 ) &&
922 ((fGeometryMask & fWidthValue) == 0 )) {
923 h = fWindowSizeHintY;
924 w = fWindowSizeHintX;
925 }
else if ((fGeometryMask & fHeightValue) == 0 ) {
930 G4cout <<
"Unrecognised geometry string \""
932 <<
"\". No Height found. Using Width value instead"
936 if ( ((fGeometryMask & fXValue) == 0 ) ||
937 ((fGeometryMask & fYValue) == 0 )) {
939 x = fWindowLocationHintX;
940 y = fWindowLocationHintY;
943 fXGeometryString = geomString;
946 fWindowSizeHintX = w;
947 fWindowSizeHintY = h;
948 fWindowLocationHintX =
x;
949 fWindowLocationHintY =
y;
951 if ( ((fGeometryMask & fXValue)) &&
952 ((fGeometryMask & fYValue))) {
954 if ( (fGeometryMask & fXNegative) ) {
955 fWindowLocationHintXNegative =
true;
957 fWindowLocationHintXNegative =
false;
959 if ( (fGeometryMask & fYNegative) ) {
960 fWindowLocationHintYNegative =
true;
962 fWindowLocationHintYNegative =
false;
968 if ( fWindowLocationHintXNegative ) {
969 return sizeX + fWindowLocationHintX - fWindowSizeHintX;
971 return fWindowLocationHintX;
975 if ( fWindowLocationHintYNegative ) {
976 return sizeY + fWindowLocationHintY - fWindowSizeHintY;
978 return fWindowLocationHintY;
995 int G4ViewParameters::ParseGeometry (
1000 unsigned int *height)
1003 G4int mask = fNoValue;
1004 register char *strind;
1005 unsigned int tempWidth = 0;
1006 unsigned int tempHeight = 0;
1009 char *nextCharacter;
1010 if ( (
string == NULL) || (*
string ==
'\0')) {
1015 strind = (
char *)
string;
1016 if (*strind !=
'+' && *strind !=
'-' && *strind !=
'x') {
1017 tempWidth = ReadInteger(strind, &nextCharacter);
1018 if (strind == nextCharacter)
1020 strind = nextCharacter;
1021 mask |= fWidthValue;
1023 if (*strind ==
'x' || *strind ==
'X') {
1025 tempHeight = ReadInteger(strind, &nextCharacter);
1026 if (strind == nextCharacter)
1028 strind = nextCharacter;
1029 mask |= fHeightValue;
1032 if ((*strind ==
'+') || (*strind ==
'-')) {
1033 if (*strind ==
'-') {
1035 tempX = -ReadInteger(strind, &nextCharacter);
1036 if (strind == nextCharacter)
1038 strind = nextCharacter;
1044 tempX = ReadInteger(strind, &nextCharacter);
1045 if (strind == nextCharacter)
1047 strind = nextCharacter;
1050 if ((*strind ==
'+') || (*strind ==
'-')) {
1051 if (*strind ==
'-') {
1053 tempY = -ReadInteger(strind, &nextCharacter);
1054 if (strind == nextCharacter)
1056 strind = nextCharacter;
1062 tempY = ReadInteger(strind, &nextCharacter);
1063 if (strind == nextCharacter)
1065 strind = nextCharacter;
1072 if (*strind !=
'\0')
return (0);
1077 if (mask & fWidthValue)
1079 if (mask & fHeightValue)
1080 *height = tempHeight;
1088 G4int G4ViewParameters::ReadInteger(
char *
string,
char **NextString)
1090 register G4int Result = 0;
1095 else if (*
string ==
'-')
1100 for (; (*
string >=
'0') && (*
string <=
'9');
string++)
1102 Result = (Result * 10) + (*
string -
'0');
1104 *NextString = string;
G4bool IsForceAuxEdgeVisible() const
G4String TouchableCommands() const
void IncrementPan(G4double right, G4double up)
G4Vector3D & GetActualLightpointDirection()
G4double GetAlpha() const
void AddCutawayPlane(const G4Plane3D &cutawayPlane)
void SetLightpointDirection(const G4Vector3D &lightpointDirection)
void SetPan(G4double right, G4double up)
G4int SetNoOfSides(G4int nSides)
G4int GetWindowAbsoluteLocationHintX(G4int) const
G4double GetLineWidth() const
G4bool operator!=(const G4ViewParameters &) const
BasicVector3D< T > unit() const
G4int GetWindowAbsoluteLocationHintY(G4int) const
static G4bool GetColour(const G4String &key, G4Colour &result)
const G4Colour & GetColour() const
G4String SceneModifyingCommands() const
Normal3D< T > normal() const
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4double GetFarDistance(G4double cameraDistance, G4double nearDistance, G4double radius) const
void SetVisibleDensity(G4double visibleDensity)
LineStyle GetLineStyle() const
G4double GetCameraDistance(G4double radius) const
void SetViewAndLights(const G4Vector3D &viewpointDirection)
G4double GetNearDistance(G4double cameraDistance, G4double radius) const
G4GLOB_DLL std::ostream G4cout
void ChangeCutawayPlane(size_t index, const G4Plane3D &cutawayPlane)
G4bool IsDaughtersInvisible() const
G4double GetGreen() const
G4double GetFrontHalfHeight(G4double nearDistance, G4double radius) const
void SetXGeometryString(const G4String &)
Point3D< T > point(const Point3D< T > &p) const
G4String DrawingStyleCommands() const
G4int GetForcedLineSegmentsPerCircle() const
void PrintDifferences(const G4ViewParameters &v) const
std::vector< PVNameCopyNo > PVNameCopyNoPath
G4bool IsForceDrawingStyle() const
std::ostream & operator<<(std::ostream &, const BasicVector3D< float > &)
G4String CameraAndLightingCommands(const G4Point3D standardTargetPoint) const
void MultiplyScaleFactor(const G4Vector3D &scaleFactorMultiplier)
short Sign(short a, short b)
BasicVector3D< T > cross(const BasicVector3D< T > &v) const
ForcedDrawingStyle GetForcedDrawingStyle() const
PVNameCopyNoPath::const_iterator PVNameCopyNoPathConstIterator
void SetScreenSize(G4double)