ATLAS Offline Software
|
#include <AbstractVolume.h>
Public Member Functions | |
AbstractVolume () | |
Default Constructor - needed for pool and inherited classes. More... | |
AbstractVolume (const AbstractVolume &vol) | |
Copy constructor. More... | |
AbstractVolume (Amg::Transform3D *htrans, VolumeBounds *volbounds) | |
Constructor with Amg::Transform3D*, VolumeBounds*, passing ownership. More... | |
virtual | ~AbstractVolume () |
Virtual Destructor. More... | |
AbstractVolume & | operator= (const AbstractVolume &vol) |
Assignment operator. More... | |
AbstractVolume * | clone () const |
Implicit constructor. More... | |
const std::vector< SharedObject< const BoundarySurface< AbstractVolume > > > & | boundarySurfaces () const |
Method to return the BoundarySurfaces. More... | |
const Amg::Transform3D & | transform () const |
Return methods for geometry transform. More... | |
const Amg::Vector3D & | center () const |
returns the center of the volume More... | |
const VolumeBounds & | volumeBounds () const |
returns the volumeBounds() More... | |
VolumeBounds & | volumeBounds () |
bool | inside (const Amg::Vector3D &gp, double tol=0.) const |
Inside() method for checks. More... | |
ObjectAccessor | boundarySurfaceAccessor (const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool forceInside=false) const |
Provide accessor for BoundarySurfaces. More... | |
Protected Attributes | |
std::unique_ptr< Amg::Transform3D > | m_transform |
HepGeom::Transform3D. More... | |
CxxUtils::CachedUniquePtr< Amg::Vector3D > | m_center |
center position of the surface More... | |
SharedObject< VolumeBounds > | m_volumeBounds |
the volumeBounds More... | |
Private Member Functions | |
void | createBoundarySurfaces () |
Private method to create BoundarySurfaces. More... | |
Private Attributes | |
std::vector< SharedObject< const BoundarySurface< AbstractVolume > > > * | m_boundarySurfaces |
boundary Surfaces More... | |
AbstractVolume description inside the tracking realm. This is the purely geometrical object volume.
The Trk::AbstractVolume is constructed by giving a pointer to a HepGeom::Transform3D and a pointer to Trk::VolumeBounds, this implies that the ownership of the objects pointed to is passed as well.
A Trk::AbstractVolume is in first place a collection class of Trk::BoundarySurface, the vector of Trk::BoundarySurface is returned by the Trk::VolumeBounds that carry a decompose method.
Boundary surfaces can be shared between AbstractVolumes to enhance automatic navigation between AbstractVolumes, therefor they are reference counted by a Trk::SharedObject holder class.
Definition at line 51 of file AbstractVolume.h.
Trk::AbstractVolume::AbstractVolume | ( | ) |
Default Constructor - needed for pool and inherited classes.
Definition at line 30 of file AbstractVolume.cxx.
Trk::AbstractVolume::AbstractVolume | ( | const AbstractVolume & | vol | ) |
Copy constructor.
Definition at line 46 of file AbstractVolume.cxx.
Trk::AbstractVolume::AbstractVolume | ( | Amg::Transform3D * | htrans, |
Trk::VolumeBounds * | volbounds | ||
) |
Constructor with Amg::Transform3D*, VolumeBounds*, passing ownership.
Definition at line 36 of file AbstractVolume.cxx.
|
virtual |
Virtual Destructor.
Definition at line 52 of file AbstractVolume.cxx.
|
inherited |
const std::vector< Trk::SharedObject< const Trk::BoundarySurface< Trk::AbstractVolume > > > & Trk::AbstractVolume::boundarySurfaces | ( | ) | const |
Method to return the BoundarySurfaces.
Definition at line 73 of file AbstractVolume.cxx.
|
inlineinherited |
|
inlinevirtual |
Implicit constructor.
Reimplemented from Trk::Volume.
Definition at line 84 of file AbstractVolume.h.
|
private |
|
inherited |
Trk::AbstractVolume & Trk::AbstractVolume::operator= | ( | const AbstractVolume & | vol | ) |
|
inlineinherited |
Return methods for geometry transform.
|
inlineinherited |
|
inlineinherited |
returns the volumeBounds()
|
private |
boundary Surfaces
Definition at line 81 of file AbstractVolume.h.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |