/* * Box.hpp * * Created on: Jun 30, 2010 * Author: crueger */ #ifndef BOX_HPP_ #define BOX_HPP_ class Matrix; class Vector; #include #include "VectorSet.hpp" class Box { public: Box(); Box(const Box&); virtual ~Box(); const Matrix &getM() const; const Matrix &getMinv() const; void setM(Matrix); Box &operator=(const Box&); Box &operator=(const Matrix&); Vector translateIn(const Vector &point) const; Vector translateOut(const Vector &point) const; Vector WrapPeriodically(const Vector &point) const; VECTORSET(std::list) explode(const Vector &point) const; double periodicDistanceSquared(const Vector &point1,const Vector &point2) const; double periodicDistance(const Vector &point1,const Vector &point2) const; private: Matrix *M; //!< Defines the layout of the box Matrix *Minv; //!< Inverse of M to avoid recomputation }; #endif /* BOX_HPP_ */