src/mobility/ns2-mobility-file-topology.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Tue, 30 Oct 2007 10:09:39 +0100
changeset 1804 9c11e776f501
parent 1637 b2f8c2acf04a
child 1816 d7c9b9da78f4
permissions -rw-r--r--
bug 96: debug.h duplicates functionality from log.h
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
    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    52
  Ptr<StaticSpeedMobilityModel> 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
    53
    object->QueryInterface<StaticSpeedMobilityModel> (StaticSpeedMobilityModel::iid);
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
  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
    55
    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    56
      model = Create<StaticSpeedMobilityModel> ();
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
      object->AddInterface (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
    58
    }
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
  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
    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
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    62
double
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
    63
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
    64
{
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
  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
    66
  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
    67
  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
    68
  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
    69
  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
    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
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    72
void 
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
    73
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
    74
{
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
  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
    76
  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
    77
    {
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
      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
    79
	{
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
	  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
    81
	  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
    82
	  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
    83
	  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
    84
	  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
    85
	      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
    86
	    {
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
	      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
    88
	    }
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
	  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
    90
									       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
    91
								  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
    92
	  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
    93
	    {
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
	      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
    95
	    }
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
	  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
    97
	    {
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
	      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
    99
	      std::string coordinate = line.substr (endNodeId + 6, 1);
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   100
              Position position = model->Get ();
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
   101
	      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
   102
		{
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   103
                  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
   104
		  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
   105
		}
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
	      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
   107
		{
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   108
                  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
   109
		  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
   110
		}
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
	      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
   112
		{
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   113
                  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
   114
		  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
   115
		}
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   116
              else
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   117
                {
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   118
                  continue;
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   119
                }
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   120
              model->Set (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
   121
	    }
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
	  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
   123
	    {
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
	      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
   125
	      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
   126
	      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
   127
	      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
   128
	      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
   129
	      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
   130
	      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
   131
	      Simulator::Schedule (Seconds (at), &StaticSpeedMobilityModel::SetSpeed, model,
1621
dbabca82aa40 use the helper from the static speed mobility model
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1588
diff changeset
   132
				   Speed (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
   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
	}
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
      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
   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
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   139
void 
1632
b1a532cc4e9f Ns2Mobile -> Ns2Mobility
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1621
diff changeset
   140
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
   141
{
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
  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
   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
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   145
} // namespace ns3