111 #ifdef G4HEPREPFILEDEBUG   112     G4cout << 
"G4HepRepFileSceneHandler::BeginPrimitives2D() " << 
G4endl;
   119 #ifdef G4HEPREPFILEDEBUG   120     G4cout << 
"G4HepRepFileSceneHandler::EndPrimitives2D() " << 
G4endl;
   127 #ifdef G4HEPREPFILEDEBUG   128 void G4HepRepFileSceneHandler::PrintThings() {
   130     "  with transformation "   139             "\n  current physical volume: "   141             "\n  current logical volume: "   143             "\n  current depth of geometry tree: "   152 #ifdef G4HEPREPFILEDEBUG   154     "G4HepRepFileSceneHandler::AddSolid(const G4Box& box) called for "   210 #ifdef G4HEPREPFILEDEBUG   212     "G4HepRepFileSceneHandler::AddSolid(const G4Cons& cons) called for "   221     G4bool linedUpWithAnAxis = (std::fabs(r.
phiX())<=.001 ||  
   222                                 std::fabs(r.
phiY())<=.001 || 
   223                                 std::fabs(r.
phiZ())<=.001 ||
   224                                 std::fabs(r.
phiX()-
pi)<=.001 ||
   225                                 std::fabs(r.
phiY()-
pi)<=.001 ||
   226                                 std::fabs(r.
phiZ()-
pi)<=.001);  
   275 #ifdef G4HEPREPFILEDEBUG   277     "G4HepRepFileSceneHandler::AddSolid(const G4Tubs& tubs) called for "   286     G4bool linedUpWithAnAxis = (std::fabs(r.
phiX())<=.001 ||  
   287                                 std::fabs(r.
phiY())<=.001 || 
   288                                 std::fabs(r.
phiZ())<=.001 ||
   289                                 std::fabs(r.
phiX()-
pi)<=.001 ||
   290                                 std::fabs(r.
phiY()-
pi)<=.001 ||
   291                                 std::fabs(r.
phiZ()-
pi)<=.001);  
   342 #ifdef G4HEPREPFILEDEBUG   344     "G4HepRepFileSceneHandler::AddSolid(const G4Trd& trd) called for "   402 #ifdef G4HEPREPFILEDEBUG   404     "G4HepRepFileSceneHandler::AddSolid(const G4Trap& trap) called for "   414 #ifdef G4HEPREPFILEDEBUG   416     "G4HepRepFileSceneHandler::AddSolid(const G4Sphere& sphere) called for "   426 #ifdef G4HEPREPFILEDEBUG   428     "G4HepRepFileSceneHandler::AddSolid(const G4Para& para) called for "   438 #ifdef G4HEPREPFILEDEBUG   440     "G4HepRepFileSceneHandler::AddSolid(const G4Torus& torus) called for "   450 #ifdef G4HEPREPFILEDEBUG   452     "G4HepRepFileSceneHandler::AddSolid(const G4Polycone& polycone) called for "   462 #ifdef G4HEPREPFILEDEBUG   464     "G4HepRepFileSceneHandler::AddSolid(const G4Polyhedra& polyhedra) called for "   474 #ifdef G4HEPREPFILEDEBUG   476     "G4HepRepFileSceneHandler::AddSolid(const G4Solid& solid) called for "   486 #ifdef G4HEPREPFILEDEBUG   487     G4cout << 
