9#ifndef TRKVOLUMES_VOLUMEBOUNDS_H
10#define TRKVOLUMES_VOLUMEBOUNDS_H
17#include "GaudiKernel/MsgStream.h"
69 bool forceInside =
false)
const = 0;
72 virtual MsgStream&
dump(MsgStream& sl)
const = 0;
75 virtual std::ostream&
dump(std::ostream& sl)
const = 0;
Define macros for attributes used to control the static checker.
Abstract Base Class for tracking surfaces.
Pure Absract Base Class for Volume bounds.
virtual ~VolumeBounds()
Destructor.
virtual VolumeBounds * clone() const =0
clone() method to make deep copy in Volume copy constructor and for assigment operator of the Surface...
virtual MsgStream & dump(MsgStream &sl) const =0
Output Method for MsgStream, to be overloaded by child classes.
virtual ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const =0
Provide accessor for BoundarySurfaces.
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform)=0
Method to decompose the Bounds into Surfaces, the Volume can turn them into BoundarySurfaces.
virtual bool inside(const Amg::Vector3D &pos, double tol=0.) const =0
Checking if position given in volume frame is inside.
VolumeBounds()
Default Constructor.
virtual std::ostream & dump(std::ostream &sl) const =0
Output Method for std::ostream, to be overloaded by child classes.
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output