920 {
921 os << "View parameters and options:";
922
923 os << "\n Drawing style: " << v.fDrawingStyle;
924
925 os << "\n Number of cloud points: " << v.fNumberOfCloudPoints;
926
927 os << "\n Auxiliary edges: ";
928 if (!v.fAuxEdgeVisible) os << "in";
929 os << "visible";
930
931 os << "\n Culling: ";
932 if (v.fCulling) os << "on";
933 else os << "off";
934
935 os << "\n Culling invisible objects: ";
936 if (v.fCullInvisible) os << "on";
937 else os << "off";
938
939 os << "\n Density culling: ";
940 if (v.fDensityCulling) {
941 os << "on - invisible if density less than "
942 << v.fVisibleDensity / (1. * g / cm3) << " g cm^-3";
943 }
944 else os << "off";
945
946 os << "\n Culling daughters covered by opaque mothers: ";
947 if (v.fCullCovered) os << "on";
948 else os << "off";
949
950 os << "\n Colour by density: ";
951 if (v.fCBDAlgorithmNumber <= 0) {
952 os << "inactive";
953 } else {
954 os << "Algorithm " << v.fCBDAlgorithmNumber << ", Parameters:";
955 for (auto p: v.fCBDParameters) {
957 }
958 }
959
960 os << "\n Section flag: ";
961 if (v.fSection) os << "true, section/cut plane: " << v.fSectionPlane;
962 else os << "false";
963
965 os << "\n Cutaway planes: ";
966 for (const auto& fCutawayPlane : v.fCutawayPlanes) {
967 os << ' ' << fCutawayPlane;
968 }
969 }
970 else {
971 os << "\n No cutaway planes";
972 }
973
974 os << "\n Explode factor: " << v.fExplodeFactor
975 << " about centre: " << v.fExplodeCentre;
976
977 os << "\n No. of sides used in circle polygon approximation: "
978 << v.fNoOfSides;
979
980 os << "\n Viewpoint direction: " << v.fViewpointDirection;
981
982 os << "\n Up vector: " << v.fUpVector;
983
984 os << "\n Field half angle: " << v.fFieldHalfAngle;
985
986 os << "\n Zoom factor: " << v.fZoomFactor;
987
988 os << "\n Scale factor: " << v.fScaleFactor;
989
990 os << "\n Current target point: " << v.fCurrentTargetPoint;
991
992 os << "\n Dolly distance: " << v.fDolly;
993
994 os << "\n Light ";
995 if (v.fLightsMoveWithCamera) os << "moves";
996 else os << "does not move";
997 os << " with camera";
998
999 os << "\n Relative lightpoint direction: "
1000 << v.fRelativeLightpointDirection;
1001
1002 os << "\n Actual lightpoint direction: "
1003 << v.fActualLightpointDirection;
1004
1005 os << "\n Derived parameters for standard view of object of unit radius:";
1007 tempVP.fDolly = 0.;
1008 tempVP.fZoomFactor = 1.;
1016 os << "\n Camera distance: " << cameraDistance;
1017 os << "\n Near distance: " << nearDistance;
1018 os << "\n Far distance: " << farDistance;
1019 os << "\n Front half height: " << right;
1020
1021 os << "\n Default VisAttributes:\n " << v.fDefaultVisAttributes;
1022
1023 os << "\n Default TextVisAttributes:\n " << v.fDefaultTextVisAttributes;
1024
1025 os << "\n Default marker:\n " << v.fDefaultMarker;
1026
1027 os << "\n Global marker scale: " << v.fGlobalMarkerScale;
1028
1029 os << "\n Global lineWidth scale: " << v.fGlobalLineWidthScale;
1030
1031 os << "\n Marker ";
1032 if (v.fMarkerNotHidden) os << "not ";
1033 os << "hidden by surfaces.";
1034
1035 os << "\n Window size hint: "
1036 << v.fWindowSizeHintX << 'x'<< v.fWindowSizeHintX;
1037
1038 os << "\n X geometry string: " << v.fXGeometryString;
1039 os << "\n X geometry mask: "
1040 << std::showbase << std::hex << v.fGeometryMask
1041 << std::noshowbase << std::dec;
1042
1043 os << "\n Auto refresh: ";
1044 if (v.fAutoRefresh) os << "true";
1045 else os << "false";
1046
1047 os << "\n Background colour: " << v.fBackgroundColour;
1048
1049 os << "\n Picking requested: ";
1050 if (v.fPicking) os << "true";
1051 else os << "false";
1052
1053 os << "\n Rotation style: ";
1054 switch (v.fRotationStyle) {
1056 os << "constrainUpDirection (conventional HEP view)"; break;
1058 os << "freeRotation (Google-like rotation, using mouse-grab)"; break;
1059 default: os << "unrecognised"; break;
1060 }
1061
1062 os << "\nVis attributes modifiers: ";
1063 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
1064 v.fVisAttributesModifiers;
1065 if (vams.empty()) {
1066 os << "None";
1067 } else {
1068 os << vams;
1069 }
1070
1071 os << "\nTime window parameters:"
1072 <<
"\n Start time: " << v.fTimeParameters.
fStartTime/
ns <<
" ns"
1073 <<
"\n End time: " << v.fTimeParameters.
fEndTime/
ns <<
" ns"
1074 <<
"\n Fade factor: " << v.fTimeParameters.
fFadeFactor;
1076 os << "\n Head time display not requested.";
1077 } else {
1078 os
1079 << "\n Head time position: "
1084 }
1086 os << "\n Light front display not requested.";
1087 } else {
1088 os
1089 << "\n Light front position: "
1095 }
1096
1097 os << "\nSpecial Mesh Rendering";
1098 if (v.fSpecialMeshRendering) {
1099 os << " requested with option \"" << v.fSpecialMeshRenderingOption;
1100 os << "\" for ";
1101 if (v.fSpecialMeshVolumes.empty()) {
1102 os << "any mesh";
1103 } else {
1104 os << "selected meshes";
1105 for (const auto& vol: v.fSpecialMeshVolumes) {
1106 os << "\n " << vol.GetName() << ':' << vol.GetCopyNo();
1107 }
1108 }
1109 } else os << ": off";
1110
1111 os << "\nTransparency by depth: " << v.fTransparencyByDepth
1112 << ", option: " << v.fTransparencyByDepthOption;
1113
1114 os << "\nZoom to cursor requested: ";
1115 if (v.fZoomToCursor) os << "true";
1116 else os << "false";
1117
1118 os << "\nSmooth dots requested: ";
1119 if (v.fDotsSmooth) os << "true";
1120 else os << "false";
1121
1122 os << "\nDots size: " << v.fDotsSize;
1123
1124 return os;
1125}
G4double GetCameraDistance(G4double radius) const
G4double GetFarDistance(G4double cameraDistance, G4double nearDistance, G4double radius) const
G4double GetFrontHalfHeight(G4double nearDistance, G4double radius) const
G4double GetNearDistance(G4double cameraDistance, G4double radius) const
G4double fDisplayLightFrontRed
G4double fDisplayHeadTimeY
G4double fDisplayLightFrontT
G4double fDisplayHeadTimeRed
G4double fDisplayLightFrontY
G4double fDisplayLightFrontZ
G4double fDisplayLightFrontGreen
G4double fDisplayLightFrontBlue
G4bool fDisplayLightFront
G4double fDisplayHeadTimeBlue
G4double fDisplayHeadTimeSize
G4double fDisplayLightFrontX
G4double fDisplayHeadTimeGreen
G4double fDisplayHeadTimeX