9#ifndef TRKSURFACES_INVALIDBOUNDS_H
10#define TRKSURFACES_INVALIDBOUNDS_H
72 virtual double r()
const override {
return std::nan(
""); }
75 virtual MsgStream&
dump(MsgStream& sl)
const override;
78 virtual std::ostream&
dump(std::ostream& sl)
const override;
86 sl <<
"Trk::InvalidBounds ... invalid surface" <<
endmsg;
93 sl <<
"Trk::InvalidBounds ... invalid surface" << std::endl;
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
virtual bool inside(const Amg::Vector2D &, const BoundaryCheck &) const override
virtual double minDistance(const Amg::Vector2D &) const override
Minimal distance to boundary (=0 if inside)
virtual SurfaceBounds::BoundsType type() const override
Return SurfaceBounds for persistency.
virtual InvalidBounds * clone() const override
Invalidate cloning of an invalid object.
InvalidBounds(const InvalidBounds &)=default
virtual bool operator!=(const SurfaceBounds &) const override
Non-Equality operator.
InvalidBounds()=default
Default Constructor.
InvalidBounds & operator=(const InvalidBounds &)=default
virtual bool inside(const Amg::Vector2D &, double=0., double=0.) const override
Method inside() returns false for any case.
virtual bool insideLoc1(const Amg::Vector2D &, double=0.) const override
This method checks inside bounds in loc1.
InvalidBounds(InvalidBounds &&) noexcept=default
InvalidBounds * operator&()
'address of' will return nullptr
virtual MsgStream & dump(MsgStream &sl) const override
Output Method for MsgStream.
virtual bool insideLoc2(const Amg::Vector2D &, double=0.) const override
This method checks inside bounds in loc2.
virtual double r() const override
r() method to complete inherited interface
SurfaceBounds()=default
Default Constructor.
BoundsType
This enumerator simplifies the persistency, by saving a dynamic_cast to happen.
Eigen::Matrix< double, 2, 1 > Vector2D
Ensure that the ATLAS eigen extensions are properly loaded.