src/mobility/static-speed-helper.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 19 Jul 2007 12:38:30 +0200
changeset 1637 b2f8c2acf04a
parent 1621 src/node/static-speed-helper.h@dbabca82aa40
child 1642 8d5707931bb4
permissions -rw-r--r--
create a mobility module

#ifndef STATIC_SPEED_HELPER_H
#define STATIC_SPEED_HELPER_H

#include "ns3/nstime.h"
#include "position.h"
#include "speed.h"

namespace ns3 {

class Rectangle;

class StaticSpeedHelper
{
 public:
  StaticSpeedHelper ();
  StaticSpeedHelper (const Position &position);
  StaticSpeedHelper (const Position &position,
		     const Speed &speed);
  void InitializePosition (const Position &position);

  void Reset (const Speed &speed, const Time &pauseDelay);
  void Reset (const Speed &speed);
  Position GetCurrentPosition (const Rectangle &bounds) const;
  Position GetCurrentPosition (void) const;
  Speed GetSpeed (void) const;
  void SetSpeed (const Speed &speed);

 private:
  void Update (void) const;
  void UpdateFull (const Rectangle &rectangle) const;
  mutable Time m_lastUpdate;
  mutable Position m_position;
  Speed m_speed;
  Time m_pauseEnd;
};

} // namespace ns3

#endif /* STATIC_SPEED_HELPER_H */