File RectangleBounds.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

class RectangleBounds : public Acts::PlanarBounds
#include <Acts/Surfaces/RectangleBounds.hpp>

Bounds for a rectangular, planar surface - it can be used to for rectangles that are symetrically centered around (0.

/0.) and for generic shifted rectangles

Public Types

enum BoundValues


enumerator eMinX
enumerator eMinY
enumerator eMaxX
enumerator eMaxY
enumerator eSize

Public Functions

RectangleBounds() = delete
inline RectangleBounds(double halfX, double halfY) noexcept(false)

Constructor with halflength in x and y - symmetric.

  • halfX – halflength in X

  • halfY – halflength in Y

inline RectangleBounds(const std::array<double, eSize> &values) noexcept(false)

Constructor - from fixed size array - generic.


values – The parameter values

inline RectangleBounds(const Vector2 &min, const Vector2 &max) noexcept(false)

Constructor - from min/max - generic.

  • min – The left bottom corner

  • max – The right top corning

~RectangleBounds() override = default
virtual const RectangleBounds &boundingBox() const final

Bounding box parameters.


rectangle bounds for a bounding box

inline double get(BoundValues bValue) const

Access to the bound values.


bValue – the class nested enum for the array access

inline double halfLengthX() const

Access to the half length in X.

inline double halfLengthY() const

Access to the half length in Y.

virtual bool inside(const Vector2 &lposition, const BoundaryCheck &bcheck) const final

Inside check for the bounds object driven by the boundary check directive Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds Inside can be called without/with tolerances.

  • lposition – Local position (assumed to be in right surface frame)

  • bcheck – boundary check directive


boolean indicator for the success of this operation

inline const Vector2 &max() const

Get the max vertex defining the bounds.


The max vertex

inline const Vector2 &min() const

Get the min vertex defining the bounds.


The min vertex

virtual std::ostream &toStream(std::ostream &sl) const final

Output Method for std::ostream.


sl – is the ostream for the dump

inline virtual BoundsType type() const final

Return the bounds type - for persistency optimization.


is a BoundsType enum

inline virtual std::vector<double> values() const final

Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds.


of the stored values for this SurfaceBounds object

virtual std::vector<Vector2> vertices(unsigned int lseg = 1) const final

Return the vertices.


the number of segements is ignored in this representation


lseg – the number of segments used to approximate and eventually curved line


vector for vertices in 2D

Private Functions

inline void checkConsistency() noexcept(false)

Check the input values for consistency, will throw a logic_exception if consistency is not given.

Private Members

Vector2 m_max
Vector2 m_min