20 #include <yaml-cpp/yaml.h> 36 Position(
int x_,
int y_,
int z_) : x(x_), y(y_), z(z_) {};
40 Position& operator=(
const Position& pos) { x = pos.x; y = pos.y; z = pos.z;
return *
this; }
43 Position& operator+=(
const Position& pos) { x+=pos.x; y+=pos.y; z+=pos.z;
return *
this; }
46 Position& operator-=(
const Position& pos) { x-=pos.x; y-=pos.y; z-=pos.z;
return *
this; }
49 Position& operator*=(
const Position& pos) { x*=pos.x; y*=pos.y; z*=pos.z;
return *
this; }
50 Position operator*(
const int v)
const {
return Position(x * v, y * v, z * v); }
51 Position& operator*=(
const int v) { x*=v; y*=v; z*=v;
return *
this; }
54 Position& operator/=(
const Position& pos) { x/=pos.x; y/=pos.y; z/=pos.z;
return *
this; }
56 Position operator/(
const int v)
const {
return Position(x / v, y / v, z / v); }
61 return x == pos.x && y == pos.y && z == pos.z;
66 return x != pos.x || y != pos.y || z != pos.z;
71 inline std::ostream& operator<<(std::ostream& out,
const Position& pos)
73 out <<
"(" << pos.x <<
"," << pos.y <<
","<< pos.z <<
")";
77 typedef Position Vector3i;
89 node.push_back(rhs.x);
90 node.push_back(rhs.y);
91 node.push_back(rhs.z);
97 if (!node.IsSequence() || node.size() != 3)
100 rhs.x = node[0].as<
int>();
101 rhs.y = node[1].as<
int>();
102 rhs.z = node[2].as<
int>();
bool operator==(const Position &pos) const
== operator
Definition: Position.h:59
bool operator!=(const Position &pos) const
!= operator
Definition: Position.h:64
Position(const Position &pos)
Copy constructor.
Definition: Position.h:38
Definition: Position.h:81
Position()
Null position constructor.
Definition: Position.h:34
Position(int x_, int y_, int z_)
X Y Z position constructor.
Definition: Position.h:36
Easy handling of X-Y-Z coordinates.
Definition: Position.h:28
Definition: BaseInfoState.cpp:40