#include <CoordinateSystem.h>
Public Member Functions | |
| EuclideanNcsNodeInfo () | |
| virtual | ~EuclideanNcsNodeInfo () |
| uint8_t | getDimension () const |
| double | getCoords (uint8_t i) const |
| const std::vector< double > & | getCoords () const |
| void | setCoords (uint8_t i, double value) |
| Prox | getDistance (const AbstractNcsNodeInfo &abstractInfo) const |
Static Public Member Functions | |
| static void | setDimension (uint8_t dimension) |
Protected Attributes | |
| std::vector< double > | coordinates |
Static Protected Attributes | |
| static uint8_t | dim |
Definition at line 47 of file CoordinateSystem.h.
| EuclideanNcsNodeInfo::EuclideanNcsNodeInfo | ( | ) | [inline] |
Definition at line 50 of file CoordinateSystem.h.
{ coordinates.resize(dim); };
| virtual EuclideanNcsNodeInfo::~EuclideanNcsNodeInfo | ( | ) | [inline, virtual] |
Definition at line 51 of file CoordinateSystem.h.
{ };
| double EuclideanNcsNodeInfo::getCoords | ( | uint8_t | i | ) | const [inline] |
Definition at line 56 of file CoordinateSystem.h.
Referenced by Nps::coordsReqRpcResponse(), VivaldiCoordsInfo::getDistance(), getDistance(), Vivaldi::getOwnCoordinates(), SimpleNcs::getOwnCoordinates(), Nps::getOwnCoordinates(), operator<<(), Vivaldi::processCoordinates(), and Vivaldi::updateDisplay().
{
if (i >= coordinates.size()) {
throw cRuntimeError("too high value for dim!");
}
return coordinates[i];
};
| const std::vector<double>& EuclideanNcsNodeInfo::getCoords | ( | ) | const [inline] |
Definition at line 63 of file CoordinateSystem.h.
Referenced by VivaldiCoordsInfo::getDistance(), and getDistance().
{ return coordinates; };
| uint8_t EuclideanNcsNodeInfo::getDimension | ( | ) | const [inline] |
Definition at line 53 of file CoordinateSystem.h.
Referenced by Nps::coordsReqRpcResponse(), VivaldiCoordsInfo::getDistance(), and getDistance().
{ return coordinates.size(); };
| Prox EuclideanNcsNodeInfo::getDistance | ( | const AbstractNcsNodeInfo & | abstractInfo | ) | const [virtual] |
Implements AbstractNcsNodeInfo.
Reimplemented in SimpleCoordsInfo, and VivaldiCoordsInfo.
Definition at line 30 of file CoordinateSystem.cc.
Referenced by Nps::getCoordinateBasedProx().
{
if (!dynamic_cast<const EuclideanNcsNodeInfo*>(&abstractInfo)) {
return Prox::PROX_UNKNOWN;
}
const EuclideanNcsNodeInfo& info =
*(static_cast<const EuclideanNcsNodeInfo*>(&abstractInfo));
double dist = 0.0;
for (uint8_t i = 0; i < info.getDimension(); ++i) {
dist += pow(getCoords(i) - info.getCoords(i), 2);
}
dist = sqrt(dist);
return Prox(dist, 0.7); //TODO
}
| void EuclideanNcsNodeInfo::setCoords | ( | uint8_t | i, | |
| double | value | |||
| ) | [inline] |
Definition at line 65 of file CoordinateSystem.h.
Referenced by Vivaldi::init(), Vivaldi::processCoordinates(), and Nps::setOwnCoordinates().
{
if (i >= coordinates.size()) {
throw cRuntimeError("coordinates too small");
}
coordinates[i] = value;
};
| static void EuclideanNcsNodeInfo::setDimension | ( | uint8_t | dimension | ) | [inline, static] |
Definition at line 54 of file CoordinateSystem.h.
Referenced by Vivaldi::init(), SimpleNcs::init(), and Nps::init().
{ dim = dimension; };
std::vector<double> EuclideanNcsNodeInfo::coordinates [protected] |
Definition at line 75 of file CoordinateSystem.h.
Referenced by EuclideanNcsNodeInfo(), getCoords(), getDimension(), SimpleCoordsInfo::operator std::vector< double >(), VivaldiCoordsInfo::operator std::vector< double >(), GnpNpsCoordsInfo::operator std::vector< double >(), setCoords(), SimpleCoordsInfo::update(), VivaldiCoordsInfo::update(), and GnpNpsCoordsInfo::update().
uint8_t EuclideanNcsNodeInfo::dim [static, protected] |
Definition at line 76 of file CoordinateSystem.h.
Referenced by EuclideanNcsNodeInfo(), and setDimension().
1.7.1