OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
BoundingBox Class Reference

#include <BoundingBox.h>

Collaboration diagram for BoundingBox:

Public Member Functions

 BoundingBox ()
void enlargeToContainPosition (const Vector_t< double, 3 > &position)
void enlargeToContainBoundingBox (const BoundingBox &boundingBox)
boost::optional< Vector_t< double, 3 > > getIntersectionPoint (const Vector_t< double, 3 > &position, const Vector_t< double, 3 > &direction) const
bool isInside (const Vector_t< double, 3 > &position) const
bool isOutside (const Vector_t< double, 3 > &position) const
void print (std::ostream &output) const
std::pair< Vector_t< double, 3 >, Vector_t< double, 3 > > getCorners () const

Static Public Member Functions

static BoundingBox getBoundingBox (const std::vector< Vector_t< double, 3 > > &positions)

Private Attributes

Vector_t< double, 3 > lowerLeftCorner_m
Vector_t< double, 3 > upperRightCorner_m

Detailed Description

Definition at line 33 of file BoundingBox.h.

Constructor & Destructor Documentation

◆ BoundingBox()

BoundingBox::BoundingBox ( )

Definition at line 27 of file BoundingBox.cpp.

References lowerLeftCorner_m, and upperRightCorner_m.

Referenced by enlargeToContainBoundingBox(), and getBoundingBox().

Here is the caller graph for this function:

Member Function Documentation

◆ enlargeToContainBoundingBox()

void BoundingBox::enlargeToContainBoundingBox ( const BoundingBox & boundingBox)

Definition at line 48 of file BoundingBox.cpp.

References BoundingBox(), lowerLeftCorner_m, and upperRightCorner_m.

Here is the call graph for this function:

◆ enlargeToContainPosition()

void BoundingBox::enlargeToContainPosition ( const Vector_t< double, 3 > & position)

Definition at line 41 of file BoundingBox.cpp.

References lowerLeftCorner_m, and upperRightCorner_m.

Referenced by getBoundingBox().

Here is the caller graph for this function:

◆ getBoundingBox()

BoundingBox BoundingBox::getBoundingBox ( const std::vector< Vector_t< double, 3 > > & positions)
static

Definition at line 32 of file BoundingBox.cpp.

References BoundingBox(), and enlargeToContainPosition().

Here is the call graph for this function:

◆ getCorners()

std::pair< Vector_t< double, 3 >, Vector_t< double, 3 > > BoundingBox::getCorners ( ) const
inline

Definition at line 56 of file BoundingBox.h.

References lowerLeftCorner_m, and upperRightCorner_m.

◆ getIntersectionPoint()

boost::optional< Vector_t< double, 3 > > BoundingBox::getIntersectionPoint ( const Vector_t< double, 3 > & position,
const Vector_t< double, 3 > & direction ) const

Definition at line 55 of file BoundingBox.cpp.

References dot(), euclidean_norm(), lowerLeftCorner_m, and upperRightCorner_m.

Here is the call graph for this function:

◆ isInside()

bool BoundingBox::isInside ( const Vector_t< double, 3 > & position) const

Definition at line 100 of file BoundingBox.cpp.

References lowerLeftCorner_m, and upperRightCorner_m.

Referenced by isOutside().

Here is the caller graph for this function:

◆ isOutside()

bool BoundingBox::isOutside ( const Vector_t< double, 3 > & position) const
inline

Definition at line 60 of file BoundingBox.h.

References isInside().

Referenced by ParallelTracker::hasEndOfLineReached().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print()

void BoundingBox::print ( std::ostream & output) const

Definition at line 110 of file BoundingBox.cpp.

References lowerLeftCorner_m, and upperRightCorner_m.

Member Data Documentation

◆ lowerLeftCorner_m

Vector_t<double, 3> BoundingBox::lowerLeftCorner_m
private

◆ upperRightCorner_m

Vector_t<double, 3> BoundingBox::upperRightCorner_m
private

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