#ifndef POSITION3D_H #define POSITION3D_H #include /** * represents a 3D position (x,y,z) */ struct Position3D { /** x-position (in centimeter) */ double xCM; /** y-position (in centimeter) */ double yCM; /** floor number */ int zNr; /** ctor */ Position3D() : xCM(0), yCM(0), zNr(0) {;} /** ctor. x,y in centimeter, z = floor-number */ Position3D(const double xCM, const double yCM, const int zNr) : xCM(xCM), yCM(yCM), zNr(zNr) {;} /** get the distance to the given position (in centimeter) */ double getDistanceCM(const Position3D& p) const { const double dx = xCM - p.xCM; const double dy = yCM - p.yCM; const double dz = (zNr - p.zNr) * 300; // 300 = average floor height (centimeter) return std::sqrt(dx*dx + dy*dy + dz*dz); } }; #endif // POSITION3D_H