From 99ec33418a40258ef746bfd0936dc27eea4e4c57 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Wed, 4 Jul 2007 10:24:45 +0200 Subject: [PATCH] add Position class and Get/Set methods on MobilityModel --- src/node/mobility-model.cc | 12 ++++++++++++ src/node/mobility-model.h | 24 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/node/mobility-model.cc b/src/node/mobility-model.cc index 30cc417c3..3cd675740 100644 --- a/src/node/mobility-model.cc +++ b/src/node/mobility-model.cc @@ -39,6 +39,13 @@ MobilityModel::Get (double &x, double &y, double &z) const { DoGet (x,y,z); } +Position +MobilityModel::Get (void) const +{ + Position position; + DoGet (position.x,position.y,position.z); + return position; +} double MobilityModel::GetX (void) const { @@ -67,6 +74,11 @@ MobilityModel::Set (double x, double y, double z) DoSet (x, y, z); } void +MobilityModel::Set (const Position &position) +{ + DoSet (position.x, position.y, position.z); +} +void MobilityModel::SetXY (double x, double y) { double currentX, currentY, currentZ; diff --git a/src/node/mobility-model.h b/src/node/mobility-model.h index ab080274e..6cf815f44 100644 --- a/src/node/mobility-model.h +++ b/src/node/mobility-model.h @@ -25,6 +25,28 @@ namespace ns3 { +class Vector3D +{ +public: + double x; + double y; + double z; +}; +class Position : public Vector3D +{}; +class Speed : public Vector3D +{}; +class Vector2D +{ +public: + double x; + double y; +}; +class Position2D : public Vector2D +{}; +class Speed2D : public Vector2D +{}; + /** * \brief keep track of the current position of an object * @@ -49,6 +71,7 @@ public: * Unit is meters */ void Get (double &x, double &y, double &z) const; + Position Get (void) const; /** * \returns the current x coordinate * @@ -71,6 +94,7 @@ public: void Add (double dx, double dy, double dz); void Set (double x, double y, double z); + void Set (const Position &position); void SetXY (double x, double y); void SetX (double x); void SetY (double y);