G4NavigationLevelRep.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 //  1 October 1997 J.Apostolakis Initial version. 
00030 //                        
00031 // ----------------------------------------------------------------------
00032 
00033 #include "G4NavigationLevelRep.hh"
00034 
00035 G4Allocator<G4NavigationLevelRep> aNavigLevelRepAllocator;
00036 
00037 // Constructors
00038 //--------------
00039 
00040 G4NavigationLevelRep::G4NavigationLevelRep( G4VPhysicalVolume* pPhysVol,
00041                                       const G4AffineTransform& afTransform,
00042                                             EVolume            volTp,
00043                                             G4int              repNo )
00044    :  sTransform(afTransform),
00045       sPhysicalVolumePtr(pPhysVol),
00046       sReplicaNo(repNo),
00047       sVolumeType(volTp),
00048       fCountRef(1) 
00049 {
00050 }
00051 
00052 G4NavigationLevelRep::G4NavigationLevelRep()
00053    :  sTransform(),
00054       sPhysicalVolumePtr(0),
00055       sReplicaNo(-1),
00056       sVolumeType(kReplica),
00057       fCountRef(1) 
00058 {
00059 }
00060 
00061 G4NavigationLevelRep::G4NavigationLevelRep( G4VPhysicalVolume* pPhysVol,
00062                                       const G4AffineTransform& levelAbove,
00063                                       const G4AffineTransform& relativeCurrent,
00064                                             EVolume            volTp,
00065                                             G4int              repNo )
00066    :  sPhysicalVolumePtr(pPhysVol),
00067       sReplicaNo(repNo),
00068       sVolumeType(volTp),
00069       fCountRef(1) 
00070 {
00071   sTransform.InverseProduct( levelAbove, relativeCurrent );
00072 }
00073 
00074 G4NavigationLevelRep::G4NavigationLevelRep( G4NavigationLevelRep& right )
00075    :  sTransform(right.sTransform), 
00076       sPhysicalVolumePtr(right.sPhysicalVolumePtr),
00077       sReplicaNo(right.sReplicaNo),
00078       sVolumeType(right.sVolumeType),
00079       fCountRef(1) 
00080 {
00081 }
00082 
00083 // Destructor
00084 //--------------
00085 
00086 G4NavigationLevelRep::~G4NavigationLevelRep()
00087 {
00088 #ifdef DEBUG_NAVIG_LEVEL
00089   if(fCountRef>0)
00090   {
00091     G4Exception("G4NavigationLevelRep::~G4NavigationLevelRep()",
00092                 "GeomVol0003", FatalException,
00093                 "Deletion of data-level object with positive reference count.");
00094   } 
00095 #endif
00096 }
00097 
00098 // Operators
00099 // --------------
00100 
00101 G4NavigationLevelRep& 
00102 G4NavigationLevelRep::operator=( const G4NavigationLevelRep &right )
00103 { 
00104   if ( &right != this )
00105   {
00106     sTransform =  right.sTransform;  
00107     sPhysicalVolumePtr = right.sPhysicalVolumePtr;
00108     sVolumeType = right.sVolumeType;
00109     sReplicaNo =  right.sReplicaNo;
00110     fCountRef = right.fCountRef;
00111   }
00112   return *this;
00113 } 

Generated on Mon May 27 17:48:56 2013 for Geant4 by  doxygen 1.4.7