Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes

EuclideanNcsNodeInfo Class Reference

#include <CoordinateSystem.h>

Inheritance diagram for EuclideanNcsNodeInfo:
AbstractNcsNodeInfo GnpNpsCoordsInfo SimpleCoordsInfo VivaldiCoordsInfo

List of all members.

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

Detailed Description

Definition at line 47 of file CoordinateSystem.h.


Constructor & Destructor Documentation

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.

{ };


Member Function Documentation

double EuclideanNcsNodeInfo::getCoords ( uint8_t  i  )  const [inline]
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; };


Member Data Documentation

uint8_t EuclideanNcsNodeInfo::dim [static, protected]

Definition at line 76 of file CoordinateSystem.h.

Referenced by EuclideanNcsNodeInfo(), and setDimension().


The documentation for this class was generated from the following files: