41 #ifndef GRIDCOMPONENTS_H_
42 #define GRIDCOMPONENTS_H_
44 #include <boost/unordered_map.hpp>
45 #include <boost/shared_ptr.hpp>
47 #include "GridDimensions.h"
62 void boundsCheck(
const std::vector<int>& pt)
const;
63 void boundsCheck(
const std::vector<double>& pt)
const;
68 void transform(
const std::vector<int>& in, std::vector<int>& out)
const;
69 void transform(
const std::vector<double>& in, std::vector<double>& out)
const;
71 bool isPeriodic()
const {
85 void translate(
const std::vector<double>& oldPos, std::vector<double>& newPos,
const std::vector<double>& displacement)
const;
86 void translate(
const std::vector<int>& oldPos, std::vector<int>& newPos,
const std::vector<int>& displacement)
const;
98 std::vector<int> mins, maxs;
101 T calcCoord(T coord,
int dimension)
const;
106 void translate(
const std::vector<double>& oldPos, std::vector<double>& newPos,
const std::vector<double>& displacement)
const;
107 void translate(
const std::vector<int>& oldPos, std::vector<int>& newPos,
const std::vector<int>& displacement)
const;
111 T StickyBorders::calcCoord(T coord,
int dimension)
const {
112 if (coord < mins[dimension])
return mins[dimension];
113 else if (coord > maxs[dimension])
return maxs[dimension];
127 std::vector<int> mins, maxs;
133 void transform(
const std::vector<int>& in, std::vector<int>& out)
const;
134 void transform(
const std::vector<double>& in, std::vector<double>& out)
const;
135 void translate(
const std::vector<double>& oldPos, std::vector<double>& newPos,
const std::vector<double>& displacement)
const;
136 void translate(
const std::vector<int>& oldPos, std::vector<int>& newPos,
const std::vector<int>& displacement)
const;
140 bool isPeriodic()
const {
157 template <
typename Gr
idType>
159 bool add(boost::shared_ptr<T> agent) {