src/mobility/random-topology.cc
changeset 2232 9abd038ee588
parent 1817 8b0520433350
child 2249 3a1da26d61dc
equal deleted inserted replaced
2231:a5b898c1ee2c 2232:9abd038ee588
    26 namespace ns3 {
    26 namespace ns3 {
    27 
    27 
    28 static ClassIdDefaultValue
    28 static ClassIdDefaultValue
    29 g_position ("RandomTopologyPositionType",
    29 g_position ("RandomTopologyPositionType",
    30             "The type of initial random position in a 3d topology.",
    30             "The type of initial random position in a 3d topology.",
    31             RandomPosition::iid,
    31             RandomPosition::iid (),
    32             "RandomRectanglePosition");
    32             "RandomRectanglePosition");
    33 
    33 
    34 static ClassIdDefaultValue
    34 static ClassIdDefaultValue
    35 g_mobility ("RandomTopologyMobilityType",
    35 g_mobility ("RandomTopologyMobilityType",
    36             "The type of mobility model attached to an object in a 3d topology.",
    36             "The type of mobility model attached to an object in a 3d topology.",
    37             MobilityModel::iid,
    37             MobilityModel::iid (),
    38             "StaticMobilityModel");
    38             "StaticMobilityModel");
    39 
    39 
    40 RandomTopology::RandomTopology ()
    40 RandomTopology::RandomTopology ()
    41   : m_mobilityModel (g_mobility.GetValue ())
    41   : m_mobilityModel (g_mobility.GetValue ())
    42 {
    42 {
    43   m_positionModel = ComponentManager::Create<RandomPosition> (g_position.GetValue (), 
    43   m_positionModel = ComponentManager::Create<RandomPosition> (g_position.GetValue ());
    44                                                               RandomPosition::iid);
       
    45 }
    44 }
    46 RandomTopology::RandomTopology (Ptr<RandomPosition> positionModel, ClassId mobilityModel)
    45 RandomTopology::RandomTopology (Ptr<RandomPosition> positionModel, ClassId mobilityModel)
    47   : m_positionModel (positionModel),
    46   : m_positionModel (positionModel),
    48     m_mobilityModel (mobilityModel)
    47     m_mobilityModel (mobilityModel)
    49 {}
    48 {}
    65 }
    64 }
    66 
    65 
    67 void 
    66 void 
    68 RandomTopology::LayoutOne (Ptr<Object> object)
    67 RandomTopology::LayoutOne (Ptr<Object> object)
    69 {
    68 {
    70   Ptr<MobilityModel> mobility = ComponentManager::Create<MobilityModel> (m_mobilityModel, 
    69   Ptr<MobilityModel> mobility = ComponentManager::Create<MobilityModel> (m_mobilityModel);
    71                                                                          MobilityModel::iid);
       
    72   object->AddInterface (mobility);
    70   object->AddInterface (mobility);
    73   Vector position = m_positionModel->Get ();
    71   Vector position = m_positionModel->Get ();
    74   mobility->SetPosition (position);
    72   mobility->SetPosition (position);
    75 }
    73 }
    76 
    74