32 #include <boost/operators.hpp>
37 namespace ost {
namespace img {
44 boost::additive2<Point, Size,
45 boost::multipliable2<Point,int,
46 boost::less_than_comparable<Point,
47 boost::equality_comparable<Point> > > > >{
90 x(static_cast<int>(
round(v[0]))),
91 y(static_cast<int>(
round(v[1]))),
99 x(static_cast<int>(
round(v[0]))),
100 y(static_cast<int>(
round(v[1]))),
101 z(static_cast<int>(
round(v[2])))
108 x(static_cast<int>(
round(v[0]))),
109 y(static_cast<int>(
round(v[1]))),
110 z(static_cast<int>(
round(v[2])))
112 if(std::abs(v[3])<1e-100) {
116 x =
static_cast<int>(x*sf);
117 y =
static_cast<int>(y*sf);
118 z =
static_cast<int>(z*sf);
129 int& operator[](
unsigned int index)
135 int operator[](
unsigned int index)
const
142 int& At(
unsigned int index)
144 if(index>2)
throw std::range_error(
"Point index out of range");
148 int At(
unsigned int index)
const