29#ifndef G4DNABoundingBox_hh
30#define G4DNABoundingBox_hh 1
39 template <
typename Iterator>
54 std::array<G4DNABoundingBox, 8>
partition()
const;
72 G4double fxhi, fxlo, fyhi, fylo, fzhi, fzlo;
76 -std::numeric_limits<G4double>::max(), std::numeric_limits<G4double>::max(),
77 -std::numeric_limits<G4double>::max(), std::numeric_limits<G4double>::max(),
78 -std::numeric_limits<G4double>::max(), std::numeric_limits<G4double>::max()
82 std::numeric_limits<G4double>::quiet_NaN(),
83 std::numeric_limits<G4double>::quiet_NaN(),
84 std::numeric_limits<G4double>::quiet_NaN(),
85 std::numeric_limits<G4double>::quiet_NaN(),
86 std::numeric_limits<G4double>::quiet_NaN() };
97 return std::abs(fxhi - fxlo) * 0.5;
102 return std::abs(fyhi - fylo) * 0.5;
107 return std::abs(fzhi - fzlo) * 0.5;
110template <
typename Iterator>
114 for(; begin != end; ++begin)
const G4DNABoundingBox initial
const G4DNABoundingBox invalid
~G4DNABoundingBox()=default
void resize(G4ThreeVector pics[8])
G4bool operator!=(const G4DNABoundingBox &rhs) const
G4DNABoundingBox(const std::initializer_list< G4double > &l)
G4ThreeVector middlePoint() const
G4double halfSideLengthInY() const
G4DNABoundingBox translate(const G4ThreeVector &trans) const
G4DNABoundingBox()=default
G4bool operator==(const G4DNABoundingBox &rhs) const
G4DNABoundingBox(const G4DNABoundingBox &)=default
std::array< G4DNABoundingBox, 8 > partition() const
friend std::ostream & operator<<(std::ostream &s, const G4DNABoundingBox &rhs)
G4bool overlap(const G4DNABoundingBox &other, G4DNABoundingBox *out) const
G4DNABoundingBox & operator=(const G4DNABoundingBox &)=default
G4bool contains(const G4DNABoundingBox &other) const
G4double halfSideLengthInZ() const
G4double halfSideLengthInX() const