9#ifndef TRKDETDESCRGEOMODELCNV_VOLUMEINTERSECTION_H
10#define TRKDETDESCRGEOMODELCNV_VOLUMEINTERSECTION_H
33 std::vector<std::pair<double, double>>
edges{};
42 EdgeCross(std::pair<int, int> ei, std::pair<double, double> ep)
58 static std::pair<bool, std::unique_ptr<Trk::Volume>>
intersect(
69 static bool inside(
const std::pair<double, double>& vtx,
70 const std::vector<std::pair<double, double>>& pgon) ;
72 static double det(
const std::pair<double, double>&
a,
73 const std::pair<double, double>& b,
bool) ;
void swap(DataVector< T > &a, DataVector< T > &b)
See DataVector<T, BASE>::swap().
A Simple Helper Class that collects methods for calculation of overlap of two geometrical objects.
static std::pair< bool, std::unique_ptr< Trk::Volume > > intersect(const Volume &volA, const Volume &volB)
static std::pair< bool, std::unique_ptr< Trk::Volume > > intersectApproximative(const Volume &volA, const Volume &volB)
static Trk::PolygonCache intersectPgon(Trk::PolygonCache &, Trk::PolygonCache &)
static PolygonCache polygonXY(const Volume &inVol, int swap=0)
static double det(const std::pair< double, double > &a, const std::pair< double, double > &b, bool)
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
EdgeCross(std::pair< int, int > ei, std::pair< double, double > ep)
std::pair< int, int > edge_id
std::pair< double, double > edge_pos
std::vector< std::pair< double, double > > xyVertices
std::vector< Amg::Vector3D > vertices
std::vector< std::pair< double, double > > edges
std::vector< bool > commonVertices