keep track of the current position of an object More...
#include <mobility-model.h>
Public Member Functions | |
MobilityModel () | |
virtual | ~MobilityModel ()=0 |
Vector | GetPosition (void) const |
void | SetPosition (const Vector &position) |
Vector | GetVelocity (void) const |
double | GetDistanceFrom (Ptr< const MobilityModel > position) const |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::MobilityModel. | |
Protected Member Functions | |
void | NotifyCourseChange (void) const |
Private Member Functions | |
virtual Vector | DoGetPosition (void) const =0 |
virtual void | DoSetPosition (const Vector &position)=0 |
virtual Vector | DoGetVelocity (void) const =0 |
Private Attributes | |
TracedCallback< Ptr< const MobilityModel > > | m_courseChangeTrace |
keep track of the current position of an object
All space coordinates in this class and its subclasses are understood to be meters or meters/s. i.e., they are all metric international units.
Definition at line 37 of file mobility-model.h.
ns3::MobilityModel::MobilityModel | ( | ) |
Definition at line 51 of file mobility-model.cc.
ns3::MobilityModel::~MobilityModel | ( | ) | [pure virtual] |
Definition at line 54 of file mobility-model.cc.
virtual Vector ns3::MobilityModel::DoGetPosition | ( | void | ) | const [private, pure virtual] |
Concrete subclasses of this base class must implement this method.
Implemented in ns3::HierarchicalMobilityModel, ns3::RandomDirection2dMobilityModel, ns3::RandomWalk2dMobilityModel, ns3::RandomWaypointMobilityModel, ns3::StaticMobilityModel, and ns3::StaticSpeedMobilityModel.
Referenced by GetDistanceFrom(), and GetPosition().
virtual Vector ns3::MobilityModel::DoGetVelocity | ( | void | ) | const [private, pure virtual] |
Concrete subclasses of this base class must implement this method.
Implemented in ns3::HierarchicalMobilityModel, ns3::RandomDirection2dMobilityModel, ns3::RandomWalk2dMobilityModel, ns3::RandomWaypointMobilityModel, ns3::StaticMobilityModel, and ns3::StaticSpeedMobilityModel.
Referenced by GetVelocity().
virtual void ns3::MobilityModel::DoSetPosition | ( | const Vector & | position | ) | [private, pure virtual] |
position | the position to set. |
Concrete subclasses of this base class must implement this method.
Implemented in ns3::HierarchicalMobilityModel, ns3::RandomDirection2dMobilityModel, ns3::RandomWalk2dMobilityModel, ns3::RandomWaypointMobilityModel, ns3::StaticMobilityModel, and ns3::StaticSpeedMobilityModel.
Referenced by SetPosition().
double ns3::MobilityModel::GetDistanceFrom | ( | Ptr< const MobilityModel > | position | ) | const |
position | a reference to another mobility model |
Definition at line 75 of file mobility-model.cc.
References ns3::CalculateDistance(), and DoGetPosition().
Vector ns3::MobilityModel::GetPosition | ( | void | ) | const |
Definition at line 58 of file mobility-model.cc.
References DoGetPosition().
Referenced by GetTypeId().
TypeId ns3::MobilityModel::GetTypeId | ( | void | ) | [static] |
This method returns the TypeId associated to ns3::MobilityModel.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
TraceSources defined for this type:
Reimplemented from ns3::Object.
Reimplemented in ns3::HierarchicalMobilityModel, ns3::RandomDirection2dMobilityModel, ns3::RandomWalk2dMobilityModel, ns3::RandomWaypointMobilityModel, ns3::StaticMobilityModel, and ns3::StaticSpeedMobilityModel.
Definition at line 29 of file mobility-model.cc.
References ns3::TypeId::ATTR_GET, ns3::TypeId::ATTR_SET, GetPosition(), GetVelocity(), m_courseChangeTrace, ns3::MakeTraceSourceAccessor(), ns3::TypeId::SetParent(), and SetPosition().
Vector ns3::MobilityModel::GetVelocity | ( | void | ) | const |
Definition at line 63 of file mobility-model.cc.
References DoGetVelocity().
Referenced by GetTypeId().
void ns3::MobilityModel::NotifyCourseChange | ( | void | ) | const [protected] |
Must be invoked by subclasses when the course of the position changes to notify course change listeners.
Definition at line 83 of file mobility-model.cc.
References m_courseChangeTrace.
Referenced by ns3::RandomDirection2dMobilityModel::BeginPause(), ns3::RandomWaypointMobilityModel::BeginWalk(), ns3::HierarchicalMobilityModel::ChildChanged(), ns3::StaticMobilityModel::DoSetPosition(), ns3::RandomWalk2dMobilityModel::DoWalk(), ns3::HierarchicalMobilityModel::ParentChanged(), ns3::RandomDirection2dMobilityModel::SetDirectionAndSpeed(), ns3::StaticSpeedMobilityModel::SetVelocity(), and ns3::RandomWaypointMobilityModel::Start().
void ns3::MobilityModel::SetPosition | ( | const Vector & | position | ) |
position | the position to set. |
Definition at line 69 of file mobility-model.cc.
References DoSetPosition().
Referenced by GetTypeId().
TracedCallback<Ptr<const MobilityModel> > ns3::MobilityModel::m_courseChangeTrace [private] |
Used to alert subscribers that a change in direction, velocity, or position has occurred.
Definition at line 94 of file mobility-model.h.
Referenced by GetTypeId(), and NotifyCourseChange().