blob: 4028b4a99e44b9e087898dd0c3f0bc3f6eead088 [file] [log] [blame]
Alexander Afanasyeveaba1572012-02-04 14:20:30 -08001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2007 INRIA
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation;
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * Author: Lucas Wang <lucas@cs.ucla.edu>
19 */
20#ifndef HIGHWAY_POSITION_ALLOCATOR_H
21#define HIGHWAY_POSITION_ALLOCATOR_H
22
23#include "ns3/position-allocator.h"
24
25namespace ns3 {
26
27/**
28 * This position allocator is used to generate positions for cars
29 * on a highway.
30 */
31
32class HighwayPositionAllocator : public PositionAllocator
33{
34public:
35 static TypeId GetTypeId (void);
36 HighwayPositionAllocator ();
37 virtual Vector GetNext (void) const;
38 void SetStartPosition(Vector start);
39 Vector GetStartPosition(void) const;
40 void SetDirection(double direction); // the angle in terms of radian degrees
41 double GetDirection(void) const ;
42 void SetLength(double length);
43 double GetLength(void) const ;
44
45private:
46 mutable Vector m_previous_position; // previously generated vehicle position
47 Vector m_start; // highway starting point
48 double m_direction; //highway direction
49 double m_length; // highway length
50};
51}
52
53#endif