OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
BoundingBox Class Reference

#include <BoundingBox.h>

Collaboration diagram for BoundingBox:
Collaboration graph

Public Member Functions

 BoundingBox ()
 
void enlargeToContainPosition (const Vector_t< double, 3 > &position)
 
void enlargeToContainBoundingBox (const BoundingBox &boundingBox)
 
std::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 32 of file BoundingBox.h.

Constructor & Destructor Documentation

◆ BoundingBox()

BoundingBox::BoundingBox ( )

Definition at line 27 of file BoundingBox.cpp.

Member Function Documentation

◆ enlargeToContainBoundingBox()

void BoundingBox::enlargeToContainBoundingBox ( const BoundingBox boundingBox)

Definition at line 47 of file BoundingBox.cpp.

References lowerLeftCorner_m, and upperRightCorner_m.

Referenced by OrbitThreader::computeBoundingBox().

◆ enlargeToContainPosition()

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

◆ getBoundingBox()

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

Definition at line 31 of file BoundingBox.cpp.

References enlargeToContainPosition().

Referenced by ElementBase::getBoundingBoxInLabCoords().

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 55 of file BoundingBox.h.

References lowerLeftCorner_m, and upperRightCorner_m.

◆ getIntersectionPoint()

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

Definition at line 54 of file BoundingBox.cpp.

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

Referenced by OrbitThreader::computeDriftLengthToBoundingBox().

Here is the call graph for this function:

◆ isInside()

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

Definition at line 103 of file BoundingBox.cpp.

References lowerLeftCorner_m, and upperRightCorner_m.

Referenced by isOutside().

◆ isOutside()

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

Definition at line 59 of file BoundingBox.h.

References isInside().

Referenced by ParallelTracker::hasEndOfLineReached().

Here is the call graph for this function:

◆ print()

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

Definition at line 112 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: