ATLAS Offline Software
|
#include <SimplePolygonBrepVolumeBounds.h>
Public Member Functions | |
SimplePolygonBrepVolumeBounds () | |
Default Constructor. More... | |
SimplePolygonBrepVolumeBounds (std::vector< std::pair< float, float > > xyvtx, float hlengthz) | |
Constructor - generic case (from float) More... | |
SimplePolygonBrepVolumeBounds (std::vector< std::pair< double, double > > xyvtx, double hlengthz) | |
Constructor - generic case (from double) More... | |
SimplePolygonBrepVolumeBounds (const SimplePolygonBrepVolumeBounds &bobo) | |
Copy Constructor. More... | |
virtual | ~SimplePolygonBrepVolumeBounds () |
Destructor. More... | |
SimplePolygonBrepVolumeBounds & | operator= (const SimplePolygonBrepVolumeBounds &bobo) |
Assignment operator. More... | |
SimplePolygonBrepVolumeBounds * | clone () const override final |
Virtual constructor. More... | |
bool | inside (const Amg::Vector3D &, double tol=0.) const override final |
This method checks if position in the 3D volume frame is inside the volume. More... | |
const std::vector< const Trk::Surface * > * | decomposeToSurfaces (const Amg::Transform3D &transform) override final |
Method to decompose the Bounds into Surfaces. More... | |
ObjectAccessor | boundarySurfaceAccessor (const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final |
Provide accessor for BoundarySurfaces. More... | |
std::vector< std::pair< double, double > > | xyVertices () const |
This method returns the set of xy generating vertices. More... | |
double | halflengthZ () const |
This method returns the halflength in local z. More... | |
const Trk::Volume * | combinedVolume () const |
This method returns the transcript into combined volume. More... | |
const Trk::Volume * | envelope () const |
This method returns the volume envelope. More... | |
MsgStream & | dump (MsgStream &sl) const override |
Output Method for MsgStream. More... | |
std::ostream & | dump (std::ostream &sl) const override |
Output Method for std::ostream. More... | |
Private Member Functions | |
void | processSubVols () |
Trk::PlaneSurface * | sideSurf (const Amg::Transform3D &, unsigned int, unsigned int) const |
bool | Left (std::pair< double, double > a, std::pair< double, double > b, std::pair< double, double > c) const |
bool | Intersect (std::pair< double, double > a, std::pair< double, double > b, std::pair< double, double > c, std::pair< double, double > d) const |
bool | InCone (int i, int j, const std::vector< std::pair< double, double > > &inputVertices) const |
bool | Diagonalie (int i, int j, const std::vector< std::pair< double, double > > &inputVertices) const |
bool | Diagonal (int i, int j, const std::vector< std::pair< double, double > > &inputVertices) const |
std::vector< std::pair< double, double > > | TriangulatePolygon (const std::vector< std::pair< double, double > > &Vertices) const |
std::vector< std::pair< double, double > > | TriangulatePolygonCheck (const std::vector< std::pair< double, double > > &Vertices) |
Static Private Member Functions | |
static bool | Xor (bool x, bool y) |
Private Attributes | |
std::vector< std::pair< double, double > > | m_xyVtx |
generating xy vertices More... | |
double | m_halfX |
halflength in x - to define enclosing rectangle More... | |
double | m_halfY |
halflength in y - to define enclosing rectangle More... | |
double | m_halfZ |
halflength in z More... | |
int | m_ordering |
-1 not set/ 1 anticlockwise / 0 clockwise More... | |
const Trk::Volume * | m_combinedVolume |
triangulated polygon More... | |
const Trk::Volume * | m_envelope |
simplified envelope More... | |
Trk::EightObjectsAccessor | m_objectAccessor |
There's only one single object Acessor for the moment has to be implemented if Cuboids are used more widely. More... | |
Bounds for the exact transcript of the GeoSimplePolygonBrep; volume defined by combination of symm.trapezoids
BoundarySurfaceFace [index]:
- negativeFaceXY [0] : Trk::SubtractedPlaneSurface, parallel to \f$ xy \f$ plane at negative \f$ z
\( - positiveFaceXY [1] : Trk::SubtractedPlaneSurface, parallel to \) xy \( plane at positive \) z
Definition at line 44 of file SimplePolygonBrepVolumeBounds.h.
Trk::SimplePolygonBrepVolumeBounds::SimplePolygonBrepVolumeBounds | ( | ) |
Trk::SimplePolygonBrepVolumeBounds::SimplePolygonBrepVolumeBounds | ( | std::vector< std::pair< float, float > > | xyvtx, |
float | hlengthz | ||
) |
Constructor - generic case (from float)
Trk::SimplePolygonBrepVolumeBounds::SimplePolygonBrepVolumeBounds | ( | std::vector< std::pair< double, double > > | xyvtx, |
double | hlengthz | ||
) |
Constructor - generic case (from double)
Trk::SimplePolygonBrepVolumeBounds::SimplePolygonBrepVolumeBounds | ( | const SimplePolygonBrepVolumeBounds & | bobo | ) |
|
virtual |
Destructor.
Definition at line 142 of file SimplePolygonBrepVolumeBounds.cxx.
|
inlinefinaloverridevirtual |
Provide accessor for BoundarySurfaces.
Implements Trk::VolumeBounds.
Definition at line 164 of file SimplePolygonBrepVolumeBounds.h.
|
inlinefinaloverridevirtual |
Virtual constructor.
Implements Trk::VolumeBounds.
Definition at line 142 of file SimplePolygonBrepVolumeBounds.h.
|
inline |
This method returns the transcript into combined volume.
Definition at line 155 of file SimplePolygonBrepVolumeBounds.h.
|
finaloverridevirtual |
Method to decompose the Bounds into Surfaces.
Implements Trk::VolumeBounds.
Definition at line 170 of file SimplePolygonBrepVolumeBounds.cxx.
|
private |
Definition at line 417 of file SimplePolygonBrepVolumeBounds.cxx.
|
private |
Definition at line 391 of file SimplePolygonBrepVolumeBounds.cxx.
|
overridevirtual |
Output Method for MsgStream.
Implements Trk::VolumeBounds.
Definition at line 293 of file SimplePolygonBrepVolumeBounds.cxx.
|
overridevirtual |
Output Method for std::ostream.
Implements Trk::VolumeBounds.
Definition at line 307 of file SimplePolygonBrepVolumeBounds.cxx.
|
inline |
This method returns the volume envelope.
Definition at line 160 of file SimplePolygonBrepVolumeBounds.h.
|
inline |
This method returns the halflength in local z.
Definition at line 151 of file SimplePolygonBrepVolumeBounds.h.
|
private |
Definition at line 367 of file SimplePolygonBrepVolumeBounds.cxx.
|
finaloverridevirtual |
This method checks if position in the 3D volume frame is inside the volume.
Implements Trk::VolumeBounds.
Definition at line 255 of file SimplePolygonBrepVolumeBounds.cxx.
|
private |
|
private |
Definition at line 338 of file SimplePolygonBrepVolumeBounds.cxx.
Trk::SimplePolygonBrepVolumeBounds & Trk::SimplePolygonBrepVolumeBounds::operator= | ( | const SimplePolygonBrepVolumeBounds & | bobo | ) |
|
private |
Definition at line 262 of file SimplePolygonBrepVolumeBounds.cxx.
|
private |
Definition at line 209 of file SimplePolygonBrepVolumeBounds.cxx.
|
private |
Definition at line 429 of file SimplePolygonBrepVolumeBounds.cxx.
|
private |
Definition at line 505 of file SimplePolygonBrepVolumeBounds.cxx.
|
staticprivate |
Definition at line 326 of file SimplePolygonBrepVolumeBounds.cxx.
|
inline |
This method returns the set of xy generating vertices.
Definition at line 147 of file SimplePolygonBrepVolumeBounds.h.
|
private |
triangulated polygon
Definition at line 134 of file SimplePolygonBrepVolumeBounds.h.
|
private |
simplified envelope
Definition at line 135 of file SimplePolygonBrepVolumeBounds.h.
|
private |
halflength in x - to define enclosing rectangle
Definition at line 129 of file SimplePolygonBrepVolumeBounds.h.
|
private |
halflength in y - to define enclosing rectangle
Definition at line 130 of file SimplePolygonBrepVolumeBounds.h.
|
private |
halflength in z
Definition at line 131 of file SimplePolygonBrepVolumeBounds.h.
|
private |
There's only one single object Acessor for the moment has to be implemented if Cuboids are used more widely.
can we get rid of this ?
Definition at line 139 of file SimplePolygonBrepVolumeBounds.h.
|
private |
-1 not set/ 1 anticlockwise / 0 clockwise
Definition at line 133 of file SimplePolygonBrepVolumeBounds.h.
|
private |
generating xy vertices
Definition at line 128 of file SimplePolygonBrepVolumeBounds.h.