Hierarchical mobility model. More...
#include <hierarchical-mobility-model.h>
Public Member Functions | |
Ptr< MobilityModel > | GetChild (void) const |
Ptr< MobilityModel > | GetParent (void) const |
void | SetChild (Ptr< MobilityModel > model) |
void | SetParent (Ptr< MobilityModel > model) |
Public Member Functions inherited from ns3::MobilityModel | |
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) |
Public Member Functions inherited from ns3::Object | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::MobilityModel | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Private Member Functions | |
void | ChildChanged (Ptr< const MobilityModel > model) |
virtual Vector | DoGetPosition (void) const |
virtual Vector | DoGetVelocity (void) const |
virtual void | DoSetPosition (const Vector &position) |
void | ParentChanged (Ptr< const MobilityModel > model) |
Private Attributes | |
Ptr< MobilityModel > | m_child |
Ptr< MobilityModel > | m_parent |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::MobilityModel | |
void | NotifyCourseChange (void) const |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
Hierarchical mobility model.
This model allows you to specify the position of a child object relative to a parent object.
Basically this is a mobility model that combines two other mobility models: a "parent" model and a "child" model. The position of the hierarchical model is always the vector sum of the parent + child positions, so that if the parent model "moves", then this model will report an equal relative movement. Useful, for instance, if you want to simulate a node inside another node that moves, such as a vehicle.
Setting the position on this model is always done using world absolute coordinates, and it changes only the child mobility model position, never the parent. The child mobility model always uses a coordinate system relative to the parent model position.
ns3::HierarchicalMobilityModel is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 57 of file hierarchical-mobility-model.h.
|
privatevirtual |
Concrete subclasses of this base class must implement this method.
Implements ns3::MobilityModel.
Definition at line 112 of file hierarchical-mobility-model.cc.
References ns3::MobilityModel::GetPosition(), ns3::Vector3D::x, ns3::Vector3D::y, and ns3::Vector3D::z.
|
privatevirtual |
Concrete subclasses of this base class must implement this method.
Implements ns3::MobilityModel.
Definition at line 147 of file hierarchical-mobility-model.cc.
References ns3::MobilityModel::GetVelocity(), ns3::Vector3D::x, ns3::Vector3D::y, and ns3::Vector3D::z.
|
privatevirtual |
position | the position to set. |
Concrete subclasses of this base class must implement this method.
Implements ns3::MobilityModel.
Definition at line 125 of file hierarchical-mobility-model.cc.
References ns3::MobilityModel::GetPosition(), ns3::MobilityModel::SetPosition(), ns3::Vector3D::x, ns3::Vector3D::y, and ns3::Vector3D::z.
Ptr< MobilityModel > ns3::HierarchicalMobilityModel::GetChild | ( | void | ) | const |
This allows you to get access to the position of the child relative to its parent.
Definition at line 100 of file hierarchical-mobility-model.cc.
Ptr< MobilityModel > ns3::HierarchicalMobilityModel::GetParent | ( | void | ) | const |
This allows you to get access to the position of the parent mobility model which is used as the reference position by the child mobility model.
Definition at line 106 of file hierarchical-mobility-model.cc.
void ns3::HierarchicalMobilityModel::SetChild | ( | Ptr< MobilityModel > | model | ) |
Sets the child mobility model to a new one. If before there already existed a child model, then the child mobility model current position is also modified to ensure that the composite position is preserved.
model | new mobility model child |
Definition at line 54 of file hierarchical-mobility-model.cc.
References ns3::MobilityModel::GetPosition(), ns3::MakeCallback(), ns3::MobilityModel::SetPosition(), ns3::ObjectBase::TraceConnectWithoutContext(), and ns3::ObjectBase::TraceDisconnectWithoutContext().
void ns3::HierarchicalMobilityModel::SetParent | ( | Ptr< MobilityModel > | model | ) |
Sets the parent mobility model to a new one. If before there already existed a child model, then the child mobility model current position is also modified to ensure that the composite position is preserved.
model | new mobility model parent |
Definition at line 75 of file hierarchical-mobility-model.cc.
References ns3::MobilityModel::GetPosition(), ns3::MakeCallback(), ns3::MobilityModel::SetPosition(), ns3::ObjectBase::TraceConnectWithoutContext(), and ns3::ObjectBase::TraceDisconnectWithoutContext().