Import Geant4 3.0.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.10 2000/06/06 13:18:51 gcosmo Exp $
|
||||
$Id: History,v 1.15 2000/11/20 17:31:33 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,38 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
November 20, 2000 G. Cosmo geommng-V02-00-04
|
||||
- Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options:
|
||||
o commented out variables declared and not used.
|
||||
o fixed declaration of variables used before being initialised.
|
||||
o fixed order of initialisation of member data in constructors.
|
||||
o fixed usage of unsigned-int (size_t) for array indeces.
|
||||
|
||||
November 16, 2000 V.Grichine geommng-V02-00-03
|
||||
- Fix in G4VSolid::CalculateClippedPoligonExtent(): removed assumption
|
||||
that pMin<pMax by eliminating "else" condition. (D.Williams)
|
||||
|
||||
November 9, 2000 G.Cosmo geommng-V02-00-02
|
||||
- Included test directory containing "voxel" test by L.Grainac.
|
||||
|
||||
November 1, 2000 G.Cosmo geommng-V02-00-01
|
||||
- QA code revision and cleanup (+fixes from CodeWizard filtering):
|
||||
o Added (private) declarations of copy constructor and assignment
|
||||
operator where needed.
|
||||
o Added "const" qualifier to accessor methods, wherever needed.
|
||||
o Added equality check on operator= where needed.
|
||||
o Made destructor "virtual" for classes having virtual methods,
|
||||
wherever missing.
|
||||
o Changed virtual functions to non-inline wherever's the case.
|
||||
o Added "inline" qualifier to methods' declarations.
|
||||
o Replaced usage of "do-loops" with "while-loops" in
|
||||
G4VoxelLimits::ClipToLimits().
|
||||
o General cosmetics
|
||||
|
||||
September 11, 2000 G.Cosmo geommng-V02-00-00
|
||||
- G4SolidStore.cc: fixed bug in destructor causing memory corruption at
|
||||
application exit when Boolean solids are involved (bug #154).
|
||||
|
||||
June 06, 2000 G.Cosmo geommng-V01-01-00
|
||||
|
||||
- G4DrawVoxels.hh: removed line '#define G4DrawVoxelsDebug' left in place
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4AffineTransform.hh,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4AffineTransform
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4AffineTransform.icc,v 1.3 1999/12/15 14:49:50 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// G4AffineTransformation Inline implementation
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4DrawVoxels.hh,v 1.9 2000/06/06 13:18:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4DrawVoxels
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4GeometryManager.hh,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4GeometryManager
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalSurface.hh,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4LogicalSurface.hh,v 1.4 2000/11/01 15:39:32 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Class G4LogicalSurface
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalSurface.icc,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Surface Class Inline Methods
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalVolume.hh,v 1.5 2000/04/20 16:49:46 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4LogicalVolume.hh,v 1.6 2000/11/01 15:39:32 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4LogicalVolume
|
||||
@@ -112,33 +112,33 @@ class G4LogicalVolume
|
||||
// Destructor. Removes the logical volume from the logical volume Store.
|
||||
// NOT virtual, since not meant to act as base class.
|
||||
|
||||
G4String GetName() const;
|
||||
void SetName(const G4String& pName);
|
||||
inline G4String GetName() const;
|
||||
inline void SetName(const G4String& pName);
|
||||
// Returns and sets the name of the logical volume.
|
||||
|
||||
G4int GetNoDaughters() const;
|
||||
inline G4int GetNoDaughters() const;
|
||||
// Returns the number of daughters (0 to n).
|
||||
G4VPhysicalVolume* GetDaughter(const G4int i) const;
|
||||
inline G4VPhysicalVolume* GetDaughter(const G4int i) const;
|
||||
// Return the ith daughter. Note numbering starts from 0,
|
||||
// and no bounds checking is performed.
|
||||
void AddDaughter(G4VPhysicalVolume* p);
|
||||
inline void AddDaughter(G4VPhysicalVolume* p);
|
||||
// Add the volume p as a daughter of the current logical volume.
|
||||
G4bool IsDaughter(const G4VPhysicalVolume* p) const;
|
||||
inline G4bool IsDaughter(const G4VPhysicalVolume* p) const;
|
||||
// Returns true is the volume p is a daughter of the current
|
||||
// logical volume.
|
||||
void RemoveDaughter(const G4VPhysicalVolume* p);
|
||||
inline void RemoveDaughter(const G4VPhysicalVolume* p);
|
||||
// Remove the volume p from the List of daughter of the current
|
||||
// logical volume.
|
||||
|
||||
G4VSolid* GetSolid() const;
|
||||
void SetSolid(G4VSolid *pSolid);
|
||||
inline G4VSolid* GetSolid() const;
|
||||
inline void SetSolid(G4VSolid *pSolid);
|
||||
// Gets and sets the current solid.
|
||||
|
||||
G4Material* GetMaterial() const;
|
||||
void SetMaterial(G4Material *pMaterial);
|
||||
inline G4Material* GetMaterial() const;
|
||||
inline void SetMaterial(G4Material *pMaterial);
|
||||
// Gets and sets the current material.
|
||||
|
||||
G4FieldManager* GetFieldManager() const;
|
||||
inline G4FieldManager* GetFieldManager() const;
|
||||
// Gets current FieldManager.
|
||||
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters);
|
||||
// Sets FieldManager and propagates it:
|
||||
@@ -147,44 +147,44 @@ class G4LogicalVolume
|
||||
// ii) to all daughters
|
||||
// if forceToAllDaughters=true
|
||||
|
||||
G4VSensitiveDetector* GetSensitiveDetector() const;
|
||||
inline G4VSensitiveDetector* GetSensitiveDetector() const;
|
||||
// Gets current SensitiveDetector.
|
||||
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector);
|
||||
inline void SetSensitiveDetector(G4VSensitiveDetector *pSDetector);
|
||||
// Sets SensitiveDetector (can be NULL).
|
||||
|
||||
G4UserLimits* GetUserLimits() const;
|
||||
void SetUserLimits(G4UserLimits *pULimits);
|
||||
inline G4UserLimits* GetUserLimits() const;
|
||||
inline void SetUserLimits(G4UserLimits *pULimits);
|
||||
// Gets and sets current UserLimits.
|
||||
|
||||
G4SmartVoxelHeader* GetVoxelHeader() const;
|
||||
void SetVoxelHeader(G4SmartVoxelHeader *pVoxel);
|
||||
inline G4SmartVoxelHeader* GetVoxelHeader() const;
|
||||
inline void SetVoxelHeader(G4SmartVoxelHeader *pVoxel);
|
||||
// Gets and sets current VoxelHeader.
|
||||
|
||||
G4double GetSmartless();
|
||||
void SetSmartless(G4double s);
|
||||
inline G4double GetSmartless();
|
||||
inline void SetSmartless(G4double s);
|
||||
// Gets and sets user defined optimisation quality.
|
||||
|
||||
G4bool operator == ( const G4LogicalVolume& lv) const;
|
||||
// Equality defined by address only- return true if objects are at
|
||||
// same address, else false.
|
||||
|
||||
const G4VisAttributes* GetVisAttributes () const;
|
||||
void SetVisAttributes (const G4VisAttributes* pVA);
|
||||
void SetVisAttributes (const G4VisAttributes& VA);
|
||||
inline const G4VisAttributes* GetVisAttributes () const;
|
||||
inline void SetVisAttributes (const G4VisAttributes* pVA);
|
||||
inline void SetVisAttributes (const G4VisAttributes& VA);
|
||||
// Gets and sets visualization attributes.
|
||||
|
||||
void BecomeEnvelopeForFastSimulation(G4FastSimulationManager* );
|
||||
inline void BecomeEnvelopeForFastSimulation(G4FastSimulationManager* );
|
||||
// Makes this an Envelope for given FastSimulationManager.
|
||||
// Ensures that all its daughter volumes get it too - unless they
|
||||
// have one already.
|
||||
void ClearEnvelopeForFastSimulation(G4LogicalVolume* motherLV= 0);
|
||||
// Erase volume's Envelope status and propagate the FastSimulationManager
|
||||
// of its mother volume to itself and its daughters.
|
||||
G4FastSimulationManager* GetFastSimulationManager () const;
|
||||
inline G4FastSimulationManager* GetFastSimulationManager () const;
|
||||
// Gets current FastSimulationManager pointer.
|
||||
|
||||
void SetBiasWeight (G4double w);
|
||||
G4double GetBiasWeight() const;
|
||||
inline void SetBiasWeight (G4double w);
|
||||
inline G4double GetBiasWeight() const;
|
||||
// Sets and gets bias weight.
|
||||
|
||||
private:
|
||||
@@ -198,6 +198,10 @@ class G4LogicalVolume
|
||||
|
||||
G4LogicalVolume* FindMotherLogicalVolumeForEnvelope();
|
||||
|
||||
G4LogicalVolume(const G4LogicalVolume&);
|
||||
G4LogicalVolume& operator=(const G4LogicalVolume&);
|
||||
// Private copy-constructor and assignment operator.
|
||||
|
||||
private:
|
||||
|
||||
// Data members:
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalVolume.icc,v 1.3 1999/12/15 14:49:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4LogicalVolume.icc,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4LogicalVolume Inline Implementation file
|
||||
@@ -16,46 +16,55 @@
|
||||
// 09.11.98 - J. Apostolakis: Changed MagneticField to FieldManager
|
||||
// 12.02.99 - S.Giani: Added set/get methods for voxelization quality
|
||||
|
||||
inline G4String G4LogicalVolume::GetName() const
|
||||
inline
|
||||
G4String G4LogicalVolume::GetName() const
|
||||
{
|
||||
return fName;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetName(const G4String& pName)
|
||||
inline
|
||||
void G4LogicalVolume::SetName(const G4String& pName)
|
||||
{
|
||||
fName=pName;
|
||||
}
|
||||
|
||||
inline G4FieldManager* G4LogicalVolume::GetFieldManager() const
|
||||
inline
|
||||
G4FieldManager* G4LogicalVolume::GetFieldManager() const
|
||||
{
|
||||
return fFieldManager;
|
||||
}
|
||||
|
||||
inline G4int G4LogicalVolume::GetNoDaughters() const
|
||||
inline
|
||||
G4int G4LogicalVolume::GetNoDaughters() const
|
||||
{
|
||||
return fDaughters.entries();
|
||||
}
|
||||
|
||||
inline G4VPhysicalVolume* G4LogicalVolume::GetDaughter(const G4int i) const
|
||||
inline
|
||||
G4VPhysicalVolume* G4LogicalVolume::GetDaughter(const G4int i) const
|
||||
{
|
||||
return fDaughters(i);
|
||||
}
|
||||
|
||||
inline G4FastSimulationManager*
|
||||
G4LogicalVolume::GetFastSimulationManager () const
|
||||
inline
|
||||
G4FastSimulationManager* G4LogicalVolume::GetFastSimulationManager () const
|
||||
{
|
||||
return fFastSimulationManager;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter)
|
||||
inline
|
||||
void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter)
|
||||
{
|
||||
// manual resize operation to avoid Rogue grabbing RW_DEFAULT
|
||||
// manual resize operation to avoid Rogue grabbing RW_DEFAULT
|
||||
|
||||
fDaughters.resize(fDaughters.entries()+1);
|
||||
fDaughters.insert(pNewDaughter);
|
||||
// Propagates the mother's FastSimulationManager pointer. If we are in
|
||||
// the World logical volume, propagates only if pointer != 0.
|
||||
// (perhaps someone would like to parametrize all the World volume
|
||||
// for a particle type, why not ?).
|
||||
|
||||
// Propagates the mother's FastSimulationManager pointer. If we are in
|
||||
// the World logical volume, propagates only if pointer != 0.
|
||||
// (perhaps someone would like to parametrize all the World volume
|
||||
// for a particle type, why not ?).
|
||||
|
||||
G4VPhysicalVolume *myPhysical= pNewDaughter->GetMother();
|
||||
G4VPhysicalVolume *pMotherPhys;
|
||||
G4LogicalVolume *pDaughterLogical;
|
||||
@@ -68,124 +77,153 @@ inline void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter)
|
||||
( pMotherPhys==0) && (fFastSimulationManager!=0))
|
||||
{
|
||||
if(pDaughterLogical->GetFastSimulationManager() != fFastSimulationManager)
|
||||
pDaughterLogical->
|
||||
SetFastSimulationManager(fFastSimulationManager,FALSE);
|
||||
pDaughterLogical->SetFastSimulationManager(fFastSimulationManager,
|
||||
FALSE);
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
pDaughterLogical->SetFastSimulationManager(NULL,FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Propagate the Field Manager, if the daughter has no field Manager.
|
||||
pDaughterLogical = pNewDaughter->GetLogicalVolume();
|
||||
G4FieldManager* pDaughterFieldManager = pDaughterLogical->GetFieldManager();
|
||||
// Propagate the Field Manager, if the daughter has no field Manager.
|
||||
|
||||
if( pDaughterFieldManager == 0 ){
|
||||
pDaughterLogical->SetFieldManager(fFieldManager,
|
||||
true);
|
||||
pDaughterLogical = pNewDaughter->GetLogicalVolume();
|
||||
G4FieldManager* pDaughterFieldManager =
|
||||
pDaughterLogical->GetFieldManager();
|
||||
|
||||
if( pDaughterFieldManager == 0 )
|
||||
{
|
||||
pDaughterLogical->SetFieldManager(fFieldManager, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
inline G4bool G4LogicalVolume::IsDaughter(const G4VPhysicalVolume* p) const
|
||||
inline
|
||||
G4bool G4LogicalVolume::IsDaughter(const G4VPhysicalVolume* p) const
|
||||
{
|
||||
return fDaughters.contains(p);
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::RemoveDaughter(const G4VPhysicalVolume* p)
|
||||
inline
|
||||
void G4LogicalVolume::RemoveDaughter(const G4VPhysicalVolume* p)
|
||||
{
|
||||
fDaughters.remove(p);
|
||||
fDaughters.resize(fDaughters.entries());
|
||||
}
|
||||
|
||||
inline G4VSolid* G4LogicalVolume::GetSolid() const
|
||||
inline
|
||||
G4VSolid* G4LogicalVolume::GetSolid() const
|
||||
{
|
||||
return fSolid;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetSolid(G4VSolid *pSolid)
|
||||
inline
|
||||
void G4LogicalVolume::SetSolid(G4VSolid *pSolid)
|
||||
{
|
||||
assert(pSolid != 0);
|
||||
fSolid=pSolid;
|
||||
}
|
||||
|
||||
inline G4Material* G4LogicalVolume::GetMaterial() const
|
||||
inline
|
||||
G4Material* G4LogicalVolume::GetMaterial() const
|
||||
{
|
||||
return fMaterial;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetMaterial(G4Material *pMaterial)
|
||||
inline
|
||||
void G4LogicalVolume::SetMaterial(G4Material *pMaterial)
|
||||
{
|
||||
// assert(pMaterial != 0);
|
||||
fMaterial=pMaterial;
|
||||
}
|
||||
|
||||
inline G4VSensitiveDetector* G4LogicalVolume::GetSensitiveDetector() const
|
||||
inline
|
||||
G4VSensitiveDetector* G4LogicalVolume::GetSensitiveDetector() const
|
||||
{
|
||||
return fSensitiveDetector;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
|
||||
inline
|
||||
void G4LogicalVolume::SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
|
||||
{
|
||||
fSensitiveDetector=pSDetector;
|
||||
}
|
||||
|
||||
inline G4UserLimits* G4LogicalVolume::GetUserLimits() const
|
||||
inline
|
||||
G4UserLimits* G4LogicalVolume::GetUserLimits() const
|
||||
{
|
||||
return fUserLimits;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetUserLimits(G4UserLimits *pULimits)
|
||||
inline
|
||||
void G4LogicalVolume::SetUserLimits(G4UserLimits *pULimits)
|
||||
{
|
||||
fUserLimits=pULimits;
|
||||
}
|
||||
|
||||
inline G4SmartVoxelHeader* G4LogicalVolume::GetVoxelHeader() const
|
||||
inline
|
||||
G4SmartVoxelHeader* G4LogicalVolume::GetVoxelHeader() const
|
||||
{
|
||||
return fVoxel;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetVoxelHeader(G4SmartVoxelHeader *pVoxel)
|
||||
inline
|
||||
void G4LogicalVolume::SetVoxelHeader(G4SmartVoxelHeader *pVoxel)
|
||||
{
|
||||
fVoxel=pVoxel;
|
||||
}
|
||||
|
||||
inline G4double G4LogicalVolume::GetSmartless()
|
||||
inline
|
||||
G4double G4LogicalVolume::GetSmartless()
|
||||
{
|
||||
return fSmartless;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetSmartless(G4double s)
|
||||
inline
|
||||
void G4LogicalVolume::SetSmartless(G4double s)
|
||||
{
|
||||
fSmartless=s;
|
||||
}
|
||||
|
||||
inline G4bool G4LogicalVolume::operator == ( const G4LogicalVolume& lv) const
|
||||
inline
|
||||
G4bool G4LogicalVolume::operator == ( const G4LogicalVolume& lv) const
|
||||
{
|
||||
return (this==&lv) ? true : false;
|
||||
}
|
||||
|
||||
inline const G4VisAttributes* G4LogicalVolume::GetVisAttributes () const {
|
||||
return fVisAttributes;
|
||||
}
|
||||
inline
|
||||
const G4VisAttributes* G4LogicalVolume::GetVisAttributes () const
|
||||
{
|
||||
return fVisAttributes;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA) {
|
||||
fVisAttributes = pVA;
|
||||
}
|
||||
inline
|
||||
void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA)
|
||||
{
|
||||
fVisAttributes = pVA;
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetVisAttributes (const G4VisAttributes& VA) {
|
||||
fVisAttributes = &VA;
|
||||
}
|
||||
inline
|
||||
void G4LogicalVolume::SetVisAttributes (const G4VisAttributes& VA)
|
||||
{
|
||||
fVisAttributes = &VA;
|
||||
}
|
||||
|
||||
inline void
|
||||
G4LogicalVolume::BecomeEnvelopeForFastSimulation(G4FastSimulationManager* pPA) {
|
||||
SetFastSimulationManager(pPA,TRUE);
|
||||
}
|
||||
G4LogicalVolume::BecomeEnvelopeForFastSimulation(G4FastSimulationManager* pPA)
|
||||
{
|
||||
SetFastSimulationManager(pPA,TRUE);
|
||||
}
|
||||
|
||||
inline void G4LogicalVolume::SetBiasWeight(G4double w)
|
||||
{ fBiasWeight = w; }
|
||||
|
||||
inline G4double G4LogicalVolume::GetBiasWeight() const
|
||||
{ return fBiasWeight; }
|
||||
inline
|
||||
void G4LogicalVolume::SetBiasWeight(G4double w)
|
||||
{
|
||||
fBiasWeight = w;
|
||||
}
|
||||
|
||||
inline
|
||||
G4double G4LogicalVolume::GetBiasWeight() const
|
||||
{
|
||||
return fBiasWeight;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalVolumeStore.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4LogicalVolumeStore
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PVParameterised.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4PVParameterised.hh,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4PVParameterised
|
||||
@@ -49,6 +49,9 @@ class G4PVParameterised : public G4PVReplica
|
||||
// Almost exactly similar to first constructor, changing only mother
|
||||
// pointer's type to LogicalVolume.
|
||||
|
||||
virtual ~G4PVParameterised();
|
||||
// Virtual empty destructor.
|
||||
|
||||
virtual G4VPVParameterisation* GetParameterisation() const;
|
||||
// Returns the current pointer to the parameterisation.
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PVPlacement.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4PVPlacement.hh,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4PVPlacement
|
||||
@@ -93,7 +93,7 @@ class G4PVPlacement : public G4VPhysicalVolume
|
||||
G4int pCopyNo);
|
||||
// Utilises both variations above (from 2nd and 3rd constructor).
|
||||
|
||||
~G4PVPlacement();
|
||||
virtual ~G4PVPlacement();
|
||||
// Default destructor.
|
||||
|
||||
virtual G4int GetCopyNo() const;
|
||||
@@ -117,14 +117,21 @@ class G4PVPlacement : public G4VPhysicalVolume
|
||||
|
||||
private:
|
||||
|
||||
G4bool fmany; // flag for booleans/MANY - not used
|
||||
G4bool fallocatedRotM; // flag for allocation of Rotation Matrix
|
||||
G4int fcopyNo; // for identification
|
||||
|
||||
static G4RotationMatrix* NewPtrRotMatrix(const G4RotationMatrix &RotMat);
|
||||
// Auxiliary function for 2nd constructor (one with G4Transform3D).
|
||||
// Creates a new RotMatrix on the heap (using "new") and copies
|
||||
// its argument into it.
|
||||
|
||||
G4PVPlacement(const G4PVPlacement&);
|
||||
G4PVPlacement& operator=(const G4PVPlacement&);
|
||||
// Private copy constructor and assignement operator.
|
||||
|
||||
private:
|
||||
|
||||
G4bool fmany; // flag for booleans/MANY - not used
|
||||
G4bool fallocatedRotM; // flag for allocation of Rotation Matrix
|
||||
G4int fcopyNo; // for identification
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PVReplica.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4PVReplica.hh,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4PVReplica
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
class G4PVReplica : public G4VPhysicalVolume
|
||||
{
|
||||
public:
|
||||
public: // with description
|
||||
|
||||
G4PVReplica(const G4String& pName,
|
||||
G4LogicalVolume* pLogical,
|
||||
@@ -85,7 +85,7 @@ class G4PVReplica : public G4VPhysicalVolume
|
||||
const G4double width,
|
||||
const G4double offset=0);
|
||||
|
||||
~G4PVReplica();
|
||||
virtual ~G4PVReplica();
|
||||
|
||||
virtual G4bool IsMany() const;
|
||||
virtual G4int GetCopyNo() const;
|
||||
@@ -106,6 +106,10 @@ class G4PVReplica : public G4VPhysicalVolume
|
||||
const G4int nReplicas,
|
||||
const G4double width,
|
||||
const G4double offset);
|
||||
|
||||
G4PVReplica(const G4PVReplica&);
|
||||
const G4PVReplica& operator=(const G4PVReplica&);
|
||||
|
||||
protected:
|
||||
|
||||
EAxis faxis;
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PhysicalVolumeStore.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4PhysicalVolumeStore.hh,v 1.5 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4PhysicalVolume
|
||||
//
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelHeader.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4SmartVoxelHeader
|
||||
//
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelHeader.icc,v 1.1 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// G4SmartVoxelHeader Inline implementation
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelNode.hh,v 1.4 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4SmartVoxelNode
|
||||
//
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelNode.icc,v 1.1 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// G4SmartVoxelNode Inline implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelProxy.hh,v 1.3 2000/04/20 16:49:47 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4SmartVoxelProxy.hh,v 1.4 2000/11/20 17:31:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4SmartVoxelProxy
|
||||
//
|
||||
@@ -67,8 +67,8 @@ class G4SmartVoxelProxy
|
||||
|
||||
private:
|
||||
|
||||
G4SmartVoxelNode* fNode;
|
||||
G4SmartVoxelHeader* fHeader;
|
||||
G4SmartVoxelNode* fNode;
|
||||
};
|
||||
|
||||
#include "G4SmartVoxelProxy.icc"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelProxy.icc,v 1.1 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// G4SmartVoxelProxy Inline implementation
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SolidStore.hh,v 1.4 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4SolidStore
|
||||
//
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VPVParameterisation.hh,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4VPVParamterisation
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VPhysicalVolume.hh,v 1.4 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VPhysicalVolume.hh,v 1.5 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4VPhysicalVolume
|
||||
@@ -61,8 +61,8 @@ class G4VPhysicalVolume
|
||||
virtual ~G4VPhysicalVolume();
|
||||
// Destructor, will be subclassed. Removes volume from volume Store.
|
||||
|
||||
G4bool operator == (const G4VPhysicalVolume& p) const;
|
||||
// Define equality by equal addresses only.
|
||||
inline G4bool operator == (const G4VPhysicalVolume& p) const;
|
||||
// Equality defined by equal addresses only.
|
||||
|
||||
// Access functions
|
||||
|
||||
@@ -70,44 +70,44 @@ class G4VPhysicalVolume
|
||||
// between whether the rotation/translation is being made for the
|
||||
// frame or the object/volume that is being placed.
|
||||
// (They are the inverse of each other).
|
||||
G4RotationMatrix* GetObjectRotation() const; // Obsolete
|
||||
G4RotationMatrix GetObjectRotationValue() const; // Replacement
|
||||
G4ThreeVector GetObjectTranslation() const;
|
||||
G4RotationMatrix* GetObjectRotation() const; // Obsolete
|
||||
inline G4RotationMatrix GetObjectRotationValue() const; // Replacement
|
||||
inline G4ThreeVector GetObjectTranslation() const;
|
||||
// Return the rotation/translation of the Object relative to the mother.
|
||||
const G4RotationMatrix* GetFrameRotation() const;
|
||||
G4ThreeVector GetFrameTranslation() const;
|
||||
inline const G4RotationMatrix* GetFrameRotation() const;
|
||||
inline G4ThreeVector GetFrameTranslation() const;
|
||||
// Return the rotation/translation of the Frame used to position
|
||||
// this volume in its mother volume (opposite of object rot/trans).
|
||||
|
||||
// Older access functions, that do not distinguish between frame/object!
|
||||
|
||||
const G4ThreeVector& GetTranslation() const;
|
||||
const G4RotationMatrix* GetRotation() const;
|
||||
inline const G4ThreeVector& GetTranslation() const;
|
||||
inline const G4RotationMatrix* GetRotation() const;
|
||||
// Old access functions, that do not distinguish between frame/object!
|
||||
// They return the translation/rotation of the volume.
|
||||
|
||||
// Set functions
|
||||
|
||||
void SetTranslation(const G4ThreeVector &v);
|
||||
G4RotationMatrix* GetRotation();
|
||||
void SetRotation(G4RotationMatrix*);
|
||||
inline void SetTranslation(const G4ThreeVector &v);
|
||||
inline G4RotationMatrix* GetRotation();
|
||||
inline void SetRotation(G4RotationMatrix*);
|
||||
// NOT INTENDED FOR GENERAL USE.
|
||||
// Non constant versions of above. Used to change transformation
|
||||
// for replication/parameterisation mechanism.
|
||||
|
||||
G4LogicalVolume* GetLogicalVolume() const;
|
||||
inline G4LogicalVolume* GetLogicalVolume() const;
|
||||
// Return the associated logical volume.
|
||||
void SetLogicalVolume(G4LogicalVolume *pLogical);
|
||||
inline void SetLogicalVolume(G4LogicalVolume *pLogical);
|
||||
// Set the logical volume. Must not be called when geometry closed.
|
||||
|
||||
G4VPhysicalVolume* GetMother() const;
|
||||
inline G4VPhysicalVolume* GetMother() const;
|
||||
// Return the current mother pointer.
|
||||
void SetMother(G4VPhysicalVolume *pMother);
|
||||
inline void SetMother(G4VPhysicalVolume *pMother);
|
||||
// Set the mother volume. Must not be called when geometry closed.
|
||||
|
||||
G4String GetName() const;
|
||||
inline G4String GetName() const;
|
||||
// Return the volume's name.
|
||||
void SetName(const G4String& pName);
|
||||
inline void SetName(const G4String& pName);
|
||||
// Set the volume's name.
|
||||
|
||||
// Functions required of subclasses
|
||||
@@ -135,6 +135,12 @@ class G4VPhysicalVolume
|
||||
// [Set the current mother pointer to refer to the specified mother,
|
||||
// by calling SetMother]
|
||||
|
||||
private:
|
||||
|
||||
G4VPhysicalVolume(const G4VPhysicalVolume&);
|
||||
G4VPhysicalVolume& operator=(const G4VPhysicalVolume&);
|
||||
// Private copy constructor and assignment operator.
|
||||
|
||||
protected:
|
||||
|
||||
G4RotationMatrix *frot;
|
||||
|
||||
@@ -5,72 +5,87 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VPhysicalVolume.icc,v 1.3 1999/12/15 14:49:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VPhysicalVolume.icc,v 1.4 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4VPhysicalVolume Inline Implementation
|
||||
//
|
||||
|
||||
// Define equality by equal addresses only.
|
||||
inline G4bool G4VPhysicalVolume::operator == (const G4VPhysicalVolume& p) const
|
||||
inline
|
||||
G4bool G4VPhysicalVolume::operator == (const G4VPhysicalVolume& p) const
|
||||
{
|
||||
return (this==&p) ? true : false;
|
||||
}
|
||||
|
||||
// Access functions
|
||||
inline const G4ThreeVector& G4VPhysicalVolume::GetTranslation() const
|
||||
inline
|
||||
const G4ThreeVector& G4VPhysicalVolume::GetTranslation() const
|
||||
{
|
||||
return ftrans;
|
||||
}
|
||||
inline void G4VPhysicalVolume::SetTranslation(const G4ThreeVector &v)
|
||||
|
||||
inline
|
||||
void G4VPhysicalVolume::SetTranslation(const G4ThreeVector &v)
|
||||
{
|
||||
ftrans=v;
|
||||
}
|
||||
inline const G4RotationMatrix* G4VPhysicalVolume::GetRotation() const
|
||||
|
||||
inline
|
||||
const G4RotationMatrix* G4VPhysicalVolume::GetRotation() const
|
||||
{
|
||||
return frot;
|
||||
}
|
||||
inline G4RotationMatrix* G4VPhysicalVolume::GetRotation()
|
||||
|
||||
inline
|
||||
G4RotationMatrix* G4VPhysicalVolume::GetRotation()
|
||||
{
|
||||
return frot;
|
||||
}
|
||||
inline void G4VPhysicalVolume::SetRotation(G4RotationMatrix *pRot)
|
||||
|
||||
inline
|
||||
void G4VPhysicalVolume::SetRotation(G4RotationMatrix *pRot)
|
||||
{
|
||||
frot=pRot;
|
||||
}
|
||||
|
||||
inline G4LogicalVolume* G4VPhysicalVolume::GetLogicalVolume() const
|
||||
inline
|
||||
G4LogicalVolume* G4VPhysicalVolume::GetLogicalVolume() const
|
||||
{
|
||||
return flogical;
|
||||
}
|
||||
|
||||
inline void G4VPhysicalVolume::SetLogicalVolume(G4LogicalVolume *pLogical)
|
||||
inline
|
||||
void G4VPhysicalVolume::SetLogicalVolume(G4LogicalVolume *pLogical)
|
||||
{
|
||||
flogical=pLogical;
|
||||
}
|
||||
|
||||
inline G4VPhysicalVolume* G4VPhysicalVolume::GetMother() const
|
||||
inline
|
||||
G4VPhysicalVolume* G4VPhysicalVolume::GetMother() const
|
||||
{
|
||||
return fmother;
|
||||
}
|
||||
|
||||
inline void G4VPhysicalVolume::SetMother(G4VPhysicalVolume *pMother)
|
||||
inline
|
||||
void G4VPhysicalVolume::SetMother(G4VPhysicalVolume *pMother)
|
||||
{
|
||||
fmother=pMother;
|
||||
}
|
||||
|
||||
inline G4String G4VPhysicalVolume::GetName() const
|
||||
inline
|
||||
G4String G4VPhysicalVolume::GetName() const
|
||||
{
|
||||
return fname;
|
||||
}
|
||||
|
||||
inline void G4VPhysicalVolume::SetName(const G4String& pName)
|
||||
inline
|
||||
void G4VPhysicalVolume::SetName(const G4String& pName)
|
||||
{
|
||||
fname=pName;
|
||||
}
|
||||
|
||||
inline G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue() const
|
||||
inline
|
||||
G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue() const
|
||||
{
|
||||
G4RotationMatrix aRotM; // Initialised to identity
|
||||
|
||||
@@ -81,15 +96,21 @@ inline G4RotationMatrix G4VPhysicalVolume::GetObjectRotationValue() const
|
||||
}
|
||||
return aRotM;
|
||||
}
|
||||
inline G4ThreeVector G4VPhysicalVolume::GetObjectTranslation() const
|
||||
|
||||
inline
|
||||
G4ThreeVector G4VPhysicalVolume::GetObjectTranslation() const
|
||||
{
|
||||
return ftrans;
|
||||
}
|
||||
inline const G4RotationMatrix* G4VPhysicalVolume::GetFrameRotation() const
|
||||
|
||||
inline
|
||||
const G4RotationMatrix* G4VPhysicalVolume::GetFrameRotation() const
|
||||
{
|
||||
return frot;
|
||||
}
|
||||
inline G4ThreeVector G4VPhysicalVolume::GetFrameTranslation() const
|
||||
|
||||
inline
|
||||
G4ThreeVector G4VPhysicalVolume::GetFrameTranslation() const
|
||||
{
|
||||
return -ftrans;
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VSolid.hh,v 1.6 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VSolid.hh,v 1.7 2000/11/01 15:39:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4VSolid
|
||||
@@ -76,7 +76,7 @@ class G4VSolid
|
||||
virtual ~G4VSolid();
|
||||
// Default destructor.
|
||||
|
||||
G4bool operator==( const G4VSolid& s) const;
|
||||
inline G4bool operator==( const G4VSolid& s) const;
|
||||
// Return true only if addresses are the same.
|
||||
|
||||
G4String GetName() const;
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VSolid.icc,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VSolid.icc,v 1.4 2000/11/01 15:39:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// G4VSolid Inline implementation
|
||||
@@ -17,15 +17,3 @@ G4bool G4VSolid::operator==( const G4VSolid& s) const
|
||||
{
|
||||
return (this==&s) ? true : false;
|
||||
}
|
||||
|
||||
inline
|
||||
G4Polyhedron* G4VSolid::CreatePolyhedron () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline
|
||||
G4NURBS* G4VSolid::CreateNURBS () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VTouchable.hh,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VTouchable.hh,v 1.4 2000/11/01 15:39:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4VTouchable
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VTouchable.icc,v 1.3 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VTouchable.icc,v 1.4 2000/11/01 15:39:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4VTouchable Inline implementation
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VoxelLimits.hh,v 1.4 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4VoxelLimits
|
||||
//
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VoxelLimits.icc,v 1.1 2000/04/20 16:49:48 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// G4VoxelLimits Inline implementation
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: meshdefs.hh,v 1.3 2000/04/20 16:49:49 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// Tube/Cone Meshing constants for extent calculations
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: voxeldefs.hh,v 1.4 2000/04/20 16:49:49 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4DrawVoxels.cc,v 1.10 2000/01/19 17:26:30 johna Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4DrawVoxels.cc,v 1.12 2000/11/20 17:31:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4DrawVoxels
|
||||
@@ -56,7 +56,6 @@ void G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv,
|
||||
|
||||
G4double dx=kInfinity,dy=kInfinity,dz=kInfinity;
|
||||
G4double xmax=0,xmin=0,ymax=0,ymin=0,zmax=0,zmin=0;
|
||||
G4Transform3D translation_for_voxel_plane; // According to the solid's own frame
|
||||
|
||||
if (lv->GetNoDaughters()<=0) {
|
||||
#ifdef G4DrawVoxelsDebug
|
||||
@@ -84,7 +83,7 @@ void G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv,
|
||||
ppl->insert(G4PlacedPolyhedron(bounding_polyhedronBox,G4Translate3D(t_centerofBoundingBox)));
|
||||
|
||||
G4ThreeVector t_FirstCenterofVoxelPlane;
|
||||
const G4VisAttributes* voxelsVisAttributes;
|
||||
const G4VisAttributes* voxelsVisAttributes=0;
|
||||
|
||||
G4ThreeVector unit_translation_vector;
|
||||
G4ThreeVector current_translation_vector;
|
||||
@@ -216,21 +215,9 @@ void G4DrawVoxels::DrawVoxels(const G4LogicalVolume* lv) const{
|
||||
G4PlacedPolyhedronList* pplist=CreatePlacedPolyhedra(lv);
|
||||
if(pVVisManager) {
|
||||
//Drawing the bounding and voxel polyhedra for the pVolume
|
||||
for (G4int i=0;i<pplist->entries();i++)
|
||||
for (size_t i=0;i<pplist->entries();i++)
|
||||
pVVisManager->Draw((*pplist)(i).GetPolyhedron(),(*pplist)(i).GetTransform()*transf3D);
|
||||
}
|
||||
else G4cout << "@@@@ void G4DrawVoxels::DrawVoxels(const G4LogicalVolume*) pVVisManager is null! @@@@" <<G4endl;
|
||||
delete pplist;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4GeometryManager.cc,v 1.2 1999/12/15 14:49:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4GeometryManager
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalVolume.cc,v 1.3 1999/12/15 14:49:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4LogicalVolume.cc,v 1.5 2000/11/20 17:31:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4LogicalVolume Implementation
|
||||
@@ -24,13 +24,14 @@
|
||||
|
||||
// Constructor - set member data and add to logical Store, zero voxel ptr
|
||||
// Initialises daughter vector to 0 length
|
||||
G4LogicalVolume::G4LogicalVolume( G4VSolid *pSolid, G4Material *pMaterial,
|
||||
//
|
||||
G4LogicalVolume::G4LogicalVolume( G4VSolid *pSolid, G4Material *pMaterial,
|
||||
const G4String& name,
|
||||
G4FieldManager *pFieldMgr,
|
||||
G4VSensitiveDetector *pSDetector,
|
||||
G4UserLimits *pULimits) :
|
||||
fDaughters(0), fVoxel(0), fSmartless(2.), fVisAttributes (0) , fFastSimulationManager (0),
|
||||
fIsEnvelope(FALSE), fFieldManager(pFieldMgr)
|
||||
G4UserLimits *pULimits)
|
||||
: fDaughters(0), fFieldManager(pFieldMgr), fVoxel(0), fSmartless(2.),
|
||||
fVisAttributes (0), fFastSimulationManager (0), fIsEnvelope(FALSE)
|
||||
{
|
||||
SetSolid(pSolid);
|
||||
SetMaterial(pMaterial);
|
||||
@@ -43,6 +44,7 @@ G4LogicalVolume::G4LogicalVolume( G4VSolid *pSolid, G4Material *pMaterial,
|
||||
|
||||
// Destructor - remove from solid Store
|
||||
// NOTE: Not virtual
|
||||
//
|
||||
G4LogicalVolume::~G4LogicalVolume()
|
||||
{
|
||||
G4LogicalVolumeStore::DeRegister(this);
|
||||
@@ -51,9 +53,10 @@ G4LogicalVolume::~G4LogicalVolume()
|
||||
// As this method is recursive, inlining it is harder (and asking for it
|
||||
// is pointless if not counterproductive: it will increase code size)
|
||||
//
|
||||
void G4LogicalVolume::SetFastSimulationManager (
|
||||
G4FastSimulationManager* pNewFastSimul,
|
||||
G4bool IsEnvelope)
|
||||
void
|
||||
G4LogicalVolume::SetFastSimulationManager(
|
||||
G4FastSimulationManager* pNewFastSimul,
|
||||
G4bool IsEnvelope)
|
||||
{
|
||||
if(!fIsEnvelope || IsEnvelope) {
|
||||
fIsEnvelope=IsEnvelope;
|
||||
@@ -70,8 +73,8 @@ void G4LogicalVolume::SetFastSimulationManager (
|
||||
}
|
||||
}
|
||||
|
||||
void G4LogicalVolume::
|
||||
ClearEnvelopeForFastSimulation( G4LogicalVolume* motherLogVol)
|
||||
void
|
||||
G4LogicalVolume::ClearEnvelopeForFastSimulation(G4LogicalVolume* motherLogVol)
|
||||
{
|
||||
if( fIsEnvelope ) {
|
||||
G4FastSimulationManager* NewFastSimulationVal=NULL;
|
||||
@@ -104,9 +107,9 @@ ClearEnvelopeForFastSimulation( G4LogicalVolume* motherLogVol)
|
||||
}
|
||||
}
|
||||
|
||||
void G4LogicalVolume::SetFieldManager (
|
||||
G4FieldManager* pNewFieldMgr,
|
||||
G4bool forceAllDaughters)
|
||||
void
|
||||
G4LogicalVolume::SetFieldManager(G4FieldManager* pNewFieldMgr,
|
||||
G4bool forceAllDaughters)
|
||||
{
|
||||
fFieldManager = pNewFieldMgr;
|
||||
|
||||
@@ -124,7 +127,7 @@ void G4LogicalVolume::SetFieldManager (
|
||||
// The following method returns a meaningful result IF and only IF
|
||||
// the current logical volume has exactly one physical volume that
|
||||
// uses it.
|
||||
|
||||
//
|
||||
G4LogicalVolume*
|
||||
G4LogicalVolume::FindMotherLogicalVolumeForEnvelope()
|
||||
{
|
||||
@@ -133,7 +136,7 @@ G4LogicalVolume::FindMotherLogicalVolumeForEnvelope()
|
||||
|
||||
// Look for the current volume's mother volume.
|
||||
|
||||
for (G4int LV=0;LV < Store->entries(); LV++){
|
||||
for (size_t LV=0;LV < Store->entries(); LV++){
|
||||
G4LogicalVolume *aLogVol;
|
||||
|
||||
aLogVol= Store->at(LV);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalVolumeStore.cc,v 1.4 1999/12/15 14:49:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// G4LogicalVolumeStore
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PVParameterised.cc,v 1.2 1999/12/15 14:49:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4PVParameterised.cc,v 1.3 2000/11/01 15:39:35 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4PVParameterised
|
||||
@@ -37,6 +37,10 @@ G4PVParameterised::G4PVParameterised(const G4String& pName,
|
||||
{
|
||||
}
|
||||
|
||||
G4PVParameterised::~G4PVParameterised()
|
||||
{
|
||||
}
|
||||
|
||||
G4VPVParameterisation* G4PVParameterised::GetParameterisation() const
|
||||
{
|
||||
return fparam;
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PVPlacement.cc,v 1.2 1999/12/15 14:49:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4PVPlacement.cc,v 1.3 2000/11/20 17:31:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4PVPlacement Implementation
|
||||
@@ -23,7 +23,7 @@ G4PVPlacement::G4PVPlacement(G4RotationMatrix *pRot,
|
||||
G4bool pMany,
|
||||
G4int pCopyNo) :
|
||||
G4VPhysicalVolume(pRot,tlate,pName,pLogical,pMother),
|
||||
fcopyNo(pCopyNo), fmany(pMany), fallocatedRotM(false)
|
||||
fmany(pMany), fallocatedRotM(false), fcopyNo(pCopyNo)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ G4PVPlacement::G4PVPlacement(const G4Transform3D &Transform3D,
|
||||
G4VPhysicalVolume( NewPtrRotMatrix(Transform3D.getRotation().inverse()),
|
||||
Transform3D.getTranslation(),
|
||||
pName,pLogical,pMother),
|
||||
fcopyNo(pCopyNo), fmany(pMany)
|
||||
fmany(pMany), fcopyNo(pCopyNo)
|
||||
{
|
||||
fallocatedRotM= (this->GetRotation() != 0);
|
||||
}
|
||||
@@ -54,7 +54,7 @@ G4PVPlacement::G4PVPlacement(G4RotationMatrix *pRot,
|
||||
G4bool pMany,
|
||||
G4int pCopyNo) :
|
||||
G4VPhysicalVolume(pRot,tlate,pName,pCurrentLogical,0),
|
||||
fcopyNo(pCopyNo), fmany(pMany), fallocatedRotM(false)
|
||||
fmany(pMany), fallocatedRotM(false), fcopyNo(pCopyNo)
|
||||
{
|
||||
if (pMotherLogical) pMotherLogical->AddDaughter(this);
|
||||
}
|
||||
@@ -71,8 +71,7 @@ G4PVPlacement::G4PVPlacement( const G4Transform3D &Transform3D,
|
||||
pName,
|
||||
pCurrentLogical,
|
||||
0),
|
||||
fcopyNo(pCopyNo),
|
||||
fmany(pMany)
|
||||
fmany(pMany), fcopyNo(pCopyNo)
|
||||
{
|
||||
this->SetRotation( NewPtrRotMatrix(Transform3D.getRotation().inverse()) );
|
||||
fallocatedRotM= (this->GetRotation() != 0);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PVReplica.cc,v 1.2 1999/12/15 14:49:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4PVReplica Implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4PhysicalVolumeStore.cc,v 1.4 1999/12/15 14:49:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4PhysicalVolumeStore.cc,v 1.5 2000/11/01 15:39:35 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// G4PhysicalVolumeStore
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelHeader.cc,v 1.5 1999/12/15 14:49:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4SmartVoxelHeader.cc,v 1.7 2000/11/20 17:31:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4SmartVoxelHeader
|
||||
@@ -323,7 +323,8 @@ void G4SmartVoxelHeader::BuildVoxelsWithinLimits(G4LogicalVolume* pVolume,
|
||||
|
||||
G4ProxyVector *pGoodSlices=0,*pTestSlices,*tmpSlices;
|
||||
G4double goodSliceScore=kInfinity,testSliceScore;
|
||||
EAxis goodSliceAxis,testAxis;
|
||||
EAxis goodSliceAxis=kXAxis;
|
||||
EAxis testAxis =kXAxis;
|
||||
G4int node,maxNode,iaxis;
|
||||
G4VoxelLimits noLimits;
|
||||
|
||||
@@ -642,8 +643,8 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume,
|
||||
EAxis pAxis)
|
||||
{
|
||||
G4double motherMinExtent,motherMaxExtent,targetMinExtent,targetMaxExtent;
|
||||
G4VPhysicalVolume *pDaughter;
|
||||
G4VPVParameterisation *pParam;
|
||||
G4VPhysicalVolume *pDaughter=0;
|
||||
G4VPVParameterisation *pParam=0;
|
||||
G4VSolid *targetSolid;
|
||||
G4AffineTransform targetTransform;
|
||||
G4bool replicated;
|
||||
@@ -1120,7 +1121,9 @@ G4std::ostream& operator << (G4std::ostream&s, const G4SmartVoxelHeader& h)
|
||||
{
|
||||
s << "Axis = " << h.faxis << G4endl;
|
||||
G4SmartVoxelProxy *collectNode=0,*collectHead=0;
|
||||
G4int collectNodeNo,collectHeadNo,i,j;
|
||||
G4int collectNodeNo=0;
|
||||
G4int collectHeadNo=0;
|
||||
size_t i,j;
|
||||
G4bool haveHeaders=false;
|
||||
|
||||
for (i=0;i<h.fslices.entries();i++)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SmartVoxelNode.cc,v 1.2 1999/12/15 14:49:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// Class G4SmartVoxelNode
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SolidStore.cc,v 1.4 1999/12/15 14:49:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4SolidStore.cc,v 1.5 2000/09/11 11:09:57 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// G4SolidStore
|
||||
//
|
||||
@@ -27,7 +27,8 @@ G4SolidStore::G4SolidStore() : G4RWTPtrOrderedVector<G4VSolid>(100)
|
||||
// Destructor
|
||||
G4SolidStore::~G4SolidStore()
|
||||
{
|
||||
clearAndDestroy();
|
||||
while (!isEmpty()) removeFirst();
|
||||
// clearAndDestroy();
|
||||
}
|
||||
|
||||
// Static class variable
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VPVParameterisation.cc,v 1.2 1999/12/15 14:49:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// Default implementations for Parameterisations that do not
|
||||
// parameterise solid and/or material
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VPhysicalVolume.cc,v 1.3 1999/12/15 14:49:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// class G4VPhysicalVolume Implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VSolid.cc,v 1.4 2000/04/11 16:18:15 johna Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VSolid.cc,v 1.6 2000/11/16 14:29:23 grichine Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4VSolid
|
||||
//
|
||||
@@ -16,6 +16,8 @@
|
||||
// History:
|
||||
// 10.07.95 P.Kent Added == operator, solid Store entry
|
||||
// 30.06.95 P.Kent
|
||||
// 15.11.00 D.Williams, V.Grichine change in CalculateClippedPolygonExtent:
|
||||
// else if(component>pMax) ---> if
|
||||
|
||||
#include "G4VSolid.hh"
|
||||
#include "G4SolidStore.hh"
|
||||
@@ -59,34 +61,43 @@ void G4VSolid::ComputeDimensions(G4VPVParameterisation* p,
|
||||
G4Exception("G4VSolid::ComputeDimensions called illegally: not overloaded by derived class");
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Calculate the maximum and minimum extents of the convex polygon pPolygon
|
||||
// along the axis pAxis, within the limits pVoxelLimit
|
||||
//
|
||||
|
||||
void G4VSolid::CalculateClippedPolygonExtent(G4ThreeVectorList& pPolygon,
|
||||
const G4VoxelLimits& pVoxelLimit,
|
||||
const EAxis pAxis,
|
||||
G4double& pMin, G4double& pMax) const
|
||||
{
|
||||
G4int noLeft,i;
|
||||
G4double component;
|
||||
ClipPolygon(pPolygon,pVoxelLimit);
|
||||
noLeft=pPolygon.entries();
|
||||
if (noLeft)
|
||||
{
|
||||
for (i=0;i<noLeft;i++)
|
||||
{
|
||||
component=pPolygon(i).operator()(pAxis);
|
||||
if (component<pMin)
|
||||
{
|
||||
pMin=component;
|
||||
}
|
||||
else if (component>pMax)
|
||||
{
|
||||
pMax=component;
|
||||
}
|
||||
}
|
||||
}
|
||||
G4int noLeft,i;
|
||||
G4double component;
|
||||
ClipPolygon(pPolygon,pVoxelLimit);
|
||||
noLeft = pPolygon.entries();
|
||||
|
||||
if (noLeft)
|
||||
{
|
||||
for (i=0;i<noLeft;i++)
|
||||
{
|
||||
component = pPolygon(i).operator()(pAxis);
|
||||
|
||||
if (component < pMin)
|
||||
{
|
||||
pMin = component;
|
||||
}
|
||||
// else
|
||||
if (component > pMax)
|
||||
{
|
||||
pMax = component;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Calculate the maximum and minimum extents of the polygon described
|
||||
// by the vertices: pSectionIndex->pSectionIndex+1->
|
||||
// pSectionIndex+2->pSectionIndex+3->pSectionIndex
|
||||
@@ -337,3 +348,13 @@ G4VisExtent G4VSolid::GetExtent () const {
|
||||
extent.SetZmax (vmax);
|
||||
return extent;
|
||||
}
|
||||
|
||||
G4Polyhedron* G4VSolid::CreatePolyhedron () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
G4NURBS* G4VSolid::CreateNURBS () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VoxelLimits.cc,v 1.2 1999/12/15 14:49:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VoxelLimits.cc,v 1.3 2000/11/01 15:39:36 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// class G4VoxelLimits
|
||||
//
|
||||
@@ -105,7 +105,7 @@ G4bool G4VoxelLimits::ClipToLimits(G4ThreeVector& pStart,
|
||||
y2=pEnd.y();
|
||||
z2=pEnd.z();
|
||||
|
||||
do
|
||||
while (sCode!=eCode)
|
||||
{
|
||||
|
||||
// Copy vectors to work variables x1-z1,x2-z2
|
||||
@@ -211,7 +211,7 @@ G4bool G4VoxelLimits::ClipToLimits(G4ThreeVector& pStart,
|
||||
pEnd=G4ThreeVector(x2,y2,z2);
|
||||
sCode=OutCode(pStart);
|
||||
eCode=OutCode(pEnd);
|
||||
} while (sCode!=eCode);
|
||||
}
|
||||
|
||||
if (sCode==0&&eCode==0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user