2D random walk mobility model. More...
#include <random-walk-2d-mobility-model.h>
Public Types | |
enum | Mode { MODE_DISTANCE, MODE_TIME } |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Private Member Functions | |
virtual int64_t | DoAssignStreams (int64_t) |
virtual void | DoDispose (void) |
virtual Vector | DoGetPosition (void) const |
virtual Vector | DoGetVelocity (void) const |
virtual void | DoInitialize (void) |
void | DoInitializePrivate (void) |
virtual void | DoSetPosition (const Vector &position) |
void | DoWalk (Time timeLeft) |
void | Rebound (Time timeLeft) |
Private Attributes | |
Rectangle | m_bounds |
Ptr< RandomVariableStream > | m_direction |
EventId | m_event |
ConstantVelocityHelper | m_helper |
enum Mode | m_mode |
double | m_modeDistance |
Time | m_modeTime |
Ptr< RandomVariableStream > | m_speed |
Additional Inherited Members | |
![]() | |
MobilityModel () | |
virtual | ~MobilityModel ()=0 |
int64_t | AssignStreams (int64_t stream) |
double | GetDistanceFrom (Ptr< const MobilityModel > position) const |
Vector | GetPosition (void) const |
double | GetRelativeSpeed (Ptr< const MobilityModel > other) const |
Vector | GetVelocity (void) const |
void | SetPosition (const Vector &position) |
![]() | |
void | NotifyCourseChange (void) const |
2D random walk mobility model.
Each instance moves with a speed and direction choosen at random with the user-provided random variables until either a fixed distance has been walked or until a fixed amount of time. If we hit one of the boundaries (specified by a rectangle), of the model, we rebound on the boundary with a reflexive angle and speed. This model is often identified as a brownian motion model.
ns3::RandomWalk2dMobilityModel is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 46 of file random-walk-2d-mobility-model.h.
Definition at line 51 of file random-walk-2d-mobility-model.h.
|
privatevirtual |
Definition at line 179 of file random-walk-2d-mobility-model.cc.
References m_direction, m_speed, and ns3::RandomVariableStream::SetStream().
|
privatevirtual |
Definition at line 154 of file random-walk-2d-mobility-model.cc.
|
privatevirtual |
Definition at line 160 of file random-walk-2d-mobility-model.cc.
References ns3::ConstantVelocityHelper::GetCurrentPosition(), m_bounds, m_helper, and ns3::ConstantVelocityHelper::UpdateWithBounds().
|
privatevirtual |
Definition at line 174 of file random-walk-2d-mobility-model.cc.
References ns3::ConstantVelocityHelper::GetVelocity(), and m_helper.
|
privatevirtual |
Definition at line 78 of file random-walk-2d-mobility-model.cc.
References DoInitializePrivate().
|
private |
Definition at line 85 of file random-walk-2d-mobility-model.cc.
References DoWalk(), ns3::RandomVariableStream::GetValue(), m_direction, m_helper, m_mode, m_modeDistance, m_modeTime, m_speed, MODE_TIME, ns3::Seconds(), ns3::ConstantVelocityHelper::SetVelocity(), ns3::ConstantVelocityHelper::Unpause(), and ns3::ConstantVelocityHelper::Update().
Referenced by DoInitialize(), DoSetPosition(), and DoWalk().
|
privatevirtual |
Definition at line 166 of file random-walk-2d-mobility-model.cc.
References DoInitializePrivate(), ns3::Rectangle::IsInside(), m_bounds, m_event, m_helper, NS_ASSERT, ns3::Simulator::Remove(), ns3::Simulator::ScheduleNow(), and ns3::ConstantVelocityHelper::SetPosition().
|
private |
Definition at line 109 of file random-walk-2d-mobility-model.cc.
References ns3::Rectangle::CalculateIntersection(), ns3::EventId::Cancel(), DoInitializePrivate(), ns3::ConstantVelocityHelper::GetCurrentPosition(), ns3::Time::GetSeconds(), ns3::ConstantVelocityHelper::GetVelocity(), ns3::Rectangle::IsInside(), m_bounds, m_event, m_helper, ns3::MobilityModel::NotifyCourseChange(), Rebound(), ns3::Simulator::Schedule(), ns3::Seconds(), ns3::Vector3D::x, and ns3::Vector3D::y.
Referenced by DoInitializePrivate(), and Rebound().
|
static |
Reimplemented from ns3::MobilityModel.
Definition at line 36 of file random-walk-2d-mobility-model.cc.
References m_bounds, m_direction, m_mode, m_modeDistance, m_modeTime, m_speed, ns3::MakeEnumAccessor(), ns3::MakeEnumChecker(), MODE_DISTANCE, MODE_TIME, ns3::Seconds(), and ns3::TypeId::SetParent().
|
private |
Definition at line 132 of file random-walk-2d-mobility-model.cc.
References ns3::Rectangle::BOTTOM, DoWalk(), ns3::Rectangle::GetClosestSide(), ns3::ConstantVelocityHelper::GetCurrentPosition(), ns3::ConstantVelocityHelper::GetVelocity(), ns3::Rectangle::LEFT, m_bounds, m_helper, ns3::Rectangle::RIGHT, ns3::ConstantVelocityHelper::SetVelocity(), ns3::Rectangle::TOP, ns3::ConstantVelocityHelper::Unpause(), ns3::ConstantVelocityHelper::UpdateWithBounds(), ns3::Vector3D::x, and ns3::Vector3D::y.
Referenced by DoWalk().
|
private |
Definition at line 74 of file random-walk-2d-mobility-model.h.
Referenced by DoGetPosition(), DoSetPosition(), DoWalk(), GetTypeId(), and Rebound().
|
private |
Definition at line 73 of file random-walk-2d-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and GetTypeId().
|
private |
Definition at line 68 of file random-walk-2d-mobility-model.h.
Referenced by DoSetPosition(), and DoWalk().
|
private |
Definition at line 67 of file random-walk-2d-mobility-model.h.
Referenced by DoGetPosition(), DoGetVelocity(), DoInitializePrivate(), DoSetPosition(), DoWalk(), and Rebound().
|
private |
Definition at line 69 of file random-walk-2d-mobility-model.h.
Referenced by DoInitializePrivate(), and GetTypeId().
|
private |
Definition at line 70 of file random-walk-2d-mobility-model.h.
Referenced by DoInitializePrivate(), and GetTypeId().
|
private |
Definition at line 71 of file random-walk-2d-mobility-model.h.
Referenced by DoInitializePrivate(), and GetTypeId().
|
private |
Definition at line 72 of file random-walk-2d-mobility-model.h.
Referenced by DoAssignStreams(), DoInitializePrivate(), and GetTypeId().