src/mobility/static-speed-helper.h
author Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
Tue, 31 Jul 2007 13:49:11 +0100
changeset 1002 f657a64894bd
parent 968 70d02500c9d5
child 1460 0c9be520ba9f
permissions -rw-r--r--
Add emacs C++ mode selection line, missing from some header files.

/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
#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 */