src/mobility/ns2-mobility-file-topology.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 31 Jan 2008 22:23:46 +0100
changeset 2258 666099a753e0
parent 2257 71a58e70c671
permissions -rw-r--r--
AddInterface -> AggregateObject
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2007 INRIA
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 * All rights reserved.
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License version 2 as
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 * published by the Free Software Foundation;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 * GNU General Public License for more details.
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * along with this program; if not, write to the Free Software
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
 */
1637
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    21
#include <fstream>
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    22
#include <sstream>
1804
9c11e776f501 bug 96: debug.h duplicates functionality from log.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1637
diff changeset
    23
#include "ns3/log.h"
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include "ns3/simulator.h"
1637
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    25
#include "ns3/node-list.h"
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    26
#include "ns3/node.h"
1587
95fd31a3d358 fix small typo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1586
diff changeset
    27
#include "ns2-mobility-file-topology.h"
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
#include "static-speed-mobility-model.h"
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
1804
9c11e776f501 bug 96: debug.h duplicates functionality from log.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1637
diff changeset
    30
NS_LOG_COMPONENT_DEFINE ("Ns2MobilityFileTopology");
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
namespace ns3 {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
    35
Ns2MobilityFileTopology::Ns2MobilityFileTopology (std::string filename)
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
  : m_filename (filename)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
{}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
Ptr<StaticSpeedMobilityModel>
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
    41
Ns2MobilityFileTopology::GetMobilityModel (std::string idString, const ObjectStore &store) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    43
  std::istringstream iss;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    44
  iss.str (idString);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
  uint32_t id;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    46
  iss >> id;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    47
  Ptr<Object> object = store.Get (id);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    48
  if (object == 0)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    49
    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    50
      return 0;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
    }
2257
71a58e70c671 QueryInterface -> GetObject
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    52
  Ptr<StaticSpeedMobilityModel> model = object->GetObject<StaticSpeedMobilityModel> ();
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    53
  if (model == 0)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
    {
2230
9f13ac3291e0 add CreateObject<> to instanciate subclasses of the Object base class. Replaces Create<>.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1817
diff changeset
    55
      model = CreateObject<StaticSpeedMobilityModel> ();
2258
666099a753e0 AddInterface -> AggregateObject
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2257
diff changeset
    56
      object->AggregateObject (model);
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    57
    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
  return model;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    59
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    60
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    61
double
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
    62
Ns2MobilityFileTopology::ReadDouble (std::string valueString) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    63
{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    64
  std::istringstream iss;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    65
  iss.str (valueString);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    66
  double value;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    67
  iss >> value;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    68
  return value;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    69
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    70
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    71
void 
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
    72
Ns2MobilityFileTopology::LayoutObjectStore (const ObjectStore &store) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    73
{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    74
  std::ifstream file (m_filename.c_str (), std::ios::in);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    75
  if (file.is_open())
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    76
    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    77
      while (!file.eof() )
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    78
	{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    79
	  std::string line;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    80
	  getline (file, line);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    81
	  std::string::size_type startNodeId = line.find_first_of ("(");
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    82
	  std::string::size_type endNodeId = line.find_first_of (")");
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    83
	  if (startNodeId == std::string::npos ||
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    84
	      endNodeId == std::string::npos)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    85
	    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    86
	      continue;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    87
	    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    88
	  Ptr<StaticSpeedMobilityModel> model = GetMobilityModel (line.substr (startNodeId + 1, 
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    89
									       endNodeId - startNodeId), 
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    90
								  store);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    91
	  if (model == 0)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    92
	    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    93
	      continue;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    94
	    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    95
	  if (startNodeId == 6)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    96
	    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    97
	      double value = ReadDouble (line.substr (endNodeId + 9, std::string::npos));
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    98
	      std::string coordinate = line.substr (endNodeId + 6, 1);
1817
8b0520433350 replace Position and Speed by Vector
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1816
diff changeset
    99
              Vector position = model->GetPosition ();
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   100
	      if (coordinate == "X")
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   101
		{
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   102
                  position.x = value;
1804
9c11e776f501 bug 96: debug.h duplicates functionality from log.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1637
diff changeset
   103
		  NS_LOG_DEBUG ("X=" << value);
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   104
		}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   105
	      else if (coordinate == "Y")
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   106
		{
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   107
                  position.y = value;
1804
9c11e776f501 bug 96: debug.h duplicates functionality from log.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1637
diff changeset
   108
		  NS_LOG_DEBUG ("Y=" << value);
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   109
		}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   110
	      else if (coordinate == "Z")
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   111
		{
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   112
                  position.z = value;
1804
9c11e776f501 bug 96: debug.h duplicates functionality from log.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1637
diff changeset
   113
		  NS_LOG_DEBUG ("Z=" << value);
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   114
		}
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   115
              else
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   116
                {
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   117
                  continue;
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   118
                }
1816
d7c9b9da78f4 rename MobilityModel::Get/Set to GetPosition/SetPosition
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1804
diff changeset
   119
              model->SetPosition (position);
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   120
	    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   121
	  else 
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   122
	    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   123
	      double at = ReadDouble (line.substr (8, startNodeId - 17));
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   124
	      std::string::size_type xSpeedEnd = line.find_first_of (" ", endNodeId + 10);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   125
	      std::string::size_type ySpeedEnd = line.find_first_of (" ", xSpeedEnd + 1);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   126
	      double xSpeed = ReadDouble (line.substr (endNodeId + 10, xSpeedEnd - endNodeId - 10));
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   127
	      double ySpeed = ReadDouble (line.substr (xSpeedEnd + 1, ySpeedEnd - xSpeedEnd - 1));
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   128
	      double zSpeed = ReadDouble (line.substr (ySpeedEnd + 1, std::string::npos));
1804
9c11e776f501 bug 96: debug.h duplicates functionality from log.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1637
diff changeset
   129
	      NS_LOG_DEBUG ("at=" << at << "xSpeed=" << xSpeed << ", ySpeed=" << ySpeed << ", zSpeed=" << zSpeed);
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   130
	      Simulator::Schedule (Seconds (at), &StaticSpeedMobilityModel::SetSpeed, model,
1817
8b0520433350 replace Position and Speed by Vector
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1816
diff changeset
   131
				   Vector (xSpeed, ySpeed, zSpeed));
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   132
	    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   133
	}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   134
      file.close();
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   135
    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   136
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   137
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   138
void 
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
   139
Ns2MobilityFileTopology::Layout (void) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   140
{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   141
  Layout (NodeList::Begin (), NodeList::End ());
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   142
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   143
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   144
} // namespace ns3