660 {
661 os << "View parameters and options:";
662
663 os << "\n Drawing style: ";
664 switch (v.fDrawingStyle) {
666 os << "edges, wireframe"; break;
668 os << "edges, hidden line removal"; break;
670 os << "surfaces, hidden surface removal"; break;
672 os << "surfaces and edges, hidden line and surface removal"; break;
673 default: os << "unrecognised"; break;
674 }
675
676 os << "\n Auxiliary edges: ";
677 if (!v.fAuxEdgeVisible) os << "in";
678 os << "visible";
679
680 os << "\n Representation style: ";
681 switch (v.fRepStyle) {
683 os << "polyhedron"; break;
685 os << "nurbs"; break;
686 default: os << "unrecognised"; break;
687 }
688
689 os << "\n Culling: ";
690 if (v.fCulling) os << "on";
691 else os << "off";
692
693 os << "\n Culling invisible objects: ";
694 if (v.fCullInvisible) os << "on";
695 else os << "off";
696
697 os << "\n Density culling: ";
698 if (v.fDensityCulling) {
699 os << "on - invisible if density less than "
700 << v.fVisibleDensity / (1. * g / cm3) << " g cm^-3";
701 }
702 else os << "off";
703
704 os << "\n Culling daughters covered by opaque mothers: ";
705 if (v.fCullCovered) os << "on";
706 else os << "off";
707
708 os << "\n Section flag: ";
709 if (v.fSection) os << "true, section/cut plane: " << v.fSectionPlane;
710 else os << "false";
711
713 os << "\n Cutaway planes: ";
714 for (size_t i = 0; i < v.fCutawayPlanes.size (); i++) {
715 os << ' ' << v.fCutawayPlanes[i];
716 }
717 }
718 else {
719 os << "\n No cutaway planes";
720 }
721
722 os << "\n Explode factor: " << v.fExplodeFactor
723 << " about centre: " << v.fExplodeCentre;
724
725 os << "\n No. of sides used in circle polygon approximation: "
726 << v.fNoOfSides;
727
728 os << "\n Viewpoint direction: " << v.fViewpointDirection;
729
730 os << "\n Up vector: " << v.fUpVector;
731
732 os << "\n Field half angle: " << v.fFieldHalfAngle;
733
734 os << "\n Zoom factor: " << v.fZoomFactor;
735
736 os << "\n Scale factor: " << v.fScaleFactor;
737
738 os << "\n Current target point: " << v.fCurrentTargetPoint;
739
740 os << "\n Dolly distance: " << v.fDolly;
741
742 os << "\n Light ";
743 if (v.fLightsMoveWithCamera) os << "moves";
744 else os << "does not move";
745 os << " with camera";
746
747 os << "\n Relative lightpoint direction: "
748 << v.fRelativeLightpointDirection;
749
750 os << "\n Actual lightpoint direction: "
751 << v.fActualLightpointDirection;
752
753 os << "\n Derived parameters for standard view of object of unit radius:";
755 tempVP.fDolly = 0.;
756 tempVP.fZoomFactor = 1.;
764 os << "\n Camera distance: " << cameraDistance;
765 os << "\n Near distance: " << nearDistance;
766 os << "\n Far distance: " << farDistance;
767 os << "\n Front half height: " << right;
768
769 os << "\n Default VisAttributes:\n " << v.fDefaultVisAttributes;
770
771 os << "\n Default TextVisAttributes:\n " << v.fDefaultTextVisAttributes;
772
773 os << "\n Default marker: " << v.fDefaultMarker;
774
775 os << "\n Global marker scale: " << v.fGlobalMarkerScale;
776
777 os << "\n Global lineWidth scale: " << v.fGlobalLineWidthScale;
778
779 os << "\n Marker ";
780 if (v.fMarkerNotHidden) os << "not ";
781 os << "hidden by surfaces.";
782
783 os << "\n Window size hint: "
784 << v.fWindowSizeHintX << 'x'<< v.fWindowSizeHintX;
785
786 os << "\n X geometry string: " << v.fXGeometryString;
787 os << "\n X geometry mask: "
788 << std::showbase << std::hex << v.fGeometryMask
789 << std::noshowbase << std::dec;
790
791 os << "\n Auto refresh: ";
792 if (v.fAutoRefresh) os << "true";
793 else os << "false";
794
795 os << "\n Background colour: " << v.fBackgroundColour;
796
797 os << "\n Picking requested: ";
798 if (v.fPicking) os << "true";
799 else os << "false";
800
801 os << "\n Rotation style: ";
802 switch (v.fRotationStyle) {
804 os << "constrainUpDirection (conventional HEP view)"; break;
806 os << "freeRotation (Google-like rotation, using mouse-grab)"; break;
807 default: os << "unrecognised"; break;
808 }
809
810 os << "\n Vis attributes modifiers: ";
811 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
812 v.fVisAttributesModifiers;
813 if (vams.empty()) {
814 os << "None";
815 } else {
816 os << vams;
817 }
818
819 return os;
820}
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