1 #ifndef PMPL_ABSTRACT_BOUNDING_BOX_H_
2 #define PMPL_ABSTRACT_BOUNDING_BOX_H_
39 virtual
double GetMaxDist(const
double _r1 = 2., const
double _r2 = .5)
42 virtual const
Range<
double>&
GetRange(const
size_t _i) const override;
44 virtual const std::vector<
double>&
GetCenter() const noexcept override;
46 virtual
double GetVolume() const noexcept override;
54 virtual
void PushInside(std::vector<
double>& _sample) const noexcept override;
62 virtual
bool InBoundary(const std::vector<
double>& _p) const override;
68 virtual
double GetClearance(const Vector3d& _p) const override;
76 int GetSideID(const std::vector<
double>& _p) const;
82 virtual
void SetCenter(const std::vector<
double>& _c) noexcept override;
84 virtual
void Translate(const Vector3d& _v) override;
86 virtual
void Translate(const std::vector<
double>& _t) override;
88 virtual
void ResetBoundary(const std::vector<std::pair<
double,
double>>& _bbx,
89 const
double _margin) override;
97 virtual
void Write(std::ostream& _os) const override;
Definition: AbstractBoundingBox.h:12
AbstractBoundingBox(const size_t _n)
Definition: AbstractBoundingBox.cpp:16
virtual const Range< double > & GetRange(const size_t _i) const override
Definition: AbstractBoundingBox.cpp:68
virtual Vector3d GetClearancePoint(const Vector3d &_p) const override
Definition: AbstractBoundingBox.cpp:130
virtual size_t GetDimension() const noexcept override
Get the dimension of this boundary.
Definition: AbstractBoundingBox.cpp:48
virtual void Write(std::ostream &_os) const override
Definition: AbstractBoundingBox.cpp:210
virtual void Translate(const Vector3d &_v) override
Definition: AbstractBoundingBox.cpp:171
virtual double GetMaxDist(const double _r1=2., const double _r2=.5) const override
Definition: AbstractBoundingBox.cpp:55
virtual void SetCenter(const std::vector< double > &_c) noexcept override
Definition: AbstractBoundingBox.cpp:164
virtual double GetClearance(const Vector3d &_p) const override
Definition: AbstractBoundingBox.cpp:123
virtual double GetVolume() const noexcept override
Get the boundary's volume (Lebesgue Measure).
Definition: AbstractBoundingBox.cpp:85
virtual void Read(std::istream &_is, CountingStreamBuffer &_cbs) override
Definition: AbstractBoundingBox.cpp:196
virtual void ResetBoundary(const std::vector< std::pair< double, double >> &_bbx, const double _margin) override
Definition: AbstractBoundingBox.cpp:185
virtual const std::vector< double > & GetCenter() const noexcept override
Get the boundary's center point.
Definition: AbstractBoundingBox.cpp:78
virtual bool InBoundary(const Vector3d &_p) const
Definition: Boundary.cpp:94
virtual void PushInside(std::vector< double > &_sample) const noexcept override
Definition: AbstractBoundingBox.cpp:100
int GetSideID(const std::vector< double > &_p) const
Definition: AbstractBoundingBox.cpp:144
virtual ~AbstractBoundingBox() noexcept
virtual std::vector< double > GetRandomPoint() const override
Get a random point inside the boundary.
Definition: AbstractBoundingBox.cpp:93
Definition: Boundary.h:30
Definition: CountingStreamBuffer.h:20
An axis-aligned rectangular prism in n dimensions.
Definition: NBox.h:14
A range of numeric values.
Definition: Range.h:17