9#ifndef TRKVOLUMES_SUBTRACTEDVOLUMEBOUNDS_H
10#define TRKVOLUMES_SUBTRACTEDVOLUMEBOUNDS_H
71 bool forceInside = false)
const override final;
85 MsgStream&
dump(MsgStream& sl)
const override;
108 return (
m_outer->inside(pos, tol) && !
m_inner->inside(pos, -tol));
Eigen::Affine3d Transform3D
SubtractedVolumeBounds()
Default Constructor.
EightObjectsAccessor m_objectAccessor
There's only one single object Acessor for the moment has to be implemented if Subtracteds are used m...
const Volume * inner() const
This method returns the inner Volume.
const Volume * outer() const
This method returns the outer Volume.
const std::vector< bool > & boundsOrientation() const
This method returns bounds orientation.
std::unique_ptr< Volume > m_inner
std::unique_ptr< Volume > m_outer
SubtractedVolumeBounds * clone() const override final
Virtual constructor.
virtual ~SubtractedVolumeBounds()
Destructor.
static Trk::Volume * createSubtractedVolume(const Amg::Transform3D &transf, Trk::Volume *subtrVol)
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final
Provide accessor for BoundarySurfaces.
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform) override final
Method to decompose the Bounds into boundarySurfaces.
bool inside(const Amg::Vector3D &, double tol=0.) const override final
This method checks if position in the 3D volume frame is inside the cylinder.
SubtractedVolumeBounds & operator=(const SubtractedVolumeBounds &bobo)
Assignment operator.
std::vector< bool > m_boundsOrientation
Abstract base class for surface bounds to be specified.
Abstract Base Class for tracking surfaces.
VolumeBounds()
Default Constructor.
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
std::array< ObjectAccessor::value_type, 8 > EightObjectsAccessor