OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
#include <ElementBase.h>
Public Member Functions | |
void | getCombinedBoundingBox (const BoundingBox &other) |
bool | isInside (const Vector_t &) const |
void | print (std::ostream &) const |
boost::optional< Vector_t > | getPointOfIntersection (const Vector_t &position, const Vector_t &direction) const |
Static Public Member Functions | |
static BoundingBox | getBoundingBox (const std::vector< Vector_t > &points) |
Public Attributes | |
Vector_t | lowerLeftCorner |
Vector_t | upperRightCorner |
Definition at line 341 of file ElementBase.h.
|
static |
Definition at line 331 of file ElementBase.cpp.
Referenced by OrbitThreader::updateBoundingBoxWithCurrentPosition().
|
inline |
Definition at line 347 of file ElementBase.h.
References lowerLeftCorner, max(), min(), and upperRightCorner.
Referenced by OrbitThreader::computeBoundingBox(), and OrbitThreader::updateBoundingBoxWithCurrentPosition().
boost::optional< Vector_t > ElementBase::BoundingBox::getPointOfIntersection | ( | const Vector_t & | position, |
const Vector_t & | direction | ||
) | const |
Computes the intersection point between a bounding box and the ray which has the direction 'direction' and starts at the position 'position'. If the position is inside the box then the algorithm should find an inter- section point.
position | the position where the ray starts |
direction | the direction of the ray |
Definition at line 357 of file ElementBase.cpp.
References abs(), Physics::e, and euclidean_norm().
Referenced by OrbitThreader::computeDriftLengthToBoundingBox().
bool ElementBase::BoundingBox::isInside | ( | const Vector_t & | position | ) | const |
Definition at line 342 of file ElementBase.cpp.
void ElementBase::BoundingBox::print | ( | std::ostream & | out | ) | const |
Definition at line 427 of file ElementBase.cpp.
References endl().
Vector_t ElementBase::BoundingBox::lowerLeftCorner |
Definition at line 342 of file ElementBase.h.
Referenced by OrbitThreader::computeBoundingBox(), ElementBase::getBoundingBoxInLabCoords(), Bend2D::getBoundingBoxInLabCoords(), and getCombinedBoundingBox().
Vector_t ElementBase::BoundingBox::upperRightCorner |
Definition at line 343 of file ElementBase.h.
Referenced by OrbitThreader::computeBoundingBox(), ElementBase::getBoundingBoxInLabCoords(), Bend2D::getBoundingBoxInLabCoords(), and getCombinedBoundingBox().