EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::ConvexPolygonBounds< PolygonDynamic > Class Template Reference

#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/ConvexPolygonBounds.hpp>

+ Inheritance diagram for Acts::ConvexPolygonBounds< PolygonDynamic >:
+ Collaboration diagram for Acts::ConvexPolygonBounds< PolygonDynamic >:

Public Member Functions

 ConvexPolygonBounds ()=delete
 Default constructor, deleted.
 
 ~ConvexPolygonBounds () override=default
 Defaulted destructor.
 
 ConvexPolygonBounds (const std::vector< Vector2D > &vertices)
 
BoundsType type () const final
 
bool inside (const Vector2D &lposition, const BoundaryCheck &bcheck) const final
 
std::vector< Vector2Dvertices (unsigned int lseg=1) const final
 
const RectangleBoundsboundingBox () const final
 
- Public Member Functions inherited from Acts::ConvexPolygonBoundsBase
std::ostream & toStream (std::ostream &sl) const final
 
std::vector< double > values () const final
 

Private Member Functions

void checkConsistency () const noexcept(false)
 

Private Attributes

boost::container::small_vector
< Vector2D, 10 > 
m_vertices
 
RectangleBounds m_boundingBox
 

Additional Inherited Members

- Public Types inherited from Acts::SurfaceBounds
enum  BoundsType : int {
  eCone = 0, eCylinder = 1, eDiamond = 2, eDisc = 3,
  eEllipse = 5, eLine = 6, eRectangle = 7, eTrapezoid = 8,
  eTriangle = 9, eDiscTrapezoid = 10, eConvexPolygon = 11, eAnnulus = 12,
  eBoundless = 13, eOther = 14
}
 
- Static Protected Member Functions inherited from Acts::ConvexPolygonBoundsBase
template<typename coll_t >
static RectangleBounds makeBoundingBox (const coll_t &vertices)
 
template<typename coll_t >
static void convex_impl (const coll_t &vertices) noexcept(false)
 

Detailed Description

template<>
class Acts::ConvexPolygonBounds< PolygonDynamic >

This is the specialization handling a polygon with a dynamic number of points. It can accept any number of points.

Definition at line 137 of file ConvexPolygonBounds.hpp.

View newest version in sPHENIX GitHub at line 137 of file ConvexPolygonBounds.hpp

Constructor & Destructor Documentation

Default constructor, deleted.

Defaulted destructor.

Constructor from a vector of vertices, to facilitate construction. This will throw if the vertices do not form a convex polygon.

Parameters
verticesThe list of vertices.

Member Function Documentation

const RectangleBounds& Acts::ConvexPolygonBounds< PolygonDynamic >::boundingBox ( ) const
finalvirtual

Return a rectangle bounds object that encloses this polygon.

Returns
The rectangular bounds

Implements Acts::PlanarBounds.

void Acts::ConvexPolygonBounds< PolygonDynamic >::checkConsistency ( ) const
privatenoexcept

Return whether this bounds class is in fact convex thorws a logic error if not

bool Acts::ConvexPolygonBounds< PolygonDynamic >::inside ( const Vector2D lposition,
const BoundaryCheck bcheck 
) const
finalvirtual

Return whether a local 2D point lies inside of the bounds defined by this object.

Parameters
lpositionThe local position to check
bcheckThe BoundaryCheck object handling tolerances.
Returns
Whether the points is inside

Implements Acts::SurfaceBounds.

BoundsType Acts::ConvexPolygonBounds< PolygonDynamic >::type ( ) const
finalvirtual

Return the bounds type of this bounds object.

Returns
The bounds type

Implements Acts::SurfaceBounds.

std::vector<Vector2D> Acts::ConvexPolygonBounds< PolygonDynamic >::vertices ( unsigned int  lseg = 1) const
finalvirtual

Return the vertices

Parameters
lsegthe number of segments used to approximate and eventually curved line
Note
the number of segements is ignored in this representation
Returns
vector for vertices in 2D

Implements Acts::PlanarBounds.

Member Data Documentation

Definition at line 180 of file ConvexPolygonBounds.hpp.

View newest version in sPHENIX GitHub at line 180 of file ConvexPolygonBounds.hpp

boost::container::small_vector<Vector2D, 10> Acts::ConvexPolygonBounds< PolygonDynamic >::m_vertices
private

Definition at line 179 of file ConvexPolygonBounds.hpp.

View newest version in sPHENIX GitHub at line 179 of file ConvexPolygonBounds.hpp


The documentation for this class was generated from the following file: