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 |