"G4HepRepFileSceneHandler::AddCompound(const G4VTrajectory&) " << 
G4endl;
   493       (
"G4HepRepFileSceneHandler::AddCompound(const G4VTrajectory&)",
   499         new std::vector<G4AttValue>;
   501         new std::map<G4String,G4AttDef>;
   504     std::vector<G4AttValue>::iterator iAttVal;
   505     std::map<G4String,G4AttDef>::const_iterator iAttDef;
   510     if (rawTrajAttValues) {
   514             G4cout << 
"G4HepRepFileSceneHandler::AddCompound(traj):"   515             "\nERROR found during conversion to standard trajectory attributes."   518 #ifdef G4HEPREPFILEDEBUG    520             "G4HepRepFileSceneHandler::AddCompound(traj): standardised attributes:\n"   523         delete rawTrajAttValues;
   541     if (strcmp(
"Trajectories",previousName)!=0) {
   555                     G4String category = iAttDef->second.GetCategory();
   556                     if (strcmp(category,
"Draw")!=0 &&
   557                         strcmp(category,
"Physics")!=0 &&
   558                         strcmp(category,
"Association")!=0 &&
   559                         strcmp(category,
"PickAction")!=0)
   560                         category = 
"Physics";
   562                                                category, iAttDef->second.GetExtra());
   575             std::vector<G4AttValue>* rawPointAttValues = aTrajectoryPoint->
CreateAttValues();
   576             std::vector<G4AttValue>* pointAttValues =
   577             new std::vector<G4AttValue>;
   578             std::map<G4String,G4AttDef>* pointAttDefs =
   579             new std::map<G4String,G4AttDef>;
   583             if (rawPointAttValues) {
   585                                           aTrajectoryPoint->
GetAttDefs()).Standard(pointAttValues,pointAttDefs);
   587                     G4cout << 
"G4HepRepFileSceneHandler::AddCompound(traj):"   588                     "\nERROR found during conversion to standard first point attributes." << 
G4endl;
   592                 if (pointAttValues && pointAttDefs) {
   593                     for (iAttVal = pointAttValues->begin();
   594                          iAttVal != pointAttValues->end(); ++iAttVal) {
   596                         pointAttDefs->find(iAttVal->GetName());
   597                         if (iAttDef != pointAttDefs->end()) {
   600                             G4String category = iAttDef->second.GetCategory();
   601                             if (strcmp(category,
"Draw")!=0 &&
   602                                 strcmp(category,
"Physics")!=0 &&
   603                                 strcmp(category,
"Association")!=0 &&
   604                                 strcmp(category,
"PickAction")!=0)
   605                                 category = 
"Physics";
   609                             if (strcmp(iAttVal->GetName(),
"Aux-X")!=0 &&
   610                                 strcmp(iAttVal->GetName(),
"Aux-Y")!=0 &&
   611                                 strcmp(iAttVal->GetName(),
"Aux-Z")!=0 &&
   612                                 strcmp(iAttVal->GetName(),
"Pos-X")!=0 &&
   613                                 strcmp(iAttVal->GetName(),
"Pos-Y")!=0 &&
   614                                 strcmp(iAttVal->GetName(),
"Pos-Z")!=0)
   616                                                         category, iAttDef->second.GetExtra());
   620                 delete rawPointAttValues;
   625                 delete pointAttValues;
   662         redness = colour.
GetRed();
   670         if (redness==0. && greenness==0. && blueness==0.) {
   677         if (strcmp(
"Trajectory Step Points",previousName)!=0) {
   697             std::vector<G4AttValue>* rawPointAttValues = aTrajectoryPoint->
CreateAttValues();
   698             std::vector<G4AttValue>* pointAttValues =
   699                 new std::vector<G4AttValue>;
   700             std::map<G4String,G4AttDef>* pointAttDefs =
   701                 new std::map<G4String,G4AttDef>;
   705             if (rawPointAttValues) {
   707                                           aTrajectoryPoint->
GetAttDefs()).Standard(pointAttValues,pointAttDefs);
   709                     G4cout << 
"G4HepRepFileSceneHandler::AddCompound(traj):"   710                     "\nERROR found during conversion to standard point attributes." << 
G4endl;
   714                 if (pointAttValues) {
   715                     for (iAttVal = pointAttValues->begin();
   716                          iAttVal != pointAttValues->end(); ++iAttVal)
   720                         if (strcmp(iAttVal->GetName(),
"Aux-X")!=0 &&
   721                             strcmp(iAttVal->GetName(),
"Aux-Y")!=0 &&
   722                             strcmp(iAttVal->GetName(),
"Aux-Z")!=0 &&
   723                             strcmp(iAttVal->GetName(),
"Pos-X")!=0 &&
   724                             strcmp(iAttVal->GetName(),
"Pos-Y")!=0 &&
   725                             strcmp(iAttVal->GetName(),
"Pos-Z")!=0)
   732                         delete pointAttValues;
   733                         delete rawPointAttValues;
   760         redness = colour.
GetRed();
   768         if (redness==0. && greenness==0. && blueness==0.) {
   775         if (strcmp(
"Trajectory Auxiliary Points",previousName)!=0) {
   795             std::vector<G4AttValue>* rawPointAttValues = aTrajectoryPoint->
CreateAttValues();
   796             std::vector<G4AttValue>* pointAttValues =
   797                 new std::vector<G4AttValue>;
   798             std::map<G4String,G4AttDef>* pointAttDefs =
   799                 new std::map<G4String,G4AttDef>;
   803             if (rawPointAttValues) {
   805                                           aTrajectoryPoint->
GetAttDefs()).Standard(pointAttValues,pointAttDefs);
   807                     G4cout << 
"G4HepRepFileSceneHandler::AddCompound(traj):"   808                     "\nERROR found during conversion to standard point attributes." << 
G4endl;
   812                 if (pointAttValues) {
   813                     for (iAttVal = pointAttValues->begin();
   814                          iAttVal != pointAttValues->end(); ++iAttVal)
   818                         if (strcmp(iAttVal->GetName(),
"Aux-X")!=0 &&
   819                             strcmp(iAttVal->GetName(),
"Aux-Y")!=0 &&
   820                             strcmp(iAttVal->GetName(),
"Aux-Z")!=0 &&
   821                             strcmp(iAttVal->GetName(),
"Pos-X")!=0 &&
   822                             strcmp(iAttVal->GetName(),
"Pos-Y")!=0 &&
   823                             strcmp(iAttVal->GetName(),
"Pos-Z")!=0)
   830                         delete pointAttValues;
   831                         delete rawPointAttValues;
   837             const std::vector<G4ThreeVector>* auxiliaries = aTrajectoryPoint->
GetAuxiliaryPoints();
   838             if (0 != auxiliaries) {
   839                 for (
size_t iAux=0; iAux<auxiliaries->size(); ++iAux) {
   851 #ifdef G4HEPREPFILEDEBUG   852     G4cout << 
"G4HepRepFileSceneHandler::AddCompound(G4VHit&) " << 
G4endl;
   858         new std::vector<G4AttValue>;
   860         new std::map<G4String,G4AttDef>;
   863     std::vector<G4AttValue>::iterator iAttVal;
   864     std::map<G4String,G4AttDef>::const_iterator iAttDef;
   868     if (rawHitAttValues) {
   872             G4cout << 
"G4HepRepFileSceneHandler::AddCompound(hit):"   873             "\nERROR found during conversion to standard hit attributes."   876 #ifdef G4HEPREPFILEDEBUG    878             "G4HepRepFileSceneHandler::AddCompound(hit): standardised attributes:\n"   881         delete rawHitAttValues;
   899             if (strcmp(iAttVal->GetName(),
"HitType")==0) {
   900                 hitType = iAttVal->GetValue();
   912     if (strcmp(hitType,previousName)!=0) {
   922                 iAttDef = 
hitAttDefs->find(iAttVal->GetName());
   926                     G4String category = iAttDef->second.GetCategory();
   927                     if (strcmp(category,
"Draw")!=0 &&
   928                         strcmp(category,
"Physics")!=0 &&
   929                         strcmp(category,
"Association")!=0 &&
   930                         strcmp(category,
"PickAction")!=0)
   931                         category = 
"Physics";
   933                                                category, iAttDef->second.GetExtra());
   955             std::vector<G4AttValue>::iterator iAttVal;
   978             std::vector<G4AttValue>::iterator iAttVal;
   995 #ifdef G4HEPREPFILEDEBUG   997     "G4HepRepFileSceneHandler::AddPrimitive(const G4Polyline& polyline) called:"   998     "\n  polyline: " << polyline
  1010             G4cout << 
"HepRepFile does not currently support 2D lines." << 
G4endl;
  1027     for (
size_t i=0; i < polyline.size(); i++) {
  1036 #ifdef G4HEPREPFILEDEBUG  1038     "G4HepRepFileSceneHandler::AddPrimitive(const G4Polymarker& line) called"  1050             G4cout << 
"HepRepFile does not currently support 2D lines." << 
G4endl;
  1058     if (sizeType==
world)
  1075     for (
size_t i=0; i < line.size(); i++) {
  1083 #ifdef G4HEPREPFILEDEBUG  1085     "G4HepRepFileSceneHandler::AddPrimitive(const G4Text& text) called:"  1093             G4cout << 
"HepRepFile does not currently support 3D text." << 
G4endl;
  1094             G4cout << 
"HepRep browsers can directly display text attributes on request." << 
G4endl;
  1095             G4cout << 
"See Application Developers Guide for how to attach attributes to viewable objects." << 
G4endl;
  1103     if (sizeType==
world)
  1118     float redness = colour.
GetRed();
  1119     float greenness = colour.
GetGreen();
  1120     float blueness = colour.
GetBlue();
  1123     if (redness==0. && greenness==0. && blueness==0.) {
  1139 #ifdef G4HEPREPFILEDEBUG  1141     "G4HepRepFileSceneHandler::AddPrimitive(const G4Circle& circle) called:"  1154             G4cout << 
"HepRepFile does not currently support 2D circles." << 
G4endl;
  1162     if (sizeType==
world)
  1185 #ifdef G4HEPREPFILEDEBUG  1187     "G4HepRepFileSceneHandler::AddPrimitive(const G4Square& square) called:"  1200             G4cout << 
"HepRepFile does not currently support 2D squares." << 
G4endl;
  1208     if (sizeType==
world)
  1231 #ifdef G4HEPREPFILEDEBUG  1233     "G4HepRepFileSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) called."  1268         } 
while (notLastEdge);
  1269     } 
while (notLastFace);
  1280 #ifdef G4HEPREPFILEDEBUG  1282     "G4HepRepFileSceneHandler::AddHepRepInstance called."  1291     G4int currentDepth = 0;
  1299 #ifdef G4HEPREPFILEDEBUG  1331         if (strcmp(
"Text",primName)==0) {
  1334             if (strcmp(
"Line",primName)==0) {
  1339                     strcmp(
"Square",primName)==0)
  1345                         strcmp(
"Circle",primName)==0)
  1361     } 
else if (pCurrentPV==0) {
  1369         if (strcmp(
"Text",primName)==0) {
  1372             if (strcmp(
"Line",primName)==0) {
  1401             typedef std::vector<PVNodeID> 
PVPath;
  1403             PVPath::const_reverse_iterator ri = ++drawnPVPath.rbegin();
  1404             G4int drawnMotherDepth;
  1405             if (ri != drawnPVPath.rend()) {
  1407                 drawnMotherDepth = ri->GetNonCulledDepth();
  1411                 drawnMotherDepth = -1;
  1415             while (drawnMotherDepth < (currentDepth-1)) {
  1416                 G4String culledParentName = 
"Culled parent of " + pCurrentPV->
GetName();
  1420                 drawnMotherDepth ++;
  1473         redness = colour.
GetRed();
  1478         if (redness==0. && greenness==0. && blueness==0.) {
  1484 #ifdef G4HEPREPFILEDEBUG  1486         "G4HepRepFileSceneHandler::AddHepRepInstance using default colour."  1495     if (strcmp(primName,
"Point")==0)
  1505 #ifdef G4HEPREPFILEDEBUG  1507     "G4HepRepFileSceneHandler::CheckFileOpen called."  1522         G4cout << 
"HepRepFile writing to " << newFileSpec << 
G4endl;
  1531         versionString = versionString.substr(1,versionString.size()-2);
  1532         versionString = 
" Geant4 version " + versionString + 
"   " + 
G4Date;
 
const std::vector< G4PhysicalVolumeNodeID > & GetDrawnPVPath() const
 
G4bool GetDrawAuxPts() const
 
virtual G4double getScale()
 
const G4VisAttributes * GetVisAttributes() const
 
G4double GetXHalfLength1() const
 
virtual void AddSolid(const G4Box &)
 
virtual G4String getFileName()
 
G4Colour GetAuxPtsColour() const
 
void AddCompound(const G4VTrajectory &)
 
G4Polymarker::MarkerType GetAuxPtsType() const
 
G4HepRepFileSceneHandler(G4VGraphicsSystem &system, const G4String &name)
 
G4double GetOuterRadiusPlusZ() const
 
virtual void BeginModeling()
 
virtual G4bool renderCylAsPolygons()
 
G4double GetDeltaPhiAngle() const
 
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
 
G4double GetYHalfLength1() const
 
G4double GetWorldRadius() const
 
G4Point3D GetPosition() const
 
G4double GetInnerRadiusMinusZ() const
 
G4double GetStepPtsSize() const
 
virtual G4VTrajectoryPoint * GetPoint(G4int i) const =0
 
void AddPrimitive(const G4Polyline &)
 
void addAttValue(const char *name, const char *value)
 
void AddSolid(const G4Box &)
 
static G4String ConvertToString(G4bool boolVal)
 
G4double GetDensity() const
 
G4Polymarker::MarkerType GetStepPtsType() const
 
G4Transform3D fObjectTransformation
 
const G4VTrajectoryModel * CurrentTrajDrawModel() const
 
void AddHepRepInstance(const char *primName, const G4Visible visible)
 
HepGeom::Point3D< G4double > G4Point3D
 
G4double GetXOffset() const
 
std::vector< G4AttValue > * hitAttValues
 
std::map< G4String, G4AttDef > * hitAttDefs
 
G4double GetGreen() const
 
G4bool GetStepPtsVisible() const
 
virtual G4GeometryType GetEntityType() const =0
 
virtual const std::vector< G4ThreeVector > * GetAuxiliaryPoints() const
 
G4int GetNoFacets() const
 
const G4VisTrajContext * trajContext
 
virtual std::vector< G4AttValue > * CreateAttValues() const
 
G4double GetZHalfLength() const
 
G4double GetXHalfLength() const
 
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
 
virtual G4bool getOverwrite()
 
virtual G4String getFileDir()
 
virtual int GetPointEntries() const =0
 
G4HepRepFileXMLWriter * hepRepXMLWriter
 
const G4VisTrajContext & GetContext() const
 
G4GLOB_DLL std::ostream G4cout
 
void addPoint(double x, double y, double z)
 
void addAttDef(const char *name, const char *desc, const char *type, const char *extra)
 
G4double GetYOffset() const
 
const G4String & GetName() const
 
G4Colour GetStepPtsColour() const
 
G4double GetZHalfLength() const
 
G4bool IsRootRegion() const
 
virtual std::vector< G4AttValue > * CreateAttValues() const
 
G4PhysicalVolumeModel::G4PhysicalVolumeNodeID PVNodeID
 
static const G4String G4Version
 
virtual G4bool getCullInvisibles()
 
static const double twopi
 
static G4VisManager * GetInstance()
 
G4int GetCurrentDepth() const
 
virtual void EndModeling()
 
static G4HepRepMessenger * GetInstance()
 
virtual std::vector< G4AttValue > * CreateAttValues() const
 
G4double GetOuterRadius() const
 
virtual ~G4HepRepFileSceneHandler()
 
std::map< G4String, G4AttDef > * trajAttDefs
 
std::vector< PVNodeID > PVPath
 
static const G4String G4Date
 
G4LogicalVolume * GetCurrentLV() const
 
G4double GetXHalfLength2() const
 
G4double GetInnerRadiusPlusZ() const
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
virtual void BeginPrimitives2D(const G4Transform3D &objectTransformation)
 
const G4String & GetName() const
 
G4double GetYHalfLength() const
 
const G4String & GetName() const
 
virtual const G4ThreeVector GetPosition() const =0
 
const G4VisAttributes * fpVisAttribs
 
virtual void AddCompound(const G4VTrajectory &)
 
static G4int fSceneIdCount
 
std::vector< G4AttValue > * trajAttValues
 
G4double GetOuterRadiusMinusZ() const
 
void BeginPrimitives2D(const G4Transform3D &objectTransformation)
 
G4Region * GetRegion() const
 
G4double GetMarkerSize(const G4VMarker &, MarkerSizeType &)
 
G4VPhysicalVolume * GetCurrentPV() const
 
system("rm -rf microbeam.root")
 
G4Material * GetCurrentMaterial() const
 
G4bool warnedAbout2DMarkers
 
const G4Colour & GetColour(const G4Visible &)
 
G4double GetAuxPtsSize() const
 
G4double GetInnerRadius() const
 
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
 
G4bool GetNextVertex(G4Point3D &vertex, G4int &edgeFlag) const
 
static PROLOG_HANDLER error
 
G4bool fReadyForTransients
 
void addType(const char *name, int newTypeDepth)
 
G4double GetYHalfLength2() const
 
G4double GetZHalfLength() const
 
void open(const char *filespec)
 
const G4String & GetName() const
 
G4double GetRadlen() const
 
G4HepRepFileXMLWriter * GetHepRepXMLWriter()
 
G4bool GetDrawStepPts() const
 
G4double GetZHalfLength() const
 
G4VSolid * GetSolid() const
 
G4double GetDeltaPhiAngle() const
 
G4bool GetNextNormal(G4Normal3D &normal) const
 
G4bool GetAuxPtsVisible() const
 
virtual void EndPrimitives2D()
 
void ClearTransientStore()
 
const G4Colour & GetTextColour(const G4Text &)
 
const G4Colour & GetColour() const